Normalizáció
A normalizáció egy adatbázis-tervezési eljárás, amelynek célja az adatok redundanciájának minimalizálása és az adatbázisok konzisztenciájának biztosítása. A normalizáció segít optimalizálni az adatbázisok struktúráját és javítja a lekérdezések teljesítményét.
Miért fontos a normalizáció?
Az adatbázisokban tárolt adatok gyakran redundánsak lehetnek, vagyis ugyanaz az információ többször is megjelenik. Ez nem csak helypazarlást eredményez, hanem problémákat is okozhat az adatok konzisztenciájával. Ha például egy ügyfél adatait több helyen is tároljuk, akkor ha az ügyfél adatait frissítjük, minden tárolási helyen frissítenünk kell az adatokat. Ez nagyobb lehetőséget teremt az adatok inkonzisztenssé válására.
A normalizáció segítségével az adatokat kisebb egységekre bontjuk, és ezáltal minimalizáljuk a redundanciát. Ez nemcsak hatékonyabb adatbázis-struktúrát eredményez, hanem egyszerűbbé is teszi az adatok kezelését és karbantartását.
A normalizációs szabályok
A normalizáció során különböző szabályokat kell követnünk az adatok struktúrájának optimalizálása érdekében. A következőkben bemutatjuk a legfontosabb normalizációs szabályokat:
1. Normálforma (1NF)
Az adatokat atomi egységekre kell bontani, azaz minden attribútumnak egyértelműen definiált értéke kell legyen. Például, ha egy táblában egy mezőben több érték is szerepel, akkor azokat külön mezőkbe kell szétbontani.
2. Normálforma (2NF)
Az adatokat úgy kell szervezni, hogy minden nem kulcsattribútum teljesen függjön a kulcsattribútumoktól. Ha egy nem kulcsattribútum részlegesen függ a kulcsattribútumoktól, akkor azt külön táblába kell helyezni.
3. Normálforma (3NF)
Az adatokat úgy kell szervezni, hogy semmilyen nem kulcsattribútum ne függjön más nem kulcsattribútumtól. Ha egy nem kulcsattribútum függ más nem kulcsattribútumtól, akkor azt külön táblába kell helyezni.
Példa
Vegyük például egy egyszerű ügyfél-adatbázist, amelyben tároljuk az ügyfelek nevét, címét és telefonszámát. Az adatbázisban minden ügyfélhez tartozik egyedi azonosító is. Az eredeti adatbázis struktúrája a következő lehet:
Tábla: Ugyfel | Azonosito | Nev | Cim | Telefonszam | |-----------|------------|------------------|---------------| | 1 | John Doe | 123 Main St | 555-1234 | | 2 | Jane Smith | 456 Elm St | 555-5678 |
Ez az adatbázis nem felel meg a 2. normálformának, mert a telefonszám nem függ a kulcsattribútumoktól (azonosító). Tehát a telefonszámot külön táblába kell helyezni:
Tábla: Ugyfel | Azonosito | Nev | Cim | |-----------|------------|------------------| | 1 | John Doe | 123 Main St | | 2 | Jane Smith | 456 Elm St | Tábla: Telefonszam | Azonosito | Telefonszam | |-----------|---------------| | 1 | 555-1234 | | 2 | 555-5678 |