Suositeltava, 2024

Toimituksen Valinta

Ero 3NF: n ja BCNF: n välillä

Normaalisointi on menetelmä, joka poistaa redundanssin suhteesta siten minimoimalla tietokantojen suorituskykyä heikentävät lisäykset, poistot ja päivityspoikkeamat. Tässä artikkelissa erotellaan kaksi korkeampaa normaalia muotoa eli 3NF ja BCNF. Perusero 3NF: n ja BCNF: n välillä on, että 3NF eliminoi transitiivisen riippuvuuden suhteesta ja taulukosta BCNF: ssä, triviaalinen funktionaalinen riippuvuus X-> Y: ssä pitää olla, vain jos X on super-avain.

Keskustelkaa eroista 3NF: n ja BCNF: n välillä alla olevan vertailukaavion avulla.

Vertailukaavio

Vertailun perusteet3NFBCNF
KonseptiMitää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.
riippuvuus3NF voidaan saada uhraamatta kaikkia riippuvuuksia.Riippuvuuksia ei ehkä säilytetä BCNF: ssä.
hajoaminenHä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.

Toiminnallisia riippuvuuksia huomioiden voimme päätellä, että AB on ehdokasavain suhteessa R, koska avain AB: n avulla voimme etsiä arvoa kaikille attribuuteille suhteessa R. Joten A, B muuttuu ensisijaiseksi ominaisuudeksi, kun ne yhdessä tekevät ehdokasavainta. Määritteet C, D, E, F tulevat ei-prime- attribuuteiksi, koska mikään niistä ei ole ehdokasavain osa.

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.

Nyt taulukot R1 ja R2 ovat 3NF: ssä, koska sillä ei ole osittaisia ​​ja transitiivisia riippuvuuksia jäljellä. Suhteessa R1 (A, B, C, D, E) on ehdokasavaimen AB, kun taas suhteessa R2 (D, E) on ehdokasavain D.

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.

Tarkastelemalla suhdetta R, voimme sanoa, että A ja BF ovat suhteen R ehdokasavaimia, koska ne yksin voivat etsiä arvoa kaikille attribuuteille suhteessa R. Joten A, B, F ovat ensisijaisia ominaisuuksia, kun taas C ja D ovat ei-ensisijaisia ominaisuuksia. Edellä esitetyissä toiminnallisissa riippuvuuksissa ei havaita transitiivista riippuvuutta. Näin ollen taulukko R on 3NF: ssä.

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.

Nyt taulukot R1nd R2 ovat BCNF: ssä. Suhteessa R1 on kaksi ehdokasavainta A ja B, R1: n triviaalinen funktionaalinen riippuvuus eli A-> BCD ja B -> ACD, jotka pitävät BCNF: ää A: n ja B: n ollessa super-avaimet suhteessa. Suhteella R2 on D : n ehdokasavain ja funktionaalinen riippuvuus D -> F pitää myös BCNF: lle, koska D on Super Key.

Tärkeimmät erot 3NF: n ja BCNF: n välillä

  1. 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.
  2. 3NF voidaan saada uhraamatta riippuvuutta suhteessa. Riippuvuutta ei kuitenkaan voida säilyttää BCNF: n saamisen aikana.
  3. 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.

Top