
Keskustelkaa eroista 3NF: n ja BCNF: n välillä alla olevan vertailukaavion avulla.
Vertailukaavio
Vertailun perusteet | 3NF | BCNF |
---|---|---|
Konsepti | Mitään ei-prime-attribuuttia ei saa olla riippuvainen ehdokkaan avaimesta. | Mitä tahansa triviaalista riippuvuutta suhteessa R: ssä sanoa X-> Y, X: n tulisi olla suhteellisen R. superavain. |
riippuvuus | 3NF voidaan saada uhraamatta kaikkia riippuvuuksia. | Riippuvuuksia ei ehkä säilytetä BCNF: ssä. |
hajoaminen | Häviötön hajoaminen voidaan saavuttaa 3NF: ssä. | BCNF: ssä on vaikea saavuttaa häviötöntä hajoamista. |
Määritelmä 3NF
Taulukkoa tai suhdetta pidetään kolmannessa normaalimuodossa vain, jos taulukko on jo 2NF: ssä eikä siinä ole mitään ei-prime- attribuuttia, joka on riippuvainen suhteellisesti ehdokasavainta .
Joten, ennen kuin käsittelen taulukon normalisointia 3NF: ssä, haluan keskustella ehdokasavainta. Ehdokasavain on minimaalinen super-avain eli super-avain, jossa on vähimmäisominaisuudet, jotka voivat määrittää kaikki suhteen attribuutit. Niinpä taulukon normalisointiprosessissa tunnistetaan ensin tietyn suhteen ehdokasavain. Ehdokkaan avaimeen kuuluvat attribuutit ovat ensisijaisia ominaisuuksia, ja attribuutit, jotka eivät ole ehdokasavain osa, ovat ei-prime-attribuutteja .
Nyt jos meillä on suhde R (A, B, C, D, E, F) ja meillä on seuraavat funktion riippuvuudet suhteessa R.

Taulukko on 2NF: ssä, koska ei-prime-attribuutti on osittain riippuvainen ehdokasavainta
Mutta funktionaalisten riippuvuuksien joukossa havaitaan transitiivinen riippuvuus, koska attribuutti F ei ole suoraan riippuvainen ehdokasavain AB: sta . Sen sijaan attribuutti F riippuu väliaikaisesti ehdokasavain AB : sta attribuutin D kautta. Tillattuna D on jonkin verran arvoa, jonka voimme saavuttaa F-arvon määrittämiseksi ehdokasavain AB: ltä. Jos attribuutin D arvo on NULL, emme voi koskaan löytää / etsiä F: n arvoa ehdokkaan avaimen AB avulla. Tästä syystä 3NF vaatii poistamaan transitiivisen riippuvuuden suhteista.
Joten tämän transitiivisen riippuvuuden poistamiseksi meidän täytyy jakaa suhde R. Jaettaessa suhteita aina sijoita ehdokasavain ja kaikki attribuutit, jotka riippuvat ensimmäisestä suhteesta kyseisestä ehdokkaan avaimesta. Seuraavassa jaetussa suhteessa asetamme attribuutin, joka aiheuttaa transitiivisen riippuvuuden, ja myös attribuutit, jotka riippuvat siitä toisessa suhteessa.

Määritelmä BCNF
BCNF: ää pidetään vahvemmana kuin 3NF. BCNF: ssä olevan suhteen R on oltava 3NF: ssä . Ja missä tahansa ei-triviaalinen funktionaalinen riippuvuus A -> B pitää suhteessa R, niin A: n on oltava suhteessa suhteeseen R. Kuten tiedämme, Super-avain on avain, jolla on yksi attribuutti tai määritteiden joukko, joka määrittää, koko suhteessa.
Siirrymme nyt esimerkkiin ymmärtämään BCNF: ää paremmin. Oletetaan, että meillä on suhde R (A, B, C, D, F), joilla on seuraavat toiminnalliset riippuvuudet.

Mutta yksi funktionaalinen riippuvuus eli D -> F rikkoo BCNF: n määritelmää, jonka mukaan, jos D -> F on olemassa, D: n tulisi olla super-avain, joka ei ole tässä tapauksessa. Joten jaamme suhteen R.

Tärkeimmät erot 3NF: n ja BCNF: n välillä
- 3NF sanoo, että mikään ei-prime-ominaisuus ei saa olla riippuvainen suhteellisesti ehdokasavusta. Toisaalta BCNF toteaa, että jos suhteelle on olemassa triviaalinen funktionaalinen riippuvuus X -> Y; sitten X: n on oltava super-avain.
- 3NF voidaan saada uhraamatta riippuvuutta suhteessa. Riippuvuutta ei kuitenkaan voida säilyttää BCNF: n saamisen aikana.
- 3NF voidaan saavuttaa menettämättä mitään tietoja vanhalta pöydältä, kun taas BCNF: n saamisen aikana saatamme menettää joitakin tietoja vanhasta taulukosta.
johtopäätös:
BCNF on paljon rajoittava kuin 3NF, joka auttaa normalisoimaan taulukkoa enemmän. Suhteessa 3NF: ään on pienin redundanssi, joka poistetaan edelleen BCNF: n toimesta.