Rozdiel medzi 3NF a BCNF

3NF vs BCNF

Normalizácia je proces, ktorý sa vykonáva s cieľom minimalizovať prepúšťanie, ktoré sa vyskytuje v údajoch v relačných databázach. Tento proces rozdelí hlavne veľké tabuľky na menšie tabuľky s menším počtom prepustených pracovníkov. Tieto menšie tabuľky budú navzájom prepojené prostredníctvom dobre definovaných vzťahov. V dobre normalizovanej databáze bude akákoľvek zmena alebo zmena údajov vyžadovať úpravu iba jednej tabuľky. Tretiu normálnu formu (3NF) predstavil v roku 1971 Edgar F. Codd, ktorý je tiež vynálezcom relačného modelu a koncepcie normalizácie. Boyce-Codd Normal Form (BCNF) bol predstavený v roku 1974 Coddom a Raymondom F. Boyceom.

Čo je to 3NF?

3NF je tretia normálna forma používaná pri normalizácii relačných databáz. Podľa definície Codda sa v tabuľke uvádza, že je v 3NF, iba vtedy, ak je táto tabuľka v druhej normálnej forme (2NF) a každý atribút v tabuľke, ktorý nepatrí do kandidátskeho kľúča, by mal priamo závisieť od každý kandidátsky kľúč tejto tabuľky. V roku 1982 Carlo Zaniolo vytvoril odlišne vyjadrenú definíciu pre 3NF. Tabuľky, ktoré sú v súlade s 3NF, vo všeobecnosti neobsahujú anomálie, ktoré sa vyskytnú pri vkladaní, vymazávaní alebo aktualizácii záznamov v tabuľke..

Čo je BCNF?

BCNF (tiež známy ako 3.5NF) je ďalšou normálnou formou používanou pri normalizácii relačnej databázy. Bola zavedená na zachytenie niektorých anomálií, ktoré 3NF nerieši. V tabuľke sa uvádza, že je v BCNF, iba vtedy, ak je pre každú závislosť formy A → B, ktorá nie je jednoduchá, A super-kľúč. Rozklad tabuľky, ktorá nie je v normálnej forme BCNF, nezaručuje výrobu tabuliek v podobe BCNF (pri zachovaní závislostí, ktoré boli v pôvodnej tabuľke).

Aký je rozdiel medzi 3NF a BCNF?

3NF aj BCNF sú normálne formy, ktoré sa používajú v relačných databázach na minimalizovanie prepúšťania v tabuľkách. V tabuľke, ktorá je v normálnej forme BCNF, je pre každú netriviálnu funkčnú závislosť formy A → B A superkľúč, zatiaľ čo tabuľka, ktorá vyhovuje 3NF, by mala byť v 2NF a každá neprimárna Atribút by mal priamo závisieť od každého kľúča kandidáta v tejto tabuľke. BCNF je považovaný za silnejšiu normálnu formu ako 3NF a bol vyvinutý na zachytenie niektorých anomálií, ktoré 3NF nemohli zachytiť. Získanie tabuľky, ktorá vyhovuje formuláru BCNF, si bude vyžadovať rozloženie tabuľky, ktorá je v 3NF. Tento rozklad bude mať za následok ďalšie operácie spojenia (alebo karteziánske produkty) pri vykonávaní dotazov. Tým sa zvýši výpočtový čas. Na druhej strane by tabuľky, ktoré vyhovujú BCNF, mali menej prepúšťaní ako tabuľky, ktoré vyhovujú iba 3NF. Okrem toho je väčšinou možné získať tabuľku, ktorá je v súlade s 3NF, bez toho, aby to bránilo zachovaniu závislosti a bezstratovému spojeniu. Pri BCNF to však nie je vždy možné.