Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi 3NF a BCNF

Normalizácia je metóda, ktorá odstraňuje redundanciu z vzťahu, čím sa minimalizuje vloženie, odstránenie a aktualizácia anomálií, ktoré degradujú výkonnosť databáz. V tomto článku budeme rozlišovať medzi dvoma vyššími normálnymi formami, tj 3NF a BCNF. Základným rozdielom medzi 3NF a BCNF je to, že 3NF eliminuje tranzitívnu závislosť od vzťahu a tabuľky v BCNF, triviálna funkčná závislosť X-> Y vo vzťahu musí držať, iba ak X je super kľúč.

Prediskutujeme rozdiely medzi 3NF a BCNF pomocou porovnávacieho grafu zobrazeného nižšie.

Porovnávacia tabuľka

Základ pre porovnanie3NFBCNF
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.
rozkladBezzá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í.

Pri pozorovaní funkčných závislostí môžeme konštatovať, že AB je kandidátsky kľúč pre vzťah R, pretože pomocou kľúča AB môžeme vyhľadávať hodnotu pre celý atribút v vzťahu R. Takže A, B sa stáva hlavným atribútom, pretože spolu vytvárajú kandidátske kľúčové. Atribúty C, D, E, F sa stávajú atribútmi, ktoré nie sú primárne, pretože žiadna z nich nie je súčasťou kandidátskeho kľúča.

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.

Teraz sú tabuľky R1 a R2 v 3NF, pretože nemá žiadne čiastočné a tranzitívne závislosti. Vzťah R1 (A, B, C, D, E) má kandidátsky kľúč AB, zatiaľ čo vzťah R2 (D, E) má ako kandidátsky kľúč D.

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.

Pri pozorovaní vzťahu R môžeme povedať, že A a BFkandidátske kľúče vzťahu R, pretože oni jediní môžu vyhľadávať hodnotu všetkých atribútov vo vzťahu R. Takže A, B, Fhlavné atribúty, zatiaľ čo C a D sú atribúty nepredajné . Neexistuje žiadna tranzitívna závislosť vo funkčných závislostiach uvedených vyššie. Preto je tabuľka R v 3NF.

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.

Teraz sú tabuľky R1 a R2 v BCNF. Vzťah R1 má dva kandidátske kľúče A a B, triviálna funkčná závislosť R1, tj A-> BCD a B -> ACD, držanie pre BCNF ako A a B sú super kľúče pre vzťah. Vzťah R2D ako jeho kandidátsky kľúč a funkčná závislosť D -> F platí aj pre BCNF, pretože D je Super Key.

Kľúčové rozdiely medzi 3NF a BCNF

  1. 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ľúč.
  2. 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.
  3. 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.

Top