Erinevus 3NF ja BCNF vahel

Autor: Laura McKinney
Loomise Kuupäev: 1 Aprill 2021
Värskenduse Kuupäev: 11 Mai 2024
Anonim
Erinevus 3NF ja BCNF vahel - Tehnoloogia
Erinevus 3NF ja BCNF vahel - Tehnoloogia

Sisu


Normaliseerimine on meetod, mis eemaldab koondamine suhtest minimeerides seeläbi andmebaaside jõudlust halvendavate sisestamise, kustutamise ja värskendamise anomaaliaid. Selles artiklis eristame kahte kõrgemat normaalset vormi, st 3NF ja BCNF. Põhiline erinevus 3NF ja BCNF vahel on see 3NF kõrvaldab suhtest translatiivse sõltuvuse ja BCNF-is oleva tabeli, peab olema triviaalne funktsionaalne sõltuvus X-> Y suhetes, ainult siis, kui X on supervõti.

Arutame 3NF-i ja BCNF-i erinevusi allpool toodud võrdlusdiagrammi abil.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alus3NFBCNF
KontseptsioonÜkski ülitähtis atribuut ei tohi olla ajutiselt sõltuv kandidaadivõtmest.Mis tahes triviaalse sõltuvuse korral suhtest R ütleme X-> Y, X peaks olema suhte R supervõti.
Sõltuvus3NF-i saab ilma kõiki sõltuvusi ohverdamata.Sõltuvusi ei pruugita BCNF-is säilitada.
Lagunemine3NF-is saab saavutada kadudeta lagunemise.Kadudeta lagunemist on BCNF-is raske saavutada.


3NF määratlus

Tabel või seos loetakse olevat Kolmas normaalne vorm ainult siis, kui laud on juba sisse lülitatud 2NF ja seda pole mitte-peaminister atribuut transitiivselt sõltuvad kandidaadi võti suhtest.

Niisiis, enne kui ma käsitlen 3NF-i tabeli normaliseerimise protsessi, lubage mul arutada kandidaatvõtit. A Kandidaadi võti on minimaalne supervõti st supervõti minimaalsete atribuutidega, mis suudavad määratleda suhte kõik atribuudid. Niisiis, teie tabeli normaliseerimise käigus tunnete kõigepealt ära antud suhte kandidaatvõtme. Kandidaatide võtme atribuudid on peamised atribuudidja atribuudid, mis ei kuulu kandidaatvõtme alla, on mitte-peamised atribuudid.

Kui meil on suhe R (A, B, C, D, E, F) ja meil on suhte R jaoks järgmised funktsiooni sõltuvused.


Vaadates funktsionaalseid sõltuvusi, võime sellest järeldada AB on seose R kandidaatvõti, kuna võtme AB abil saame otsida seose R. atribuudi väärtuse A, B muutub peamised atribuudid kuna nad koos moodustavad kandidaadi võtme. Atribuudid C, D, E, F muutub mitte-peaminister atribuute, kuna ükski neist pole kandidaatvõtme osa.

Tabel on 2NF, kuna mitte ükski atribuut ei sõltu osaliselt kandidaatvõtmest

Kuid atribuudina pakutavate funktsionaalsete sõltuvuste hulgas täheldatakse transitiivset sõltuvust F ei sõltu otseselt kandidaadi võtmest AB. Selle asemel atribuut F on transitiivselt sõltub kandidaatvõtmest AB atribuudi kaudu D. Kuni atribuudil D on väärtus, milleni me võime jõuda, et atribuudi väärtus F välja saada kandidaatvõtmest AB. Kui atribuudi D väärtus on NULL, ei saa me F väärtust kunagi otsida / otsida kandidaatvõtme AB abil. See on põhjus, miks 3NF nõuab suhetest mööduva sõltuvuse eemaldamist.

Niisiis, selle transitiivse sõltuvuse eemaldamiseks peame jagama suhte R. Suhte jagamisel asetage alati kandidaatvõti ja kõik atribuudid, mis sõltuvad sellest kandidaatvõtmest esimeses seoses. Järgmisse jagatud seosesse paigutame atribuudi, mis põhjustab transitiivse sõltuvuse, ja ka atribuudid, mis sellest sõltuvad.

Nüüd on tabelid R1 ja R2 3NF-is, kuna sellel pole jäänud osalisi ja transitiivseid sõltuvusi. Suhe R1 (A, B, C, D, E) omab kandidaatvõtit AB arvestades, et suhe R2 (D, E) on D kui tema kandidaatide võti.

BCNF määratlus

BCNF-i peetakse tugevamaks kui 3NF. BCNF-is olev suhe R peab olema sisendites 3NF. Ja kus iganes a mitte-triviaalne funktsionaalne sõltuvus A -> B kehtib R suhtes A peab olema a superklahv suhte R. kohta. Nagu me teame, on supervõti võti, millel on üksainus atribuut või atribuutide komplekt, mis määrab seose kogu atribuudi.

Liigume nüüd näite juurde, et BCNF-i paremini mõista. Oletagem, et meil on suhe R (A, B, C, D, F), millel on järgmised funktsionaalsed sõltuvused.

Vaadeldes suhet R, võime seda öelda A ja BF on kandidaatide võtmed seoses R-ga, kuna üksi suudavad nad leida seose R kõigi atribuutide väärtuse A, B, F on peaminister atribuudid arvestades, C ja D on mitte-peaminister atribuudid. Ülaltoodud funktsionaalses sõltuvuses transitiivset sõltuvust ei täheldatud. Seega on tabel R 3NF-is.

Kuid üks funktsionaalne sõltuvus s.t. D -> F rikub BCNF määratlust, mille kohaselt kui D -> F on olemas, siis D peaks olema super võti mis siin ei ole nii. Jagame siis suhte R.

Nüüd on tabelid R1 ja R2 BCNF-is. Suhe R1 on kaks kandidaat võtmed A ja B, siis R1 triviaalne funktsionaalne sõltuvus, st A-> BCD ja B -> ACD, hoidke BCNF-i, kuna A ja B on suhte superklahvid. Suhe R2 on D oma kandidaadi võti ja funktsionaalne sõltuvus D -> F kehtib ka BCNF-i kohta, kuna D on supervõti.

  1. 3NF väidab, et ükski mittetähtis atribuut ei tohi olla ajutiselt sõltuv suhte kandidaatvõtmest. Teisest küljest väidab BCNF, et kui mingi suhte jaoks eksisteerib triviaalne funktsionaalne sõltuvus X -> Y; siis peab X olema supervõti.
  2. 3NF on võimalik saada ilma sõltuvust sõltuvust ohverdamata. Siiski ei pruugi BCNF-i saamisel sõltuvust säilitada.
  3. 3NF-i saab saavutada ilma vanast tabelist mingit teavet kaotamata, samal ajal kui BCNF-i hankides võime kaotada osa vanast tabelist.

Järeldus:

BCNF on palju piiravam kui 3NF, mis aitab tabelit rohkem normaliseerida. 3NF-i seosel on minimaalne liiasus, mida BCNF eemaldab veelgi.