logo

Boyce-Coddin normaalimuoto (BCNF)

Edellytys: Ensimmäinen normaali muoto , Toinen normaali muoto , Kolmas normaalimuoto

2NF:n ja 3NF:n yleisten määritelmien soveltaminen voi tunnistaa ylimääräistä redundanssia, joka johtuu riippuvuuksista, jotka rikkovat yhtä tai useampaa ehdokasavainta. Näistä lisärajoituksista huolimatta riippuvuuksia voi kuitenkin olla, jotka aiheuttavat redundanssin esiintymisen 3NF-suhteissa. Tämä 3NF:n heikkous johti vahvemman normaalimuodon, nimeltään the Boyce-Coddin normaalimuoto (Codd, 1974) .



Vaikka 3NF on sopiva normaalimuoto relaatiotietokannoille, tämä (3NF) normaalimuoto ei kuitenkaan välttämättä poista 100 % redundanssia X−>Y toiminnallisen riippuvuuden vuoksi, jos X ei ole annetun suhteen ehdokasavain. Tämä voidaan ratkaista Boyce-Coddin normaalimuodolla (BCNF).

Boyce-Coddin normaalimuoto (BCNF)

Boyce–Coddin normaalimuoto (BCNF) perustuu toiminnallisiin riippuvuuksiin, jotka ottavat huomioon suhteen kaikki ehdokasavaimet; BCNF:llä on kuitenkin myös lisärajoituksia verrattuna 3NF:n yleiseen määritelmään.

BCNF:n säännöt

Sääntö 1: Taulukon tulee olla 3. normaalimuodossa.



Sääntö 2: X:n tulee olla superavain jokaiselle funktionaaliselle riippuvuudelle (FD) X−>Y tietyssä suhteessa.

Huomautus: Testaaksemme, onko relaatio BCNF:ssä, tunnistamme kaikki determinantit ja varmistamme, että ne ovat ehdokasavaimia.

BCNF DBMS:ssä



Törmäsit samanlaiseen hierarkiaan, joka tunnetaan nimellä Chomsky normaali muoto laskentateoriassa. Tutki nyt huolellisesti yllä olevaa hierarkiaa. Siitä voi päätellä jokainen suhde BCNF:ssä on myös 3NF:ssä . Toisin sanoen relaatio 3NF:ssä ei tarvitse olla BCNF:ssä. Mieti tätä lausuntoa hetki.

Tietyn suhteen R korkeimman normaalimuodon määrittämiseksi funktionaalisilla riippuvuuksilla on ensimmäinen vaihe tarkistaa, onko BCNF-ehto voimassa. Jos R:n havaitaan olevan BCNF:ssä, voidaan turvallisesti päätellä, että relaatio on myös sisällä 3NF , 2NF, ja 1NF kuten hierarkia osoittaa. 1NF:llä on vähiten rajoittava rajoitus – se vaatii vain relaatiota R, jotta jokaisessa monikossa olisi atomiarvoja. 2NF:llä on hieman rajoittavampi rajoitus.

3NF:llä on rajoittavampi rajoitus kuin kahdella ensimmäisellä normaalimuodolla, mutta se on vähemmän rajoittava kuin BCNF. Tällä tavalla rajoitus kasvaa, kun kuljemme hierarkiaa alaspäin.

Esimerkkejä

Tässä aiomme keskustella joistakin perusesimerkeistä, joiden avulla voit ymmärtää BCNF:n ominaisuuksia. Keskustelemme täällä useista esimerkeistä.

Esimerkki 1

Tarkastellaanpa opiskelijatietokantaa, jossa opiskelijan tiedot mainitaan.

This_ID This_Branch Stu_Kurssi Branch_Number Stu_Course_No
101 Tietojenkäsittelytiede ja -tekniikka DBMS B_001 201
101 Tietojenkäsittelytiede ja -tekniikka Tietokoneverkot B_001 202
102 Elektroniikka ja viestintätekniikka VLSI-tekniikka B_003 401
102 Elektroniikka ja viestintätekniikka Mobiiliviestintä B_003 402

Yllä olevan toiminnallinen riippuvuus on kuten mainittiin:

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

Yllä olevan taulukon ehdokasavaimet ovat: {Tämä_tunnus, tämä_kurssi}

Miksi tämä taulukko ei ole BCNF:ssä?

Yllä oleva taulukko ei ole BCNF:ssä, koska kuten näemme, Stu_ID tai Stu_Course eivät ole Super Key. Koska yllä mainitut säännöt kertovat selvästi, että jotta taulukko olisi BCNF:ssä, sen on noudatettava ominaisuutta, että toiminnallisessa riippuvuudessa X−>Y, X:n on oltava superavaimessa ja tässä tämä ominaisuus epäonnistuu, siksi tämä taulukko ei ole BCNF:ssä .

Kuinka tyydyttää BCNF?

Tämän taulukon täyttämiseksi BCNF:ssä meidän on jaettava se lisätaulukoiksi. Tässä on täydellinen menettely, jolla muunnamme tämän taulukon BCNF:ksi. Jaetaan tämä päätaulukko ensin kahteen taulukkoon This_Branch ja Stu_Kurssi Pöytä.

Stu_Branch-taulukko

This_ID This_Branch
101 Tietojenkäsittelytiede ja -tekniikka
102 Elektroniikka ja viestintätekniikka

Tämän taulukon ehdokasavain: This_ID .

mikä on svn checkout

Stu_kurssitaulukko

Stu_Kurssi Branch_Number Stu_Course_No
DBMS B_001 201
Tietokoneverkot B_001 202
VLSI-tekniikka B_003 401
Mobiiliviestintä B_003 402

Tämän taulukon ehdokasavain: Stu_Course .

Stu_ID - Stu_Course_No Table

This_ID Stu_Course_No
101 201
101 202
102 401
102 402

Tämän taulukon ehdokasavain: {Stu_ID, Stu_Course_No}.

Lisätaulukoiksi hajoamisen jälkeen se on nyt BCNF:ssä, kun se läpäisee Super Keyn ehdon, että toiminnallisessa riippuvuudessa X−>Y X on Super avain.

Esimerkki 2

Etsi korkein normaalimuoto relaatiolle R(A, B, C, D, E), jossa FD on asetettu seuraavasti:

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

Selitys:

  • Vaihe 1: Kuten näemme, (AC)+ ={A, C, B, E, D}, mutta mikään sen osajoukoista ei voi määrittää suhteen kaikkia attribuutteja, joten AC on ehdokasavain. A:ta tai C:tä ei voida johtaa mistään muusta suhteen attribuutista, joten ehdokasavain on vain yksi {AC}.
  • Vaihe 2: Ensisijaiset attribuutit ovat attribuutteja, jotka ovat osa ehdokasavainta {A, C} tässä esimerkissä, ja muut ovat ei-alkumääritteitä {B, D, E} tässä esimerkissä.
  • Vaihe 3: Relaatio R on ensimmäisessä normaalimuodossa, koska relaatiotietokantajärjestelmä ei salli moniarvoisia tai yhdistelmäattribuutteja.

Suhde on 2. normaalimuodossa, koska BC->D on 2. normaalimuodossa (BC ei ole ehdokasavaimen AC oikea osajoukko) ja AC->BE on toisessa normaalimuodossa (AC on ehdokasavain) ja B->E on 2. normaalimuodossa (B ei ole ehdokasavaimen AC oikea osajoukko).

Suhde on ei 3. normaalimuodossa, koska BC->D:ssä (BC ei ole superavain eikä D ole alkumäärite) ja B->E:ssä (B ei ole superavain eikä E ole alkumäärite), mutta täyttää 3. normaalin , joko FD:n LHS:n tulee olla superavain tai RHS:n on oltava prime-attribuutti. Joten suhteiden korkein normaalimuoto on 2. normaalimuoto.

Huomautus: Ensisijainen attribuutti ei voi olla transitiivisesti riippuvainen BCNF-relaation avaimesta.

Tarkastellaan näitä jonkin suhteen R toiminnallisia riippuvuuksia

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

Oletetaan, että tiedetään, että R:n ainoa ehdokasavain on AB. Huolellinen havainto on tarpeen, jotta voidaan päätellä, että yllä oleva riippuvuus on transitiivinen riippuvuus, koska ensisijainen attribuutti B riippuu transitiivisesti avaimesta AB - C. Nyt ensimmäinen ja kolmas FD ovat BCNF:ssä, koska ne molemmat sisältävät ehdokasavaimen (tai yksinkertaisesti KEY) niiden vasemmalla puolella. Toinen riippuvuus ei kuitenkaan ole BCNF:ssä, mutta on ehdottomasti 3NF:ssä, koska oikealla puolella on prime-attribuutti. Joten R:n korkein normaalimuoto on 3NF, koska kaikki kolme FD:tä täyttävät tarvittavat ehdot ollakseen 3NF:ssä.

Esimerkki 3

Harkitse esimerkiksi relaatiota R(A, B, C)

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

Se ei tyydyttäisi riippuvuutta säilyttävää BCNF:n hajoamista.

Huomautus: Redundanssit ovat joskus edelleen olemassa BCNF-suhteessa, koska niitä ei aina ole mahdollista poistaa kokonaan.

On myös joitain korkeamman asteen normaalimuotoja, kuten 4. normaalimuoto ja 5. normaalimuoto.

Katso lisätietoja 4. ja 5. normaalilomakkeesta .