La oss diskutere forskjellene mellom 3NF og BCNF ved hjelp av sammenligningsdiagrammet som er vist nedenfor.
Sammenligningstabel
Grunnlag for sammenligning | 3NF | BCNF |
---|---|---|
Konsept | Ingen ikke-prime-attributt må være midlertidig avhengig av kandidatnøkkelen. | For en hvilken som helst triviell avhengighet i et forhold, si R, at X-> Y, X burde være en supernøkkel for relasjon R. |
avhengighet | 3NF kan fås uten å avskaffe alle avhengigheter. | Avhengigheter kan ikke bevares i BCNF. |
dekomponering | Lossless dekomponering kan oppnås i 3NF. | Lossless dekomponering er vanskelig å oppnå i BCNF. |
Definisjon av 3NF
Et bord eller en relasjon regnes kun for å være i tredje normale formularen hvis tabellen allerede er i 2NF, og det er ikke et ikke-prime- attributt som er transitt avhengig av kandidatnøkkelen til et forhold.
Så, før jeg tar opp prosessen med å normalisere et bord i 3NF, la meg diskutere kandidatnøkkelen. En kandidatnøkkel er minimal supernøkkel, dvs. en supernøkkel med minste attributter som kan definere alle attributter til et forhold. Så, i prosessen med å normalisere bordet ditt, først, gjenkjenner du kandidatnøkkelen til et gitt forhold. Attributtene som er en del av kandidatnøkkelen er primære attributter, og attributter som ikke er del av kandidatnøkkelen, er ikke-primære attributter .
Nå hvis vi har en relasjon R (A, B, C, D, E, F) og vi har følgende funksjonsavhengigheter for forholdet R.
Tabellen er i 2NF fordi ingen ikke-prime-attributt er delvis avhengig av kandidatnøkkel
Men en transitiv avhengighet observeres blant de funksjonelle avhengighetene som tilbys, da attributtet F ikke er direkte avhengig av kandidatnøkkel AB . I stedet er attributt F transitt avhengig av kandidatnøkkel AB via attributt D. Til attributt D har noen verdi vi kan nå for å attributtere verdien av F, fra kandidatnøkkelen AB. Hvis verdien av attributtet D er NULL, kan vi aldri finne / søke verdien av F ved hjelp av kandidatnøkkel AB. Dette er grunnen til at 3NF krever å fjerne den transitive avhengigheten fra relasjonene.
For å fjerne denne transitive avhengigheten, må vi dele forholdet R. Mens du deler et forhold, plasserer du alltid kandidatnøkkelen og alle attributter som er avhengig av kandidatnøkkelen i det første forholdet. I neste delte forhold vil vi plassere attributten som forårsaker transitiv avhengighet og også de attributter som er avhengige av det i det andre forholdet.
Definisjon av BCNF
BCNF anses å være sterkere enn 3NF. Relasjonen R for å være i BCNF må være i 3NF . Og hvor en ikke-triviell funksjonell avhengighet A -> B holder i forhold til R, må A være en supernøkkel av relasjon R. Som vi vet er Super-nøkkel en nøkkel som har et enkelt attributt eller sett av attributter som bestemmer hele attributter av et forhold.
Nå, la oss gå videre til et eksempel for å forstå BCNF på en bedre måte. La oss antar at vi har en relasjon R (A, B, C, D, F) som har følgende funksjonelle avhengigheter.
Men en funksjonell avhengighet, dvs. D -> F, bryter definisjonen av BCNF, ifølge hvilken, hvis D -> F eksisterer, bør D være supernøkkelen, som ikke er tilfelle her. Så vil vi dele forholdet R.
Nøkkelforskjeller mellom 3NF og BCNF
- 3NF sier at ingen ikke-prime-attributt må være transitt avhengig av kandidatnøkkelen til forholdet. På den andre siden sier BCNF at hvis en triviell funksjonell avhengighet X -> Y eksisterer for et forhold; så må X være en supernøkkel.
- 3NF kan oppnås uten å ofre relasjonens avhengighet. Imidlertid kan avhengighet ikke bevares under oppnåelse av BCNF.
- 3NF kan oppnås uten å miste noen informasjon fra det gamle bordet, mens vi kan miste litt informasjon fra det gamle bordet mens vi får BCNF.
Konklusjon:
BCNF er meget restriktiv enn 3NF som bidrar til å normalisere tabellen mer. Forholdet i 3NF har minst mulig redundans som videre fjernes av BCNF.