logo

Boyce-Codd normalna oblika (BCNF)

Predpogoj: Prva normalna oblika , Druga normalna oblika , Tretja normalna oblika

Uporaba splošnih definicij 2NF in 3NF lahko identificira dodatno redundanco, ki jo povzročajo odvisnosti, ki kršijo enega ali več kandidatnih ključev. Kljub tem dodatnim omejitvam pa lahko še vedno obstajajo odvisnosti, ki bodo povzročile odvečnost v odnosih 3NF. Ta slabost v 3NF je povzročila predstavitev močnejše normalne oblike, imenovane the Boyce-Codd normalna oblika (Codd, 1974) .



Čeprav je 3NF ustrezna normalna oblika za relacijske baze podatkov, vseeno ta (3NF) normalna oblika morda ne bo odstranila 100-odstotne redundance zaradi funkcionalne odvisnosti X−>Y, če X ni kandidatni ključ dane relacije. To je mogoče rešiti z Boyce-Coddovo normalno obliko (BCNF).

Boyce-Codd normalna oblika (BCNF)

Boyce–Codd normalna oblika (BCNF) temelji na funkcionalnih odvisnostih, ki upoštevajo vse kandidatne ključe v relaciji; vendar ima BCNF tudi dodatne omejitve v primerjavi s splošno definicijo 3NF.

Pravila za BCNF

1. pravilo: Tabela mora biti v 3. normalni obliki.



2. pravilo: X bi moral biti nadključ za vsako funkcionalno odvisnost (FD) X−>Y v dani relaciji.

Opomba: Za preizkus, ali je relacija v BCNF, identificiramo vse determinante in se prepričamo, da so kandidatni ključi.

BCNF v DBMS



Naleteli ste na podobno hierarhijo, znano kot Normalna oblika Chomskega v teoriji računanja. Zdaj natančno preučite zgornjo hierarhijo. Lahko se sklepa, da vsaka relacija v BCNF je tudi v 3NF . Povedano drugače, ni nujno, da je relacija v 3NF v BCNF. Nekaj ​​časa premislite o tej izjavi.

Za določitev najvišje normalne oblike dane relacije R s funkcionalnimi odvisnostmi je prvi korak preveriti, ali pogoj BCNF drži. Če se ugotovi, da je R v BCNF, je mogoče varno sklepati, da je razmerje tudi v 3NF , 2NF, in 1NF kot kaže hierarhija. 1NF ima najmanj omejevalno omejitev – zahteva le, da ima relacija R atomske vrednosti v vsaki torki. 2NF ima nekoliko bolj restriktivno omejitev.

3NF ima bolj restriktivno omejitev kot prvi dve normalni obliki, vendar je manj restriktivna kot BCNF. Na ta način se omejitev povečuje, ko gremo po hierarhiji navzdol.

Primeri

Tukaj bomo obravnavali nekaj osnovnih primerov, ki vam bodo pomagali razumeti lastnosti BCNF. Tukaj bomo razpravljali o več primerih.

Primer 1

Oglejmo si podatkovno bazo študentov, v kateri so navedeni podatki o študentu.

Ta_ID Ta veja Stu_Course Številka_podružnice Stu_Course_No
101 Računalništvo in inženiring DBMS B_001 201
101 Računalništvo in inženiring Računalniška omrežja B_001 202
102 Elektronika in komunikacijski inženiring Tehnologija VLSI B_003 401
102 Elektronika in komunikacijski inženiring Mobilna komunikacija B_003 402

Funkcionalna odvisnost zgoraj navedenega je, kot je navedeno:

Stu_ID −>Stu_Branch Stu_Course −> {Branch_Number, Stu_Course_No}>

Ključi kandidatov zgornje tabele so: {This_ID, This_Course}

Zakaj te tabele ni v BCNF?

Zgornja tabela ni v BCNF, ker kot lahko vidimo, niti Stu_ID niti Stu_Course nista Super Key. Ker zgoraj omenjena pravila jasno povedo, da je tabela v BCNF, mora slediti lastnosti, da mora biti za funkcionalno odvisnost X−>Y, X v Super Key in tukaj ta lastnost ne uspe, zato ta tabela ni v BCNF .

Kako zadovoljiti BCNF?

Da bi zadovoljili to tabelo v BCNF, jo moramo razstaviti na nadaljnje tabele. Tukaj je celoten postopek, s katerim to tabelo pretvorimo v BCNF. Najprej razdelimo to glavno tabelo na dve tabeli Ta veja in Stu_Course Tabela.

Stu_Branch Tabela

Ta_ID Ta veja
101 Računalništvo in inženiring
102 Elektronika in komunikacijski inženiring

Ključ kandidata za to tabelo: Ta_ID .

java veljavni identifikatorji

Stu_Course Table

Stu_Course Številka_podružnice Stu_Course_No
DBMS B_001 201
Računalniška omrežja B_001 202
Tehnologija VLSI B_003 401
Mobilna komunikacija B_003 402

Ključ kandidata za to tabelo: Stu_Course .

Stu_ID do Stu_Course_No Table

Ta_ID Stu_Course_No
101 201
101 202
102 401
102 402

Ključ kandidata za to tabelo: {Stu_ID, Stu_Course_No}.

Po razgradnji v nadaljnje tabele je zdaj v BCNF, saj posreduje pogoj super ključa, da je v funkcionalni odvisnosti X−>Y X Super ključ.

Primer 2

Poiščite najvišjo normalno obliko relacije R(A, B, C, D, E) s FD, nastavljenim kot:

{ BC->D, AC->BE, B->E }>

Pojasnilo:

  • Korak 1: Kot lahko vidimo, je (AC)+ = {A, C, B, E, D}, vendar nobena od njegovih podmnožic ne more določiti vseh atributov relacije, zato bo AC kandidatni ključ. A ali C ni mogoče izpeljati iz nobenega drugega atributa relacije, zato bo na voljo samo 1 kandidatni ključ {AC}.
  • 2. korak: Praatributi so tisti atributi, ki so del kandidatnega ključa {A, C} v tem primeru, drugi pa bodo v tem primeru neprimarni {B, D, E}.
  • 3. korak: Relacija R je v 1. normalni obliki, saj relacijski DBMS ne dovoljuje večvrednostnih ali sestavljenih atributov.

Relacija je v 2. normalni obliki, ker je BC->D v 2. normalni obliki (BC ni ustrezna podmnožica kandidatnega ključa AC) in je AC->BE v 2. normalni obliki (AC je kandidatni ključ) in B->E je v 2. normalni obliki (B ni pravilna podmnožica kandidatnega ključa AC).

Razmerje je ne v 3. normalni obliki, ker v BC->D (niti BC ni superključ niti D ni primarni atribut) in v B->E (niti B ni super ključ niti E ni primarni atribut), ampak za izpolnitev 3. normale za , naj bo LHS FD super ključ ali RHS glavni atribut. Torej bo najvišja normalna oblika relacije 2. normalna oblika.

Opomba: Primarni atribut ne more biti tranzitivno odvisen od ključa v relaciji BCNF.

Razmislite o teh funkcionalnih odvisnostih neke relacije R

AB ->C C ->B AB ->B>

Recimo, da je znano, da je edini kandidat za ključ R AB. Natančno opazovanje je potrebno za zaključek, da je zgornja odvisnost prehodna odvisnost, saj je glavni atribut B prehodno odvisen od ključa AB do C. Zdaj sta prvi in ​​tretji FD v BCNF, saj oba vsebujeta kandidatni ključ (ali preprosto KEY) na njihovi levi strani. Druga odvisnost pa ni v BCNF, ampak je vsekakor v 3NF zaradi prisotnosti glavnega atributa na desni strani. Torej je najvišja normalna oblika R 3NF, saj vse tri FD izpolnjujejo potrebne pogoje, da so v 3NF.

Primer 3

Na primer upoštevajte razmerje R(A, B, C)

A ->BC, B -> A>>

A in B sta super ključa, zato je zgornja relacija v BCNF.

Opomba: Razgradnja BCNF morda vedno ni mogoča s pogojem združevanja brez izgub. Na primer relacija R (V, W, X, Y, Z), s funkcionalnimi odvisnostmi:

V, W ->X Y, Z -> X W -> Y>>

Ne bi zadovoljil razgradnje BCNF, ki ohranja odvisnost.

Opomba: Redundance so včasih še vedno prisotne v razmerju BCNF, saj jih ni vedno mogoče popolnoma odpraviti.

Obstaja tudi nekaj normalnih oblik višjega reda, kot sta 4. normalna oblika in 5. normalna oblika.

Za več glejte 4. in 5. normalno obliko.