Sobes.tech
Middle

Kas yra normalizavimas?

sobes.tech AI

Atsakymas iš AI

Duomenų normalizavimas duomenų bazių kontekste yra procesas, skirtas organizuoti duomenis siekiant sumažinti pertekliaus kiekį ir pagerinti duomenų vientisumą. Tai pasiekiama skaidant dideles lenteles į mažesnes ir jų santykius sujungiant.

Pagrindiniai tikslai:

  • Duomenų dubliavimosi pašalinimas.
  • Duomenų vientisumo gerinimas (išvengiant įterpimo, atnaujinimo ir ištrynimo anomalijų).
  • Saugojimo ir užklausų efektyvumo didinimas (kai kuriais atvejais).

Normalizacijos procesas grindžiamas normalių formų (NF) principais. Dažniausiai naudojamos:

  • Pirmoji normalioji forma (1NF): Duomenys yra atominiai langeliuose, nėra pasikartojančių stulpelių grupių.
  • Antroji normalioji forma (2NF): Yra 1NF ir kiekvienas ne raktinis atributas yra visiškai funkciškai priklausomas nuo visos pirminės rakto.
  • Trečioji normalioji forma (3NF): Yra 2NF ir nėra tranzityvių funkcinės priklausomybės tarp ne raktinių atributų per kitus ne raktinius atributus.

Pavyzdys:

Pirminė "Užsakymai_Prekės" lentelė:

Užsakymo ID Užsakymo data Prekės ID Prekės pavadinimas Prekės kaina Kiekis Kliento vardas Kliento adresas
1 2023-10-27 101 Telefonas 500 1 Ivan Petrov Puskina g. 10
1 2023-10-27 102 Ausinės 100 2 Ivan Petrov Puskina g. 10
2 2023-10-27 101 Telefonas 500 1 Maria Ivanova Lermontov g. 5

Po normalizacijos (iki 3NF):

"Užsakymai":

Užsakymo ID Užsakymo data Kliento ID
1 2023-10-27 1
2 2023-10-27 2

"Užsakymo pozicijos":

Pozicijos ID Užsakymo ID Prekės ID Kiekis
1 1 101 1
2 1 102 2
3 2 101 1

"Prekės":

Prekės ID Prekės pavadinimas Prekės kaina
101 Telefonas 500
102 Ausinės 100

"Klientai":

Kliento ID Kliento vardas Kliento adresas
1 Ivan Petrov Puskina g. 10
2 Maria Ivanova Lermontov g. 5

Tačiau pernelyg didelė normalizacija gali padidinti jungčių (JOIN) skaičių vykdant užklausas, kas gali sumažinti našumą. Todėl duomenų bazės projektavimo metu dažnai ieškoma pusiausvyros tarp normalizacijos laipsnio ir našumo. Denormalizacija yra procesas, sąmoningai pažeidžiant normalių formų reikalavimus, siekiant pagerinti našumą, dažnai pridedant perteklinius duomenis.