Normalizace vs Denormalizace
Relační databáze jsou tvořeny relacemi (související tabulky). Tabulky jsou tvořeny sloupy. Pokud jsou tabulky dva velké (tj. Příliš mnoho sloupců v jedné tabulce), mohou nastat anomálie databáze. Pokud jsou tabulky dvě malé (tj. Databáze se skládá z mnoha menších tabulek), bylo by to neefektivní pro dotazování. Normalizace a Denormalizace jsou dva procesy, které se používají k optimalizaci výkonu databáze. Normalizace minimalizuje nadbytečnost obsažená v tabulkách dat. Denormalizace (obráceně k normalizaci) přidává nadbytečná data nebo skupinová data.
Co je normalizace?
Normalizace je proces prováděný za účelem minimalizace nadbytečnosti, která je přítomna v datech v relačních databázích. Tento proces rozdělí hlavně velké tabulky na menší tabulky s menším nadbytečností (tzv. „Normální formuláře“). Tyto menší tabulky budou vzájemně souviset prostřednictvím dobře definovaných vztahů. V dobře normalizované databázi bude jakákoli změna nebo úprava dat vyžadovat úpravu pouze jedné tabulky. První normální formu (1NF), druhou normální formu (2NF) a třetí normální formu (3NF) představil Edgar F. Codd. Normální formu Boyce-Codd (BCNF) představili v roce 1974 Codd a Raymond F. Boyce. Byly definovány normální normální formuláře (4NF, 5NF a 6NF), ale používají se zřídka.
Tabulka vyhovující 1NF zajišťuje, že ve skutečnosti představuje relaci (tj. Neobsahuje žádné opakující se záznamy) a neobsahuje žádné atributy, které mají relační hodnotu (tj. Všechny atributy by měly mít atomové hodnoty). Aby tabulka vyhovovala 2NF, měla by být dodržena s 1NF a jakýkoli atribut, který není součástí žádného kandidátského klíče (tj. Jiné než primární atributy), by měl plně záviset na kterémkoli z kandidátských klíčů v tabulce. Podle Coddovy definice se říká, že tabulka je v 3NF, právě když je tato tabulka ve druhé normální formě (2NF) a každý atribut v tabulce, který nepatří ke kandidátskému klíči, by měl přímo záviset na každém klíč kandidáta této tabulky. BCNF (také známý jako 3.5NF) zachycuje některé anomálie, které 3NF neřeší.
Co je denormalizace?
Denormalizace je obrácený proces normalizačního procesu. Denormalizace funguje přidáním nadbytečných dat nebo seskupením dat pro optimalizaci výkonu. I když přidání nadbytečných dat zní kontraproduktivně, někdy je denormalizace velmi důležitým procesem k překonání některých nedostatků v softwaru relačních databází, které mohou s normalizovanými databázemi (i vyladěnými pro vyšší výkon) hrozit vysoké výkonnostní sankce. Důvodem je, že připojení několika relací (které jsou výsledkem normalizace) k vytvoření výsledku dotazu může být někdy pomalé v závislosti na skutečné fyzické implementaci databázových systémů.
Jaký je rozdíl mezi normalizací a denormalizací? - Normalizace a denormalizace jsou dva procesy, které jsou zcela opačné. - Normalizace je proces dělení větších tabulek na menší, čímž se snižují nadbytečná data, zatímco denormalizace je proces přidávání nadbytečných dat k optimalizaci výkonu. - Normalizace se provádí, aby se zabránilo anomáliím databází. - Denormalizace se obvykle provádí za účelem zlepšení výkonu čtení databáze, ale vzhledem k dalším omezením používaným pro denormalizaci se zápisy (tj. Operace vkládání, aktualizace a mazání) mohou zpomalit. Proto může denormalizovaná databáze nabídnout horší výkon zápisu než normalizovaná databáze. - Často se doporučuje, abyste „normalizovali, dokud to nebolí, denormalizovali, dokud to nefunguje“. |