Razlika med 3NF in BCNF

Avtor: Laura McKinney
Datum Ustvarjanja: 1 April 2021
Datum Posodobitve: 17 Maj 2024
Anonim
Razlika med 3NF in BCNF - Tehnologija
Razlika med 3NF in BCNF - Tehnologija

Vsebina


Normalizacija je metoda, ki odstranjuje odvečnost iz razmerja, s čimer se zmanjšajo nepravilnosti pri vstavljanju, brisanju in posodabljanju, ki poslabšajo delovanje podatkovnih baz. V tem članku bomo razlikovali med dvema višjima normalnima oblikoma, to je 3NF in BCNF. Osnovna razlika med 3NF in BCNF je v tem 3NF odpravlja prehodno odvisnost od relacije in tabele, ki bo v BCNF, trivialna funkcionalna odvisnost X-> Y v relaciji mora vsebovati le, če je X super ključ.

O razlikah med 3NF in BCNF razpravimo s spodnjo primerjalno tabelo.

  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Zaključek

Primerjalna tabela

Osnove za primerjavo3NFBCNF
KonceptNoben atribut, ki ni primeren, ne sme biti odvisen od ključa Candidate.Za vsako trivialno odvisnost v relaciji R recimo X-> Y bi moral biti X super ključ relacije R.
Odvisnost3NF je mogoče dobiti brez žrtvovanja vseh odvisnosti.V BCNF ni mogoče ohraniti odvisnosti.
RazgradnjaRazkroj brez izgube je mogoče doseči v 3NF.Razpad brez izgub je v BCNF težko doseči.


Opredelitev 3NF

Šteje se, da je tabela ali odnos Tretja normalna oblika le, če je tabela že v 2NF in ni neprimerno atribut prehodno odvisen od kandidatni ključ razmerja.

Preden se lotim postopka normalizacije tabele v 3NF, mi dovolite, da razpravljam o ključu kandidata. A Ključ kandidata je minimalno super tipko to je super tipka z minimalnimi atributi, ki lahko opredelijo vse atribute relacije. Torej v postopku normalizacije svoje tabele najprej prepoznate kandidatni ključ dane relacije. Atributi, ki so del kandidatnega ključa, so glavni atributiin atributi, ki niso del kandidatnega ključa, so neprimerni atributi.

Zdaj, če imamo razmerje R (A, B, C, D, E, F) in imamo za razmerje R. naslednje funkcijske odvisnosti.


Če opazimo funkcionalne odvisnosti, lahko to sklepamo AB je kandidatni ključ za relacijo R, ker s tipko AB lahko iščemo vrednost za vse atribute v relaciji R. Torej A, B postane glavni atributi saj skupaj naredijo ključ kandidata. Atributi C, D, E, F postane neprimerno atribute, ker noben od njih ni del ključa kandidata.

Tabela je v 2NF, saj noben neprimerni atribut ni delno odvisen od kandidatnega ključa

Vendar je med ponujenimi funkcijskimi odvisnostmi kot atributom opaziti prehodno odvisnost F ni neposredno odvisen od ključa kandidata AB. Namesto tega atribut F je prehodno odvisno od ključa kandidata AB prek atributa D. Do atributa D ima nekaj vrednosti, ki jo lahko dosežemo, da pripišemo vrednost F, iz ključa kandidata AB. V primeru, da je vrednost atributa D NULL, nikoli ne moremo najti / poiskati vrednosti F s pomočjo ključa AB. To je razlog, zakaj 3NF zahteva odstranitev prehodne odvisnosti iz odnosov.

Torej, da odstranimo to prehodno odvisnost, moramo razdeliti razmerje R. Medtem ko delite relacijo, v prvo razmerje vedno postavite kandidatni ključ in vse atribute, ki so odvisni od tega ključa. V naslednji deljeni odnos postavimo atribut, ki povzroča prehodno odvisnost, in atribute, ki so odvisni od njega, v drugo razmerje.

Zdaj sta tabeli R1 in R2 v 3NF, saj ni delnih in prehodnih odvisnosti. Odnos R1 (A, B, C, D, E) ima ključ kandidata AB ker odnos R2 (D, E) je D kot njegov ključni kandidat.

Opredelitev BCNF

BCNF velja za močnejšega od 3NF. Razmerje R v BCNF mora biti v 3NF. In kjerkoli netrivialna funkcionalna odvisnost A -> B torej drži v razmerju R A mora biti a superkey razmerja R. Kot vemo, je Super tipka ključ, ki ima en atribut ali niz atributov, ki določa, celotne atribute relacije.

Zdaj pa preidimo na primer, da bomo na boljši način razumeli BCNF. Predpostavimo, da imamo odnos R (A, B, C, D, F), ki imajo naslednje funkcionalne odvisnosti.

Z opazovanjem relacije R lahko to rečemo A in BF so kandidatni ključi razmerja R, ker samo oni lahko iščejo vrednost za vse atribute v relaciji R. Torej A, B, F so tisti prime atributi, ker C in D so neprimerno lastnosti. Pri zgoraj prisotnih funkcionalnih odvisnostih ni opaziti prehodne odvisnosti. Zato je tabela R v 3NF.

Toda ena funkcionalna odvisnost, tj. D -> F krši definicijo BCNF, po kateri če D -> F potem obstaja D bi moral biti super ključ kar tukaj ne gre. Tako bomo razdelili razmerje R.

Zdaj so tabele R1 in R2 v BCNF. Odnos R1 ima dva kandidat tipke A in B, trivialna funkcionalna odvisnost R1, to je A-> BCD in B -> ACD, držite za BCNF kot A in B sta super tipki za razmerje. Odnos R2 je D kot svoj kandidatni ključ in funkcionalna odvisnost D -> F velja tudi za BCNF, saj je D super tipka.

  1. 3NF navaja, da noben neprimerni atribut ne sme biti prehodno odvisen od kandidatnega ključa relacije. Po drugi strani BCNF navaja, da če za razmerje obstaja trivialna funkcionalna odvisnost X -> Y; potem mora biti X super tipka.
  2. 3NF je mogoče dobiti brez žrtvovanja odvisnosti odnosa. Vendar pa odvisnosti ni mogoče ohraniti med pridobitvijo BCNF.
  3. 3NF je mogoče doseči brez izgube nobene informacije iz stare tabele, medtem ko lahko s pridobivanjem BCNF izgubimo nekaj informacij iz stare tabele.

Zaključek:

BCNF je precej restriktivnejši od 3NF, ki bolj pomagajo pri normalizaciji tabele. Razmerje v 3NF ima najmanjšo preostalo rezervnost, ki jo BCNF še naprej odstrani.