
Arutagem erinevusi 3NF ja BCNF vahel allpool toodud võrdluskaardi abil.
Võrdluskaart
Võrdluse alus | 3NF | BCNF |
---|---|---|
Mõiste | Mitte-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õltuvus | 3NF võib saada ilma kõiki sõltuvusi ohverdamata. | BCNF-is ei pruugi sõltuvust säilitada. |
Lagunemine | Kahjulikku 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.

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.

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.

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.

Peamised erinevused 3NF ja BCNF vahel
- 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.
- 3NF võib saada ilma seose sõltuvust ohverdamata. Siiski ei pruugi BCNF-i saamisel sõltuvust säilitada.
- 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.