1NF vs 2NF vs 3NF
Normalizace je proces, který se provádí za účelem minimalizace redundance, která se vyskytuje v datech v relačních databázích. Tento proces rozdělí hlavně velké tabulky na menší tabulky s menším množstvím redundantností. Tyto menší tabulky budou vzájemně propojeny prostřednictvím dobře definovaných vztahů. V dobře normalizované databázi bude jakákoliv 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 představeny Edgarem F. Coddem, který je také vynálezcem relačního modelu a konceptu normalizace.
Co je 1NF?
1NF je první normální forma, která poskytuje minimální sadu požadavků pro normalizaci relační databáze. Tabulka, která vyhovuje 1NF, zajišťuje, že skutečně představuje relaci (tj. neobsahuje žádné opakující se záznamy), ale pro 1NF neexistuje žádná všeobecně uznávaná definice. Jednou z důležitých vlastností je, že tabulka, která vyhovuje 1NF, nemůže obsahovat žádné atributy, které mají relační hodnotu (tj. všechny atributy by měly mít atomické hodnoty).
Co je 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 v souladu s 1NF a jakýkoli atribut, který není součástí žádného kandidátského klíče (tj. non-prime atributy), by měl plně záviset na kterémkoli z kandidátských klíčů v tabulce.
Co je 3NF?
3NF je třetí normální forma používaná při normalizaci relačních databází. Podle Coddovy definice se o tabulce říká, že je v 3NF, tehdy a jen tehdy, když je tato tabulka ve druhé normální formě (2NF) a každý atribut v tabulce, který nepatří do kandidátského klíče, by měl přímo záviset na každém kandidátním klíči této tabulky. V roce 1982 Carlo Zaniolo vytvořil odlišně vyjádřenou definici 3NF. Tabulky, které vyhovují 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 bude získání tabulky, která odpovídá formuláři 3NF, vyžadovat rozklad tabulky, která je v 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. nesložené kandidátské klíče), bude taková tabulka automaticky odpovídat 2NF. Dekompozice tabulek povede k dalším operacím spojení (nebo kartézským součinům) při provádění dotazů. Tím se prodlouží doba výpočtu. Na druhou stranu tabulky, které vyhovují silnějším normálním formám, by měly méně nadbytečných funkcí než tabulky, které vyhovují pouze slabším normálním formám.