Mi az a normalizálás egy adatbázisban?
sobes.tech MI
Válasz az MI-től
Az adatbázis normalizálása az adatok szervezésének folyamata relációs adatbázisban, célja a redundancia (adatduplikáció) csökkentése és az adatok integritásának javítása. Ez úgy érhető el, hogy nagy táblákat kisebbekre bontunk, és kapcsolatokat határozunk meg közöttük.
A normalizálás fő céljai:
- Az adatok redundanciájának csökkentése: Az ugyanazon információ ismétlődésének elkerülése különböző helyeken.
- Az adatok integritásának javítása: Az adatok pontosságának és következetességének biztosítása.
- Rugalmasság biztosítása: A adatbázis szerkezetének módosítását és bővítését megkönnyítve.
A normalizálás szabályok halmazán keresztül határozható meg, amelyeket normál formáknak nevezünk. A leggyakoribbak az első három normál forma:
-
Első normál forma (1NF):
- Minden oszlopnak atomikus (felbonthatatlan) értékeket kell tartalmaznia.
- Nincsenek ismétlődő oszlopcsoportok.
- Minden sor egyedi kell legyen (elsődleges kulcs segítségével).
-
Második normál forma (2NF):
- A tábla 1NF-ben van.
- Minden nem-kulcs attribútum (nem része az elsődleges kulcsnak) teljes mértékben függ az elsődleges kulcs egészétől (ha összetett). Nincsenek részleges függőségek.
-
Harmadik normál forma (3NF):
- A tábla 2NF-ben van.
- Nincsenek tranzitív függőségek. A nem-kulcs attribútumok nem függenek más nem-kulcs attribútumoktól.
Vannak magasabb normál formák (BCNF, 4NF, 5NF, 6NF), de a 3NF általában elegendő a legtöbb gyakorlati célra.
Egyszerű példa:
Eredeti, nem normalizált táblázat (ügyfél rendelése):
| Rendelés azonosító | Ügyfél neve | Ügyfél címe | Termékek | Mennyiség | Egységár |
|---|---|---|---|---|---|
| 101 | János | Budapest | Laptop | 1 | 50000 |
| 101 | János | Budapest | Egér | 2 | 1000 |
| 102 | Mária | Szeged | Billentyűzet | 1 | 3000 |
A normalizálás után (például 3NF-ig):
Rendelések táblázat:
| Rendelés azonosító | Ügyfél azonosító | Rendelés dátuma |
|---|---|---|
| 101 | 1 | 2023-10-26 |
| 102 | 2 | 2023-10-26 |
Ügyfelek táblázat:
| Ügyfél azonosító | Ügyfél neve | Ügyfél címe |
|---|---|---|
| 1 | János | Budapest |
| 2 | Mária | Szeged |
Rendelés részletei táblázat:
| Részlet azonosító | Rendelés azonosító | Termék azonosító | Mennyiség | Egységár |
|---|---|---|---|---|
| 1 | 101 | 10 | 1 | 50000 |
| 2 | 101 | 20 | 2 | 1000 |
| 3 | 102 | 30 | 1 | 3000 |
Termékek táblázat:
| Termék azonosító | Termék neve |
|---|---|
| 10 | Laptop |
| 20 | Egér |
| 30 | Billentyűzet |
A denormalizáció a normalizálás fordított folyamata, amelyet néha az adatok olvasási teljesítményének javítása érdekében alkalmaznak, a redundancia növelésével.