Rozdíl mezi normalizací a denormalizací

Normalizace vs. denormalizace

Relační databáze jsou tvořeny vztahy (související tabulky). Tabulky jsou tvořeny sloupy. Pokud jsou tabulky dvě 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 pro dotazování neefektivní. Normalizace a denormalizace jsou dva procesy, které se používají k optimalizaci výkonu databáze. Normalizace minimalizuje redundance, které jsou v tabulkách s údaji. Denormalizace (obrácení normalizace) přidává nadbytečná data nebo data skupin.

Co je normalizace?

Normalizace je proces, který se provádí za účelem minimalizace propouštění, které jsou přítomny v datech v relačních databázích. Tento proces rozdělí hlavně velké tabulky na menší tabulky s menším počtem propouštění (tzv. „Normální formuláře“). Tyto menší tabulky budou vzájemně propojeny prostřednictvím dobře definovaných vztahů. V dobře normalizované databázi bude každá změna nebo úprava dat vyžadovat úpravu pouze jedné tabulky. První normální forma (1NF), druhá normální forma (2NF) a třetí normální forma (3NF) byly zavedeny Edgarem F. Coddem. Boyce-Codd Normal Form (BCNF) byl představen v roce 1974 Coddem a Raymondem F. Boycem. Byly definovány vyšší normální formuláře (4NF, 5NF a 6NF), ale používají se zřídka.

Tabulka, která vyhovuje 1NF, zajišťuje, že ve skutečnosti představuje vztah (tj. Neobsahuje žádné záznamy, které se opakují), a neobsahuje žádné atributy, které jsou relačně hodnoceny (tj. Všechny atributy by měly mít atomové hodnoty). Aby tabulka vyhovovala 2NF, měla by být dodržena 1NF a jakýkoli atribut, který není součástí žádného klíče kandidáta (tj. Non-prvořadé atributy), by měl zcela záviset na kterémkoli z kandidátů klíčů v tabulce. Podle definice Codd se uvádí, že tabulka je ve 3NF, pokud a pouze tehdy, je-li tato tabulka ve druhé normální formě (2NF) a každý atribut v tabulce, který nepatří do kandidátního klíče, 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 nereaguje.

Co je denormalizace?

Denormalizace je opačný proces normalizačního procesu. Denormalizace funguje přidáním nadbytečných dat nebo seskupením dat pro optimalizaci výkonu. Přestože přidávání redundantních zvuků dat je kontraproduktivní, někdy je denormalizace velmi důležitým procesem k překonání některých nedostatků v relačním databázovém softwaru, které mohou způsobit normalizované databáze vysoké pokuty (dokonce vyladěné pro vyšší výkon). Důvodem je to, že spojení několika vztahů (které jsou výsledky 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 rozdělení větších tabulek na menší tabulky, které redukují nadbytečná data, zatímco denormalizace je proces přidávání redundantních dat za účelem optimalizace 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ízet horší výkon zápisu než normalizovaná databáze.

- Často se doporučuje, abyste „normalizovali, dokud to nebude bolet, denormalizovali, dokud to nebude fungovat“..