Normalizácia (databázy)

z Wikipédie, slobodnej encyklopédie
Prejsť na: navigácia, hľadanie

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ť | upraviť zdroj]

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é na „kľúči, celom kľúči a ničom inom ako na kľúči“. 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ť | upraviť zdroj]

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ť | upraviť zdroj]

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

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ý na celom kľúči, ale len na jeho časti (a to na kóde 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ť | upraviť zdroj]

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:

Číslo 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ť | upraviť zdroj]

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).