Rozdiel medzi 3NF a BCNF

Autor: Laura McKinney
Dátum Stvorenia: 1 Apríl 2021
Dátum Aktualizácie: 17 Smieť 2024
Anonim
Rozdiel medzi 3NF a BCNF - Technológie
Rozdiel medzi 3NF a BCNF - Technológie

Obsah


normalizácie je metóda, ktorá sa odstraňuje nadbytok z vzťahu, čím sa minimalizujú anomálie vkladania, vymazávania a aktualizácie, ktoré znižujú výkonnosť databáz. V tomto článku budeme rozlišovať medzi dvoma vyššími normálnymi formami, t.j. 3NF a BCNF. Základný rozdiel medzi 3NF a BCNF je ten 3NF eliminuje tranzitívnu závislosť od vzťahu a tabuľky, ktorá má byť v BCNF, musí triviálna funkčná závislosť X-> Y vo vzťahu držať, iba ak X je superkľúč.

Poďme diskutovať o rozdieloch medzi 3NF a BCNF pomocou porovnávacej tabuľky uvedenej nižšie.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnanie3NFBCNF
pojemŽiadny primárny atribút nesmie byť tranzitne závislý od kľúča kandidáta.Pre akúkoľvek malú závislosť vo vzťahu R povedzme 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 sa v BCNF nemôžu zachovať.
rozkladBezstratový rozklad sa dá dosiahnuť v 3NF.V BCNF je ťažké dosiahnuť bezstratový rozklad.


Definícia 3NF

Tabuľka alebo vzťah sa považujú za odkazy Tretí normálny formulár iba ak je tabuľka už v 2NF a neexistuje non-prime atribút tranzitívne v závislosti na kľúč kandidáta vzťahu.

Skôr ako sa budem venovať procesu normalizácie tabuľky v 3NF, dovoľte mi diskutovať o kľúči kandidáta. Kandidátsky kľúč je minimálny super kľúč t. j. super kľúč s minimálnymi atribútmi, ktorý môže definovať všetky atribúty vzťahu. Takže v procese normalizácie tabuľky najprv rozpoznáte kandidátsky kľúč daného vzťahu. Atribúty, ktoré sú súčasťou kľúča kandidáta, sú hlavné atribútya atribúty, ktoré nie sú súčasťou kľúča kandidáta, sú non-prvoradé atribúty.


Teraz, keď máme vzťah R (A, B, C, D, E, F) a máme nasledujúce funkčné závislosti pre vzťah R.

Pri pozorovaní funkčných závislostí môžeme dospieť k záveru AB je kandidátsky kľúč pre vzťah R, pretože pomocou kľúča AB môžeme vyhľadať hodnotu pre všetky atribúty vo vzťahu R. So A, B stáva hlavné atribúty keď spolu tvoria kľúč kandidáta. Atribúty C, D, E, F stáva non-prime atribúty, pretože žiadny z nich nie je súčasťou kľúča kandidáta.

Tabuľka je v 2NF, pretože žiadny neprimárny atribút je čiastočne závislý od kľúča kandidáta

Medzi poskytnutými funkčnými závislosťami ako atribút sa však pozoruje prechodná závislosť F nie je priamo závislý od kľúča kandidáta AB, Namiesto toho, atribút F je tranzitívne v závislosti od kľúča kandidáta AB prostredníctvom atribútu D, Až do atribútu D má nejakú hodnotu, ktorú môžeme dosiahnuť k hodnote atribútu F, z kandidátskeho kľúča AB. V prípade, že hodnota atribútu D je NULL, nemôžeme nikdy nájsť / vyhľadať hodnotu F pomocou kandidátneho kľúča AB. To je dôvod, prečo 3NF požaduje odstránenie tranzitívnej závislosti od vzťahov.

Aby sme odstránili túto tranzitívnu závislosť, musíme rozdeliť vzťah R. Pri rozdelení vzťahu vždy umiestnite kandidátny kľúč a všetky atribúty, ktoré závisia od tohto kandidáta, do prvého vzťahu. V ďalšom rozdelenom vzťahu umiestnime atribút, ktorý spôsobuje tranzitívnu závislosť, a tiež atribúty, ktoré od neho závisia, do druhého vzťahu.

Teraz sú tabuľky R1 a R2 v 3NF, pretože nezostali žiadne čiastočné a prechodné závislosti. vzťah R1 (A, B, C, D, E) má kandidátny kľúč AB keďže vzťah R2 (D, E)D ako jeho kandidátsky kľúč.

Definícia BCNF

BCNF sa považuje za silnejší ako 3NF. Vzťah R, ktorý má byť v BCNF, musí byť v 3NF, A kdekoľvek a netriviálna funkčná závislosť A -> B potom platí vo vzťahu k R musí byť a superkey vzťahu R. Ako vieme, Super kľúč je kľúč, ktorý má jeden atribút alebo množinu atribútov, ktoré určujú, celé atribúty vzťahu.

Teraz prejdime k príkladu, aby sme lepšie porozumeli BCNF. Predpokladajme, že máme vzťah R (A, B, C, D, F), ktoré majú nasledujúce funkčné závislosti.

Pozorovaním vzťahu R to môžeme povedať a BFkľúče kandidáta vzťahu R, pretože samotné môžu vyhľadávať hodnotu všetkých atribútov vo vzťahu R. So A, B, Fhlavný atribúty, C a Dnon-prime atribúty. Vo vyššie uvedených funkčných závislostiach nie je pozorovaná žiadna prechodná závislosť. Preto je tabuľka R v 3NF.

Jedna funkčná závislosť, t. D -> F porušuje definíciu BCNF, podľa ktorej, ak potom existuje D -> F D by malo byť super kľúč čo nie je tento prípad. Takže rozdelíme vzťah R.

Teraz sú tabuľky R1 a R2 v BCNF. vzťah R1 má dve kandidát klávesy a B, triviálna funkčná závislosť R1, t.j. A-> BCD a B -> ACD, platí pre BCNF, pretože A a B sú super kľúče pre vzťah. vzťah R2D ako jeho kľúč kandidáta a funkčná závislosť D -> F platí aj pre BCNF, pretože D je super kľúč.

  1. 3NF uvádza, že žiadny neprimárny atribút nesmie byť tranzitne 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 je možné získať bez obetovania závislosti vzťahov. Závislosť sa však pri získavaní BCNF nemusí zachovať.
  3. 3NF je možné dosiahnuť bez straty akýchkoľvek informácií zo starej tabuľky, zatiaľ čo pri získavaní BCNF môžeme stratiť niektoré informácie zo starej tabuľky.

záver:

BCNF je oveľa reštriktívnejší ako 3NF, čo pomáha pri normalizácii tabuľky viac. Vzťah v 3NF má minimálnu nadbytočnosť, ktorá je ďalej odstránená BCNF.