Ajánlott, 2024

Szerkesztő Választása

Különbség a 3NF és a BCNF között

A normalizálás olyan módszer, amely eltávolítja a redundanciát a kapcsolatból, ezáltal minimalizálva az adatbázisok teljesítményét rontó, beillesztési, törlési és frissítési anomáliákat. Ebben a cikkben két magasabb normál formát különböztetünk meg, azaz 3NF és BCNF. Az alapvető különbség a 3NF és a BCNF között az, hogy a 3NF kiküszöböli a kapcsolat és a táblázat közötti transzitív függőséget a BCNF-ben, az X-> Y triviális függőségnek csak akkor kell tartania, ha az X a szuper kulcs.

Beszéljük meg a különbségeket a 3NF és a BCNF között az alábbi táblázat segítségével.

Összehasonlító táblázat

Az összehasonlítás alapja3NFBCNF
KoncepcióA nem-prím attribútumnak átmenetileg nem kell függenie a jelölt kulcsától.Bármilyen triviális függőség esetén az R mondat szerint X-> Y, X az R viszony szuper kulcsa.
FüggőségA 3NF az összes függőség feláldozása nélkül nyerhető.A függőségeket nem lehet megőrizni a BCNF-ben.
bomlásA veszteségmentes bomlás 3NF-ben érhető el.A BCNF-ben nehéz elérni a veszteségmentes bomlást.

A 3NF meghatározása

A táblázat vagy a kapcsolat csak akkor tekinthető Harmadik Normál Formának, ha a táblázat már 2NF-ben van, és nincs olyan, prím attribútum, amely átmenetileg függ a kapcsolat jelöltkulcsától.

Tehát, mielőtt a 3NF-es táblázat normalizálásának folyamatát kezelném, hadd beszéljek meg a jelölt kulcsáról. A jelölt kulcsa minimális szuper kulcs, azaz egy szuper kulcs minimális attribútumokkal, amelyek meghatározhatják a kapcsolat minden attribútumát. Tehát a táblázat normalizálásának folyamatában először felismeri az adott kapcsolat jelöltkulcsát. A jelöltkulcs részét képező attribútumok az elsődleges attribútumok, és a nem kulcsfontosságú attribútumok a nem elsődleges attribútumok .

Most, ha egy R (A, B, C, D, E, F) reláció, és a következő függvényfüggőségek vannak az R. viszony tekintetében.

A funkcionális függőségek figyelembevételével megállapíthatjuk, hogy az AB az R reláció jelölt kulcsa, mivel az AB kulcs használatával R. az R attribútum értékét kereshetjük. A C, D, E, F attribútumok nem elsődleges attribútumok, mert egyikük sem a jelölt kulcs része.

A táblázat 2NF-ben van, mivel a nem elsődleges attribútum részben függ a jelöltkulcstól

De a funkcionális függőségek között egy tranzitív függőség figyelhető meg, mivel az F attribútum nem függ közvetlenül az AB jelölt kulcstól . Ehelyett az F attribútum D attribútumon keresztül átmenetileg függ az AB jelöltkulcstól. A D attribútumnak van bizonyos értéke, amit elérhetünk ahhoz, hogy az F értéket az AB jelölt kulcsból adjuk meg. Abban az esetben, ha a D attribútum értéke NULL, akkor az AB jelölt kulcs segítségével soha nem találjuk meg az F értékét. Ez az oka annak, hogy a 3NF kéri, hogy távolítsa el a kapcsolatoktól való transzitív függőséget.

Tehát ahhoz, hogy eltávolítsuk ezt a transzitív függőséget, meg kell osztanunk az R. relációt. A kapcsolat megosztása mindig helyezze el a jelölt kulcsot, és az összes attribútumot, amely az adott jelszó kulcsától függ az első kapcsolatban. A következő megosztott viszonyban elhelyezzük a transzitív függőséget okozó attribútumot, valamint az attól függő attribútumokat is, amelyek a második összefüggésben vannak.

Most az R1 és R2 táblák 3NF-ben vannak, mivel nincs részleges és tranzitív függősége. Az R1 (A, B, C, D, E) relációnak van egy AB jelölt kulcsa, míg az R2 (D, E) relációnak D- je van jelöltkulcsként .

A BCNF meghatározása

A BCNF a 3NF-nél erősebb. A BCNF-ben lévő R relációnak 3NF-ben kell lennie. És ahol az A -> B nem-triviális függőség az R relációban van, akkor az A kapcsolónak az R viszonyának szuperkulcsa kell lennie. Mint tudjuk, a Super kulcs olyan kulcs, amely egyetlen attribútummal vagy attribútumkészlettel rendelkezik, amely meghatározza az egészet a kapcsolat attribútumai.

Most lépjünk tovább egy példára, hogy jobban megértsük a BCNF-et. Tegyük fel, feltételezzük, hogy van egy R (A, B, C, D, F) reláció, amely a következő funkcionális függőségekkel rendelkezik.

Az R viszony megfigyelésével azt mondhatjuk, hogy A és BF az R viszony jelölt kulcsa, mert egyedül az R. attribútumban az R értékben kereshet. Tehát A, B, F a attribútumok, míg a C és D nem elsődleges tulajdonságok. A fentiekben bemutatott funkcionális függőségekben nincs megfigyelhető transzitív függőség. Ezért az R táblázat 3NF-ben van.

De egy funkcionális függőség, azaz a D -> F megsérti a BCNF definícióját, amely szerint, ha D -> F létezik, akkor D a szuper kulcs, ami itt nem így van. Így megosztjuk az R. viszonyt.

Most az R1 nd R2 táblák BCNF-ben vannak. Az R1 relációnak két A és B kulcsjelzője van, az R1 triviális funkcionális függősége, azaz A-> BCD és B -> ACD, tartsa a BCNF-t, mivel A és B a szuper kulcsok a kapcsolathoz. Az R2 relációnak D- je van, és a D -> F funkcionális függőség a BCNF számára is érvényes, mivel D egy Super Key.

A legfontosabb különbségek a 3NF és a BCNF között

  1. A 3NF kimondja, hogy egyetlen nem-prím attribútumnak sem kell átmenetileg függnie a kapcsolat jelölt kulcsaitól. Másrészt a BCNF azt állítja, hogy ha egy triviális X -> Y függőség létezik egy kapcsolatra; akkor X-nek szuper kulcsnak kell lennie.
  2. A 3NF a kapcsolat függőségének feláldozása nélkül nyerhető. A függőség azonban nem tartható fenn a BCNF megszerzése közben.
  3. A 3NF-t anélkül lehet elérni, hogy elveszítenénk a régi táblázatból származó információt, míg a BCNF megszerzése közben elveszíthetünk néhány információt a régi táblázatból.

Következtetés:

A BCNF sokkal korlátozóbb, mint a 3NF, ami segít a táblázat normalizálásában. A 3NF-rel való kapcsolat minimális redundanciája maradt, amit a BCNF tovább távolít el.

Top