Priporočena, 2024

Izbira Urednika

Razlika med 3NF in BCNF

Normalizacija je metoda, ki odstrani redundanco iz razmerja in s tem minimizira nepravilnosti vstavljanja, brisanja in posodabljanja, ki zmanjšujejo učinkovitost podatkovnih baz. V tem članku bomo razlikovali med dvema višjima normama, to je 3NF in BCNF. Osnovna razlika med 3NF in BCNF je v tem, da 3NF odpravlja prehodno odvisnost od razmerja in tabele v BCNF, trivialna funkcionalna odvisnost X-> Y v razmerju mora biti samo, če je X super ključ.

Razpravljamo o razlikah med 3NF in BCNF s pomočjo primerjalne tabele, prikazane spodaj.

Primerjalna tabela

Podlaga za primerjavo3NFBCNF
KonceptNoben 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.
Odvisnost3NF je mogoče dobiti brez žrtvovanja vseh odvisnosti.V BCNF ni mogoče ohraniti odvisnosti.
RazgradnjaRazgradnja 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.

Če opazujemo funkcionalne odvisnosti, lahko sklepamo, da je AB kandidatni ključ za relacijo R, ker lahko z uporabo ključa AB poiščemo vrednost za vse atribute v relaciji R. Torej A, B postane glavni atribut, ko skupaj tvorijo kandidatni ključ. Atributi C, D, E, F postanejo nepredstavni atributi, ker nobeden od njih ni del kandidatnega ključa.

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.

Zdaj so tabele R1 in R2 v 3NF, ker nima delnih in prehodnih odvisnosti. Relacija R1 (A, B, C, D, E) ima kandidatno tipko AB, medtem ko ima relacija R2 (D, E) D kot njen kandidatni ključ.

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.

Z opazovanjem razmerja R lahko rečemo, da sta A in BF kandidatni ključi relacije R, saj lahko sami poiščejo vrednost za vse atribute v relaciji R. Torej so A, B, F glavne lastnosti, medtem ko sta C in D \ t so nepredstavni atributi. V zgoraj navedenih funkcionalnih odvisnostih ni opažena nobena prehodna odvisnost. Zato je tabela R v 3NF.

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.

Zdaj so tabele R1 nd R2 v BCNF. Relacija R1 ima dva kandidatna ključa A in B, trivialna funkcionalna odvisnost R1, tj. A-> BCD in B -> ACD, drži za BCNF kot A in B so super ključi za razmerje. Odnos R2 ima kot kandidatni ključ D in funkcionalno odvisnost D -> F velja tudi za BCNF, ker je D Super ključ.

Ključne razlike med 3NF in BCNF

  1. 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č.
  2. 3NF lahko dobimo brez žrtvovanja odvisnosti. Vendar se odvisnost morda ne ohrani pri pridobivanju BCNF.
  3. 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.

Top