Normalizácia (databázy)

Normalizácia je proces eliminovania duplicitných údajov v relačných databázach. Správne normalizované databázy majú návrh, ktorý reflektuje pravé závislosti medzi sledovanými položkami a umožňuje rýchlu zmenu údajov bez rizika vzniku nekonzistencie.

Normálne formy upraviť

Edgar Frank Codd pôvodne definoval 3 normálne formy. Prvá NF vyžaduje, aby boli tabuľky vytvorené z primárneho kľúča a niekoľkých atomických atribútov, druhá a tretia sa zaoberajú vzťahom nekľúčových atribútov k primárnemu kľúču. Tieto sa dajú zosumarizovať ako požiadavka, aby všetky nekľúčové atribúty boli funkčne závislé od „kľúča, celého kľúča a ničoho iného ako od kľúča“. V praxi je väčšina aplikácií v 3NF plne normalizovaná. Výskum však objavil potenciálne anomálie operácie update v databázach v 3NF. BCNF je ďalším zlepšením 3NF, ktoré sa pokúša tieto anomálie odstrániť.

Štvrtá a piata normálna forma sa zaoberajú konkrétne reprezentáciou vzťahov 1:N a M:N. Šiesta NF sa vzťahuje iba na temporálne databázy.

Prvá normálna forma (1NF) upraviť

Prvá normálna forma požaduje aby každý atribút obsahoval len atomické hodnoty, to znamená hodnoty ktoré sú ďalej nedeliteľné

a každý riadok dát musí zároveň obsahovať jednoznačný identifikátor. (jednoduchý alebo spojený primárny kľúč)

Druhá normálna forma (2NF) upraviť

Druhá normálna forma požaduje aby relácia bola v 1NF a zároveň každý nekľúčový atribút bol od primárneho kľúča úplne funkčne závislý (od celého kľúča, nie len od jeho podmnožiny).

Napríklad relácia:

Študent (primárny kľúč)
Kód predmetu (primárny kľúč)
Názov predmetu
Známka

nie je v 2NF, pretože názov predmetu nie je závislý od celého kľúča, ale len od jeho časti (a to od kódu predmetu). Na prevod do 2NF by bolo potrebné ju rozdeliť na dve, pričom z pôvodnej relácie by sme odstránili názov predmetu a vytvorili by sme novú reláciu:

Kód predmetu (primárny kľúč)
Názov predmetu

Tretia normálna forma (3NF) upraviť

Relácia je v tretej normálnej forme, pokiaľ je v 2NF a žiaden nekľúčový atribút nie je tranzitívne funkčne závislý od primárneho kľúča. To znamená že všetky neklúčové atribúty musia byť navzájom nezávislé.

Napríklad relácia:

Kód predmetu (primárny kľúč)
Názov predmetu
Číslo učiteľa
Meno učiteľa

nie je v tretej normálne forme, pretože meno učiteľa je závislé od čísla učiteľa. Prevod by opäť pozostával z dekompozície.

Štvrtá normálna forma (4NF) upraviť

Tabuľka je vo štvrtej normálnej forme vtedy, ak je v tretej normálnej forme a opisuje len jeden fakt alebo súvislosť (t. j. nespájajú sa nezávislé opakované skupiny).