Soovitatav, 2020

Toimetaja Valik

Erinevus 3NF ja BCNF vahel

Normaliseerimine on meetod, mis eemaldab redundantsuse seostest, minimeerides seega sisestuste, kustutamiste ja uuenduste anomaaliaid, mis kahjustavad andmebaaside toimivust. Selles artiklis eristame kahte kõrgemat normaalset vormi, st 3NF ja BCNF. Põhiline erinevus 3NF ja BCNF vahel on see, et 3NF kõrvaldab transitiivse sõltuvuse suhtest ja tabelist BCNF-is, triviaalne funktsionaalne sõltuvus X-> Y suhetes peab hoidma ainult siis, kui X on supervõti.

Arutagem erinevusi 3NF ja BCNF vahel allpool toodud võrdluskaardi abil.

Võrdluskaart

Võrdluse alus3NFBCNF
MõisteMitte-prime atribuut peab olema kandidaatvõtmest transiitlikult sõltuv.Mis tahes triviaalse sõltuvuse korral suhetes R öelda X-> Y, X peaks olema suhtelise võtme R.
Sõltuvus3NF võib saada ilma kõiki sõltuvusi ohverdamata.BCNF-is ei pruugi sõltuvust säilitada.
LagunemineKahjulikku lagunemist on võimalik saavutada 3NF-is.BCNF-is on raske saavutada kadudeta lagunemist.

3NF mõiste

Tabelit või suhet peetakse kolmandas normaalses vormis ainult siis, kui tabel on juba 2NF-is ja puudub suhteline kandidaatvõtmelt transiitne mitte-prime atribuut.

Niisiis lubage mul enne 3NF-i tabeli normaliseerimisprotsessi käsitlemist arutada kandidaatide võtit. Kandidaatide võti on minimaalne supervõti ehk supervõti, millel on minimaalsed atribuudid, mis võivad määratleda kõik suhte atribuudid. Niisiis, oma tabeli normaliseerimise protsessis tunnete esmalt ära antud suhte kandidaatvõti. Kandidaatvõtme osadeks olevad atribuudid on peamised atribuudid ja atribuudid, mis ei ole kandidaatvõti osa, on mitte-prime atribuudid .

Nüüd, kui meil on suhe R (A, B, C, D, E, F) ja meil on järgmiste funktsioonide sõltuvused suhtele R.

Arvestades funktsionaalseid sõltuvusi, võime järeldada, et AB on suhte R kandidaatvõti, sest võtme AB abil saame otsida kõigi atribuutide väärtust suhtel R. Nii A, B muutub peamiseks atribuutiks, kui nad koos teevad kandidaatvõti. Atribuudid C, D, E, F muutuvad mitte-prime atribuutideks, sest ükski neist ei ole kandidaatvõti osa.

Tabel on 2NF-s, kuna mitte-prime-atribuut ei ole osaliselt sõltuv kandidaatide võtmest

Kuid funktsionaalsete sõltuvuste seas täheldatakse transitiivset sõltuvust, kuna atribuut F ei ole otseselt sõltuv kandidaatvõti AB-st . Selle asemel sõltub atribuut D atribuuti F kaudu kandidaatvõti AB -st. Kuni atribuudini D on teatud väärtus, mida me võime saavutada F-väärtuse omistamiseks kandidaatvõti AB-lt. Kui atribuudi D väärtus on NULL, ei saa me kunagi F-väärtust leida / otsida kandidaatvõti AB abil. See on põhjus, miks 3NF nõuab suhete transitiivset sõltuvust.

Seega, selleks, et eemaldada see transitiivne sõltuvus, peame jagama suhted R. Suhe jagamisel asetage alati kandidaatide võti ja kõik atribuudid, mis sõltuvad esimesest suhetest selle kandidaatvõtmega. Järgmises jagatud suhetes asetame teisel suhtel atribuudi, mis põhjustab transitiivset sõltuvust, ja ka atribuute, mis sõltuvad sellest.

Nüüd on tabelid R1 ja R2 3NF-is, kuna sellel pole osalisi ja transitiivseid sõltuvusi. Suhtel R1 (A, B, C, D, E) on kandidaatvõti AB, samas kui suhetel R2 (D, E) on kandidaatvõti D.

BCNF-i määratlus

BCNF loetakse tugevamaks kui 3NF. BCNF-s olev suhe R peab olema 3NF-s . Ja kui mitte-triviaalne funktsionaalne sõltuvus A -> B hoiab suhet R, siis A peab olema suhe R. Suhe . Nagu me teame, on Super võti võti, millel on üks atribuut või atribuutide kogum, mis määrab kogu seose atribuudid.

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

Suhet R jälgides võime öelda, et A ja BF on suhte R kandidaatvõtmed, sest nad üksi saavad otsida kõiki omadusi väärtuses R. Nii A, B, F on peamised atribuudid, C ja D on mitte-prime atribuudid. Ülaltoodud funktsionaalsetes sõltuvustes ei täheldata transitiivset sõltuvust. Seega on tabel R 3NF.

Kuid üks funktsionaalne sõltuvus, st D -> F, rikub BCNF-i määratlust, mille kohaselt, kui D -> F on olemas, siis peaks D olema supervõti, mis siin ei ole. Seega jagame suhte R.

Nüüd on tabelid R1 nd R2 BCNF-is. Suhtel R1 on kaks kandidaatvõtit A ja B, R1 triviaalne funktsionaalne sõltuvus, st A-> BCD ja B -> ACD, mis on BCNF-i jaoks, kuna A ja B on suhtelise võtme võtmed. Suhtel R2 on kandidaatvõtmeks D ja funktsionaalne sõltuvus D -> F kehtib ka BCNF-i jaoks, kuna D on Super Key.

Peamised erinevused 3NF ja BCNF vahel

  1. 3NF väidab, et ükski mitte-prime atribuut ei tohi olla suhteliselt sõltuvuses kandidaatvõtmest. Teisest küljest väidab BCNF, et kui triviaalne funktsionaalne sõltuvus X -> on olemas suhteks; siis peab X olema supervõti.
  2. 3NF võib saada ilma seose sõltuvust ohverdamata. Siiski ei pruugi BCNF-i saamisel sõltuvust säilitada.
  3. 3NF-i saab saavutada ilma, et kaotataks vanast tabelist mingit teavet, samas kui BCNF-i saamisel võime vanast tabelist mõned andmed kaotada.

Järeldus:

BCNF on palju piiravam kui 3NF, mis aitab tabelit normaliseerida. Suhtes 3NF-s on minimaalne redundantsus, mida BCNF eemaldab.

Top