Sobes.tech
Junior

Kas ir normalizācija datu bāzē?

sobes.tech AI

Atbilde no AI

Datubāzes normalizācija ir process, kurā organizē datus relāciju datubāzē, lai samazinātu dublēšanos (datu atkārtošanos) un uzlabotu datu integritāti. To panāk, sadalot lielas tabulas mazākās un definējot saites starp tām.

Galvenais normalizācijas mērķis:

  • Datu dublēšanās samazināšana: izvairīties no vienas un tās pašas informācijas atkārtošanās dažādās vietās.
  • Datu integritātes uzlabošana: nodrošināt datu precizitāti un saskaņotību.
  • Elastības nodrošināšana: vienkāršot datu bāzes struktūras maiņu un paplašināšanu.

Normalizācija tiek definēta ar noteikumu kopumu, ko sauc par normālformām. Visbiežāk sastopamas ir pirmās trīs normālformas:

  1. Pirmā normālforma (1NF):

    • Katram tabulas kolonnai jābūt atomārām (nešķeljamām) vērtībām.
    • Nav atkārtotu kolonnu grupu.
    • Katrai rindai jābūt unikālai (ar primāro atslēgu).
  2. Otrā normālforma (2NF):

    • Tabula ir 1NF.
    • Visas neatslēgas atribūti (kolonnas, kas nav iekļautas primārajā atslēgā) pilnībā atkarīgas no visas primārās atslēgas (ja tā ir sastāvdaļa). Nav daļēju atkarību.
  3. Trešā normālforma (3NF):

    • Tabula ir 2NF.
    • Nav transitatīvu atkarību. Neatslēgas atribūti neatkarīgi no citiem neatslēgas atribūtiem.

Ir arī augstākas normālformas (BCNF, 4NF, 5NF, 6NF), bet parasti 3NF uzskata par pietiekamu lielākajai daļai praktisku mērķu.

Piemērs (vienkāršots):

Nepareizi normalizēta tabula (klienta pasūtījums):

Pasūtījuma ID Klienta Vārds Klienta Adrese Preces Daudzums Cena par vienu
101 Ivans Maskava Dators 1 50000
101 Ivans Maskava Pele 2 1000
102 Marija Sanktpēterburga Tastatūra 1 3000

Pēc normalizācijas (piemēram, līdz 3NF):

Pasūtījumu tabula:

Pasūtījuma ID Klienta ID Pasūtījuma datums
101 1 2023-10-26
102 2 2023-10-26

Klientu tabula:

Klienta ID Klienta Vārds Klienta Adrese
1 Ivans Maskava
2 Marija Sanktpēterburga

Pasūtījuma detaļu tabula:

Pasūtījuma detaļu ID Pasūtījuma ID Preces ID Daudzums Cena par vienu
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Preču tabula:

Preces ID Preces Nosaukums
10 Dators
20 Pele
30 Tastatūra

Deminormalizācija ir pretēja normalizācijas process, kas dažreiz tiek izmantots datu lasīšanas veiktspējas uzlabošanai, palielinot dublēšanos.