Sobes.tech
Middle

Kas ir normalizācija?

sobes.tech AI

Atbilde no AI

Datu normalizācija datu bāzu kontekstā ir process, kas organizē datus, lai samazinātu lieko un uzlabotu datu integritāti. Tas tiek panākts, sadalot lielas tabulas mazākās un savienojot tās ar attiecībām.

Galvenie mērķi:

  • Datu dublēšanās novēršana.
  • Datu integritātes uzlabošana (izvairoties no ievietošanas, atjaunināšanas un dzēšanas anomālijām).
  • Glabāšanas un vaicājumu efektivitātes palielināšana (dažos gadījumos).

Normalizācijas process balstās uz normālo formu (NF) principiem. Visbiežāk izmantotās:

  • Pirmā normālā forma (1NF): Dati ir atomiski šūnās, nav atkārtotu kolonnu grupu.
  • Otrā normālā forma (2NF): Atrodas 1NF un katrs neatslēgas atribūts ir pilnībā funkcionāli atkarīgs no visa primārā atslēgas.
  • Trešā normālā forma (3NF): Atrodas 2NF un nav tranzitīvu funkcionālo atkarību starp neatslēgas atribūtiem caur citiem neatslēgas atribūtiem.

Piemērs:

Sākotnējā tabula "Pasūtījumi_Preces":

Pasūtījuma ID Pasūtījuma datums Preces ID Preces nosaukums Preces cena Daudzums Klienta vārds Klienta adrese
1 2023-10-27 101 Telefons 500 1 Ivans Petrov Puskina iela, 10
1 2023-10-27 102 Ausītes 100 2 Ivans Petrov Puskina iela, 10
2 2023-10-27 101 Telefons 500 1 Marija Ivanova Lermontova iela, 5

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

"Pasūtījumi":

Pasūtījuma ID Pasūtījuma datums Klienta ID
1 2023-10-27 1
2 2023-10-27 2

"Pasūtījuma pozīcijas":

Pozīcijas ID Pasūtījuma ID Preces ID Daudzums
1 1 101 1
2 1 102 2
3 2 101 1

"Preces":

Preces ID Preces nosaukums Preces cena
101 Telefons 500
102 Ausītes 100

"Klienti":

Klienta ID Klienta vārds Klienta adrese
1 Ivans Petrov Puskina iela, 10
2 Marija Ivanova Lermontova iela, 5

Tomēr, pārmērīga normalizācija var palielināt savienojumu skaitu (JOIN), kas var samazināt veiktspēju. Tādēļ datu bāzes projektēšanas laikā bieži meklē līdzsvaru starp normalizācijas pakāpi un veiktspēju. Denormalizācija ir process, kas apzināti pārkāpj normālas formas, lai uzlabotu veiktspēju, parasti pievienojot liekus datus.