Sobes.tech
Middle

Mi a normalizálás?

sobes.tech MI

Válasz az MI-től

Az adatok normalizálása az adatbázisok kontextusában az adatok szervezésének folyamata a redundancia csökkentése és az adatok integritásának javítása érdekében. Ez úgy érhető el, hogy nagyobb táblákat kisebbekre bontunk és kapcsolatokat hozunk létre közöttük.

Fő célok:

  • Az adatok duplikációjának kiküszöbölése.
  • Az adatok integritásának javítása (beillesztési, frissítési és törlési anomáliák kiküszöbölése).
  • A tárolás és lekérdezések hatékonyságának növelése (bizonyos esetekben).

A normalizálási folyamat a normál formák (NF) elvein alapul. A leggyakoribbak:

  • Első normál forma (1NF): Az adatok atomikusak a cellákban, nincs ismétlődő oszlopcsoport.
  • Második normál forma (2NF): 1NF-ben van, és minden nem kulcs attribútum teljesen funkcionálisan függ a teljes elsődleges kulcstól.
  • Harmadik normál forma (3NF): 2NF-ben van, és nincs tranzitív funkcionális függőség a nem kulcs attribútumok között az elsődleges kulcson keresztül.

Példa:

Az eredeti "Rendelések_Termékek" tábla:

Rendelés ID Rendelés Dátuma Termék ID Termék Név Termék Ár Mennyiség Ügyfél Név Ügyfél Címe
1 2023-10-27 101 Telefon 500 1 Ivan Petrov Puskina u. 10
1 2023-10-27 102 Fejhallgató 100 2 Ivan Petrov Puskina u. 10
2 2023-10-27 101 Telefon 500 1 Maria Ivanova Lermontov u. 5

A normalizálás (3NF-ig):

"Rendelések" tábla:

Rendelés ID Rendelés Dátuma Ügyfél ID
1 2023-10-27 1
2 2023-10-27 2

"Rendelési tételek" tábla:

Tétel ID Rendelés ID Termék ID Mennyiség
1 1 101 1
2 1 102 2
3 2 101 1

"Termékek" tábla:

Termék ID Termék Név Termék Ár
101 Telefon 500
102 Fejhallgató 100

"Ügyfelek" tábla:

Ügyfél ID Ügyfél Név Ügyfél Címe
1 Ivan Petrov Puskina u. 10
2 Maria Ivanova Lermontov u. 5

Azonban a túlzott normalizálás növelheti a csatlakozások (JOIN) számát a lekérdezések során, ami csökkentheti a teljesítményt. Ezért az adatbázis tervezésekor gyakran keresik az egyensúlyt a normalizálás mértéke és a teljesítmény között. A denormalizálás szándékosan megsérti a normál formákat a teljesítmény javítása érdekében, általában redundancia hozzáadásával.