
Prediskutujeme rozdiely medzi 3NF a BCNF pomocou porovnávacieho grafu zobrazeného nižšie.
Porovnávacia tabuľka
Základ pre porovnanie | 3NF | BCNF |
---|---|---|
pojem | Žiadny atribút, ktorý nie je primárny, musí byť prechodne závislý od kandidátneho kľúča. | Pre každú triviálnu závislosť vo vzťahu R hovoríme X-> Y, X by malo byť super kľúčom vzťahu R. |
závislosť | 3NF je možné získať bez obetovania všetkých závislostí. | Závislosti nemusia byť zachované v BCNF. |
rozklad | Bezzápachový rozklad možno dosiahnuť v 3NF. | V BCNF je ťažko dosiahnuteľný rozklad. |
Definícia 3NF
Tabuľka alebo vzťah sa považuje za tretiu normálnu formu iba vtedy, ak je tabuľka už v 2NF a neexistuje žiadny prislúchajúci atribút, ktorý je prechodne závislý od kandidátskeho kľúča vzťahu.
Takže predtým, než sa zaoberám procesom normalizácie tabuľky v 3NF, dovoľte mi diskutovať o kandidátskom kľúči. Kandidátsky kľúč je minimálny super kľúč, tj super kľúč s minimálnymi atribútmi, ktorý môže definovať všetky atribúty vzťahu. Takže v procese normalizácie vášho stola najprv poznáte kandidátsky kľúč daného vzťahu. Atribúty, ktoré sú súčasťou kandidátskeho kľúča, sú hlavné atribúty a atribúty, ktoré nie sú súčasťou kandidátskeho kľúča, sú atribúty, ktoré nie sú primárne .
Teraz, ak máme vzťah R (A, B, C, D, E, F) a pre vzťah R máme nasledujúce závislosti funkcií.

Tabuľka je v 2NF, pretože žiadny atribút nie je primárne závislá od kandidátskeho kľúča
Avšak tranzitívna závislosť je pozorovaná medzi poskytovanými funkčnými závislosťami, pretože atribút F nie je priamo závislá od kandidátskeho kľúča AB . Namiesto toho je atribút F prechodovo závislý na kandidátnom kľúče AB prostredníctvom atribútu D. Kým atribút D má určitú hodnotu, ktorú môžeme dosiahnuť atribútnou hodnotou F, z kandidátneho kľúča AB. V prípade, že hodnota atribútu D je NULL, nikdy nemôžeme nájsť / vyhľadávať hodnotu F pomocou kandidátskeho kľúča AB. To je dôvod, prečo 3NF požaduje odstrániť tranzitívnu závislosť od vzťahov.
Aby sme odstránili túto tranzitívnu závislosť, musíme rozdeliť vzťah R. Pri delení vzťahu vždy umiestnite kandidátsky kľúč a všetky atribúty, ktoré závisia od kandidátskeho kľúča v prvom vzťahu. V ďalšom rozdelenom vzťahu umiestnime atribút, ktorý spôsobí tranzitívnu závislosť, a tiež atribúty, ktoré na ňom závisia v druhom vzťahu.

Definícia BCNF
BCNF sa považuje za silnejší ako 3NF. Vzťah R v BCNF musí byť v 3NF . A kdekoľvek neexistuje triviálna funkčná závislosť A -> B vo vzťahu R, potom A musí byť superkratom vzťahu R. Ako vieme, Super kľúč je kľúč, ktorý má jeden atribút alebo súbor atribútov, ktoré určujú, celú atribúty vzťahu.
Teraz prejdime na príklad, aby sme lepšie pochopili BCNF. Predpokladajme, že máme vzťah R (A, B, C, D, F), ktoré majú nasledovné funkčné závislosti.

Ale jedna funkčná závislosť, tj D -> F porušuje definíciu BCNF, podľa ktorej, ak D -> F existujú, D by mal byť super kľúčom, čo tu nie je. Rozdelíme teda vzťah R.

Kľúčové rozdiely medzi 3NF a BCNF
- 3NF uvádza, že žiadny atribút, ktorý nie je primárne, musí byť prechodne závislý od kandidátskeho kľúča vzťahu. Na druhej strane BCNF uvádza, že ak existuje triviálna funkčná závislosť X -> Y pre vzťah; potom X musí byť super kľúč.
- 3NF možno získať bez toho, aby sme obetovali závislosť vzťahu. Závislosť však nemôže byť zachovaná pri získavaní BCNF.
- 3NF je možné dosiahnuť bez straty informácií zo starej tabuľky, zatiaľ čo pri získavaní BCNF môžeme stratiť niektoré informácie zo starého stola.
záver:
BCNF je oveľa reštriktívnejšia ako 3NF, čo pomáha normalizovať tabuľku viac. Vzťah v 3NF má minimálnu nadbytočnosť, ktorú BCNF ďalej odstráni.