Razpravljamo o razlikah med 3NF in BCNF s pomočjo primerjalne tabele, prikazane spodaj.
Primerjalna tabela
Podlaga za primerjavo | 3NF | BCNF |
---|---|---|
Koncept | Noben atribut, ki ni glavni, mora biti tranzitivno odvisen od ključa kandidata. | Za vsako trivialno odvisnost v relaciji R pravimo, da je X-> Y, X super ključ relacije R. |
Odvisnost | 3NF je mogoče dobiti brez žrtvovanja vseh odvisnosti. | V BCNF ni mogoče ohraniti odvisnosti. |
Razgradnja | Razgradnja brez izgube se lahko doseže v 3NF. | V BCNF je težko doseči razgradnjo brez izgube. |
Opredelitev 3NF
Tabela ali razmerje se šteje, da je v tretji normalni obliki samo, če je tabela že v 2NF in ni nobenega ne-primarnega atributa, ki je tranzitivno odvisen od kandidatnega ključa relacije.
Torej, preden se lotim procesa normalizacije tabele v 3NF, mi dovolite, da razpravljamo o kandidatnem ključu. Ključ kandidata je minimalni super ključ, tj. Super ključ z minimalnimi atributi, ki lahko definirajo vse atribute relacije. Torej, v procesu normalizacije vaše tabele, najprej prepoznate kandidatnega ključa dane relacije. Atributi, ki so del kandidatnega ključa, so glavni atributi in atributi, ki niso del kandidatnega ključa, so nepredstavni atributi .
Zdaj, če imamo razmerje R (A, B, C, D, E, F) in imamo naslednje odvisnosti funkcije za relacijo R.
Tabela je v 2NF, saj ni atribut brez primerov delno odvisen od kandidatne ključe
Toda med predvidenimi funkcionalnimi odvisnostmi opazimo prehodno odvisnost, ker atribut F ni neposredno odvisen od kandidatne ključe AB . Namesto tega je atribut F tranzitivno odvisen od kandidatne tipke AB prek atributa D. Do atributa D je določena vrednost, ki jo lahko dosežemo do atributne vrednosti F, iz kandidatnega ključa AB. V primeru, da je vrednost atributa D NULL, ne moremo nikoli najti / iskati vrednosti F s pomočjo kandidatnega ključa AB. To je razlog, zakaj 3NF zahteva odstranitev prehodne odvisnosti od odnosov.
Torej, da bi odstranili to prehodno odvisnost, moramo razdeliti relacijo R. Medtem ko delimo razmerje, vedno postavimo kandidatni ključ in vse atribute, ki so odvisni od tega kandidatnega ključa v prvem razmerju. V naslednjem razdeljenem razmerju bomo postavili atribut, ki povzroča prehodno odvisnost, in atribute, ki so od njega odvisni v drugem razmerju.
Opredelitev BCNF
Šteje se, da je BCNF močnejši od 3NF. Razmerje R v BCNF mora biti v 3NF . In kjer koli v relaciji R drži nekritično funkcionalno odvisnost A -> B, mora biti A superkljuk relacije R. Kot vemo, je Super ključ ključ, ki ima en atribut ali niz atributov, ki določajo celoten atributi razmerja.
Zdaj pa preidimo na primer, da bi bolje razumeli BCNF. Recimo, da imamo razmerje R (A, B, C, D, F), ki ima naslednje funkcionalne odvisnosti.
Toda ena funkcionalna odvisnost, tj. D -> F, krši definicijo BCNF, po kateri, če D -> F obstaja, potem je D super ključ, kar v tem primeru ni. Zato bomo razdelili relacijo R.
Ključne razlike med 3NF in BCNF
- 3NF navaja, da noben ne-glavni atribut ne sme biti tranzitivno odvisen od kandidatnega ključa relacije. Po drugi strani pa BCNF trdi, da če obstajajo trivialna funkcionalna odvisnost X -> Y za relacijo; potem mora biti X super ključ.
- 3NF lahko dobimo brez žrtvovanja odvisnosti. Vendar se odvisnost morda ne ohrani pri pridobivanju BCNF.
- 3NF je mogoče doseči brez izgube informacij iz stare tabele, medtem ko lahko pri pridobivanju BCNF izgubimo nekaj podatkov iz stare tabele.
Sklep:
BCNF je precej restriktivnejši od 3NF, ki pomaga pri normalizaciji tabele več. Odnos v 3NF ima minimalno redundanco, ki jo BCNF še naprej odstranjuje.