BCNF ja 3NF

Anonim

BCNF vs. 3NF

Boyce Codd normaalimuoto (tunnetaan myös nimellä BCNF) on normaali muoto - tämä on muoto, joka tarjoaa kriteerejä taulukon heikkouksien määrittämiselle loogisille epäjohdonmukaisuuksille ja poikkeavuuksille. Tätä normaalia lomaketta käytetään tietokannan normalisoinnissa. Se on hieman vahvempi kuin sen edeltäjä, kolmas normaali muoto (tunnetaan myös nimellä 3NF). Taulukko katsotaan olevan BCNF: ssä, jos ja vain jos jokaiselle, jos sen ei-triviaalit funktionaaliset riippuvuudet - joka on raja, joka asetetaan kahden attribuutin joukon suhteen tietokannasta - on superkey (joukko relaatiomuuttujan attribuutteja, jotka olettavat, että kaikissa kyseiseen muuttujiin määritetyissä suhteissa ei ole kahta erillistä riviä, jotka sisältävät samaa arvoa kyseisessä sarjassa määritetyille ominaisuuksille. BCNF olettaa, että jokainen taulukko, joka ei täytä BNCF: lle määritettäviä kriteerejä, on haavoittuvia loogisiin epäjohdonmukaisuuksiin.

3NF on normaali lomake, jota käytetään myös tietokannan normalisoinnissa. Oletetaan, että taulukko on 3NF jos ja vain jos 1) taulukko on toisessa normaalissa muodossa (tai 2NF, joka on ensimmäinen normaali koodi tai 1NF, joka täyttää kriteerit tullakseen 2NF: ksi) ja 2) jokainen taulukon jokainen ei-prime-attribuutti on epäsuorasti riippuvainen jokaisesta taulukon avaimesta (eli se ei ole suoraan riippuvainen jokaisesta avaimesta). On myös toinen 3NF: n positio, jota käytetään myös määrittelemään erot 3NF: n ja BCNF: n välillä.

Tämä lause oli Carlo Zaniolon vuonna 1982. Siinä todetaan, että taulukko on 3NF jos ja vain jos jokaiselle funktionaaliselle riippuvuudelle, jossa X> A, vähintään yksi kolmesta ehdosta pitää olla: joko X -> A, X on superkey, tai A on tärkein ominaisuus (mikä tarkoittaa, että A sisältyy ehdokasavaimeen - tai minimaalinen superkey tähän suhteeseen). Tämä uudempi määritelmä eroaa BCNF: n lauseesta, koska jälkimmäinen malli yksinkertaisesti poistaisi viimeisen ehton. Vaikka se toimii uudemmaksi 3NF-lauseeksi, on olemassa Zaniolen lause. Se toteaa, että X - A on ei-triviaali. Jos tämä on totta, anna A olla keskipäiväinen ominaisuus ja anna myös Y olla R: n avain. Jos tämä pätee, niin Y: sta X: tä. Tämä tarkoittaa, että A ei ole transitoituna Y: lle vain ja jos X 'Y (tai jos X on superkey.

Yhteenveto:

1. BCNF on normaali muoto, jossa jokaisen taulukon ei-triviaalit funktionaaliset riippuvuudet on superkey; 3NF on normaali muoto, jossa taulukko on 2NF ja jokainen ei-prime-attribuutti on epäsuorasti riippuvainen jokaisesta taulukon avaimesta.