1NF vs 2NF vs. 3NF

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í. 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) byla představena Edgarem F. Coddem, který je také vynálezcem relačního modelu a pojmu normalizace.

Co je to 1NF?

1NF je první normální formulář, který poskytuje minimální soubor požadavků pro normalizaci relační databáze. Tabulka, která vyhovuje 1NF, zajišťuje, že ve skutečnosti představuje vztah (tj. Neobsahuje žádné záznamy, které se opakují), ale neexistuje žádná všeobecně přijímaná definice pro 1NF. Jednou důležitou vlastností je, že tabulka, která vyhovuje 1NF, nemohla obsahovat žádné atributy, které jsou relačně hodnoceny (tj. Všechny atributy by měly mít atomové hodnoty).

Co je to 2NF?

2NF je druhá normální forma používaná v relačních databázích. 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. Jiné než hlavní atributy), by měl plně záviset na kterémkoli z kandidátů na klíče v tabulce.

Co je to 3NF?

3NF je třetí normální forma používaná při normalizaci relační databáze. Podle definice Codd se uvádí, že tabulka je ve 3NF, a to 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 kandidátském klíči této tabulky. V roce 1982 Carlo Zaniolo vytvořil odlišně vyjádřenou definici pro 3NF. Tabulky, které jsou v souladu s 3NF, obecně neobsahují anomálie, ke kterým dochází při vkládání, mazání nebo aktualizaci záznamů v tabulce.

Jaký je rozdíl mezi 1NF a 2NF a 3NF?

1NF, 2NF a 3NF jsou normální formy, které se používají v relačních databázích k minimalizaci redundance v tabulkách. 3NF je považován za silnější normální formu než 2NF a je považován za silnější normální formu než 1NF. Obecně tedy získání tabulky, která vyhovuje formuláři 3NF, bude vyžadovat rozklad tabulky, která je ve 2NF. Podobně získání tabulky, která vyhovuje 2NF, bude vyžadovat rozklad tabulky, která je v 1NF. Pokud však tabulka, která vyhovuje 1NF, obsahuje kandidátní klíče, které jsou tvořeny pouze jedním atributem (tj. Nekombinované kandidátské klíče), taková tabulka by automaticky vyhovovala 2NF. Rozklad tabulek bude mít za následek další operace spojení (nebo kartézské produkty) při provádění dotazů. To zvýší výpočetní čas. Na druhé straně by tabulky, které vyhovují silnějším normám, měly méně propouštění než tabulky, které vyhovují pouze slabším normám.