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 .