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.