Normalizace organizuje data tak, aby se snížila redundance a zlepšila integrita. Cílem je uložit každý fakt jednou. Pokud se adresa zákazníka objeví v každém záznamu objednávky, musí se změna adresy aktualizovat na stovkách míst. Pokud se jedna chybí, data jsou nekonzistentní. Normalizace přesune adresu do tabulky zákazníků. Objednávky odkazují na zákazníka podle ID. Adresa se uloží jednou. Změňte ji tam a každá objednávka bude odrážet novou hodnotu.
Proces se řídí normálními formami. První normální forma eliminuje opakující se skupiny. Druhá normální forma odstraňuje částečné závislosti. Třetí normální forma odstraňuje tranzitivní závislosti. Každá forma přidává omezení, která dále snižují redundanci. Vyšší formy existují, ale v praxi se používají jen zřídka. Většina transakčních databází usiluje o třetí normální formu. Normalizace má své kompromisy. Více tabulek znamená více spojení, což může zpomalit dotazy. U transakčních systémů výhody integrity převažují nad náklady na výkon. U analytických systémů je často pravý opak. Denormalizovaná schémata se širokými tabulkami a redundantními sloupci se dotazují rychleji, protože se vyhýbají spojením. Proto datové sklady používají hvězdicová a sněhová vločka, která záměrně denormalizují. Správná úroveň normalizace závisí na pracovní zátěži. Transakční systémy normalizují. Analytické systémy denormalizují. Oba jsou pro svůj účel správné.
Normální formy
- První normální forma – žádné opakující se grupy
- Druhá normální forma — žádné částečné závislosti
- Třetí normální forma — žádné tranzitivní závislosti
- Boyce-Coddova normální forma — přísnější verze třetí
Normalizace je o integritě. Uložte každý fakt jednou a data zůstanou konzistentní. Uložte je mnohokrát a nekonzistence je nevyhnutelná.
Comments
No comments yet. Be the first to share a thought.
Leave a comment