A normalizálás a redundancia csökkentése és az integritás javítása érdekében rendszerezi az adatokat. A cél minden adat egyszeri tárolása. Ha egy ügyfél címe minden rendelési rekordban szerepel, akkor a címváltozást több száz helyen kell frissíteni. Ha egy adat kimarad, az adatok inkonzisztensek lesznek. A normalizálás a címet egy ügyféltáblába helyezi át. A rendelések azonosító alapján hivatkoznak az ügyfélre. A cím egyszer tárolódik. Módosítsa ott, és minden rendelés tükrözi az új értéket.
A folyamat a normálformákat követi. Az első normálforma kiküszöböli az ismétlődő csoportokat. A második normálforma eltávolítja a részleges függőségeket. A harmadik normálforma eltávolítja a tranzitív függőségeket. Minden forma olyan megszorításokat ad hozzá, amelyek tovább csökkentik a redundanciát. Léteznek magasabb szintű formák, de a gyakorlatban ritkán használják őket. A legtöbb tranzakciós adatbázis a harmadik normálformát célozza. A normalizálásnak kompromisszumai vannak. Több tábla több join-t jelent, ami lelassíthatja a lekérdezéseket. Tranzakciós rendszerek esetén az integritási előnyök meghaladják a teljesítményköltségeket. Analitikus rendszerek esetén gyakran az ellenkezője igaz. A széles táblákkal és redundáns oszlopokkal rendelkező denormalizált sémák gyorsabban kérdeznek le, mert elkerülik az join-okat. Ezért használnak az adattárházak csillag és hópehely sémákat, amelyek szándékosan denormalizálnak. A normalizálás megfelelő szintje a munkaterheléstől függ. A tranzakciós rendszerek normalizálnak. Az analitikai rendszerek denormalizálnak. Mindkettő helyes a céljának megfelelően.
Normálformák
- Első normálforma — nincsenek ismétlődő csoportok
- Második normálforma — nincsenek parciális függőségek
- Harmadik normálforma — nincsenek tranzitív függőségek
- Boyce-Codd normálforma — a harmadik szigorúbb változata
A normalizálás az integritásról szól. Minden tényt egyszer tároljunk, és az adatok konzisztensek maradnak. Ha többször tároljuk, az inkonzisztencia elkerülhetetlen.
Comments
No comments yet. Be the first to share a thought.
Leave a comment