Sobes.tech
Middle

რას იცნობთ მონაცემთა ბაზების ნორმალურ ფორმებზე?

sobes.tech AI

პასუხი AI-სგან

ნორმალური ფორმები (NF) — ეს წესებისა და რეკომენდაციების კრებული რელაციური მონაცემთა ბაზის სტრუქტურის დიზაინისთვის, რომელიც მიზნად ისახავს მონაცემთა ზედმეტობის შემცირებას და ანომალიების თავიდან აცილებას შეყვანის, განახლებისა და წაშლის დროს.

ძირითადი ნორმალური ფორმები:

  • პირველი ნორმალური ფორმა (1NF):

    • თითოეულ ატრიბუტს (სვეტს) უნდა ჰქონდეს ატომური (გაუყოფელი) მნიშვნელობები.
    • გამეორებადი ჯგუფები არ უნდა არსებობდეს.
    • თითოეული სია უნდა იყოს უნიკალური (მთავარი გასაღების არსებობით).
  • მეორე ნორმალური ფორმა (2NF):

    • არის 1NF-ში.
    • თითოეული არა-გასაღები ატრიბუტი უნდა იყოს სრულად დამოკიდებული მთელ მთავარი გასაღებაზე (თუ მთავარი გასაღები კომპოზიციულია).
  • მესამე ნორმალური ფორმა (3NF):

    • არის 2NF-ში.
    • არ უნდა არსებობდეს ტრანზიტური დამოკიდებულებები არა-გასაღები ატრიბუტებს შორის (არა-გასაღები ატრიბუტი არ უნდა იყოს დამოკიდებული სხვა არა-გასაღები ატრიბუტზე).
  • ბოის-კოდდის ფორმა (BCNF):

    • უფრო მკაცრი ვერსია 3NF-ის.
    • ყოველი ტრივიალური დამოკიდებულება $X \to Y$ უნდა ჰქონდეს $X$ როგორც სუპერ-გასაღები.
  • მეოთხე ნორმალური ფორმა (4NF):

    • არის BCNF-ში.
    • არ უნდა არსებობდეს მრავალმნიშვნელოვანი დამოკიდებულებები.
  • ხუთი ნორმალური ფორმა (5NF):

    • არის 4NF-ში.
    • არ უნდა არსებობდეს კავშირების დამოკიდებულებები.

ნორმალიზაციის მიზნები:

  • მონაცემთა ზედმეტობის შემცირება.
  • ანომალიების თავიდან აცილება (შეყვანა, განახლება, წაშლა).
  • მონაცემთა მთლიანობის უზრუნველყოფა.
  • ბაზის სტრუქტურის გამარტივება.

მაგალითი:

მრავალმნიშვნელოვანი მონაცემებით სავსე ცხრილი (არ არის 1NF-ში):

ЗаказID Товар Цена
1 Ноутбук, Мышь 1000, 20
2 Клавиатура 50

ნორმალიზებული ცხრილი (1NF-ში და ზემოთ):

"Заказы" ცხრილი:

ЗаказID
1
2

"Позиции заказа" ცხრილი:

ПозицияID ЗаказID Товар Цена
1 1 Ноутбук 1000
2 1 Мышь 20
3 2 Клавиатура 50

ნორმალიზაცია — მნიშვნელოვანი ეტაპია პროექტირებაში, მაგრამ ზედმეტად ნორმალიზაცია შეიძლება გამოიწვიოს შეკითხვებზე დაკავშირებული კავშირების რაოდენობის ზრდა, რაც შეიძლება უარყოფითად იმოქმედოს პროდუქტიულობაზე. ოპტიმალური დონე არჩევა დამოკიდებულია კონკრეტულ მოთხოვნებზე და კომპრომისებზე. ზოგჯერ გამოიყენება დენორმალიზაცია, რათა ოპტიმიზაცია მოხდეს გარკვეულ სცენარებში, ცნობიერად დარღვევით ნორმალური ფორმების წესებს.