Sobes.tech
Middle

Mida teate andmebaaside normaalvormidest?

sobes.tech AI

Vastus AI-lt

Normaalsed vormid (NF) on reeglite ja soovituste kogum relatsioonandmebaasi struktuuri kavandamiseks, mille eesmärk on andmete liigse dubleerimise vähendamine ja anomaaliate ennetamine sisestamisel, uuendamisel ja kustutamisel.

Peamised normaalsed vormid:

  • Esimene normaalsus (1NF):

    • Iga atribuut (veerg) peab sisaldama atomaalseid (jagamatuid) väärtusi.
    • Replikatsioonigruppe ei tohi olla.
    • Iga rida peab olema unikaalne (põhivõti olemas).
  • Teine normaalsus (2NF):

    • Asub 1NF-s.
    • Iga mitte-põhivõti atribuut peab täielikult sõltuma kogu põhivõtust (kui põhivõti on koosnev).
  • Kolmas normaalsus (3NF):

    • Asub 2NF-s.
    • Ei tohi olla transitiivseid sõltuvusi mitte-põhivõti atribuutide vahel (mitte-põhivõti atribuut ei tohi sõltuda teisest mitte-põhivõti atribuudist).
  • Boyce-Codd vorm (BCNF):

    • Rangem versioon 3NF-st.
    • Iga mitte-triiviaalne sõltuvus $X \to Y$ peab omama $X$ kui supervõtit.
  • Neljandik normaalsus (4NF):

    • Asub BCNF-s.
    • Ei tohi olla mitmearvulisi sõltuvusi.
  • Viienda normaalsus (5NF):

    • Asub 4NF-s.
    • Ei tohi olla ühenduslikke sõltuvusi.

Normaalsustamise eesmärgid:

  • Andmete liigse dubleerimise vähendamine.
  • Anomaaliate ennetamine (sisestamine, uuendamine, kustutamine).
  • Andmete terviklikkuse tagamine.
  • Põhisüsteemi struktuuri lihtsustamine.

Näide:

Andmete liigse dubleerimisega tabel (ei vasta 1NF-le):

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

Normaalne tabel (1NF ja kõrgem):

"Заказы" tabel:

ЗаказID
1
2

"Позиции заказа" tabel:

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

Normaalsus on oluline etapp projekteerimisel, kuid liigne normaalsus võib viia päringutes ühenduste arvu suurenemiseni, mis võib negatiivselt mõjutada jõudlust. Optimaalne tase sõltub konkreetsetest nõuetest ja kompromissidest. Mõnikord kasutatakse denormaliseerimist, et parandada jõudlust teatud stsenaariumides, teadlikult rikkudes normaalsuste reegleid.