Anbefalt, 2024

Redaksjonens

Forskjellen mellom 3NF og BCNF

Normalisering er en metode som fjerner redundans fra et forhold og derved minimerer innsetting, sletting og oppdatering av uregelmessigheter som forringer ytelsen til databaser. I denne artikkelen vil vi skille mellom to høyere normale former, dvs. 3NF og BCNF. Den grunnleggende forskjellen mellom 3NF og BCNF er at 3NF eliminerer den transitive avhengigheten fra et forhold og et bord som skal være i BCNF, den trivielle funksjonelle avhengigheten X-> Y i et forhold må holde, bare hvis X er supernøkkelen.

La oss diskutere forskjellene mellom 3NF og BCNF ved hjelp av sammenligningsdiagrammet som er vist nedenfor.

Sammenligningstabel

Grunnlag for sammenligning3NFBCNF
KonseptIngen 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.
avhengighet3NF kan fås uten å avskaffe alle avhengigheter.Avhengigheter kan ikke bevares i BCNF.
dekomponeringLossless 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.

Ved å observere funksjonelle avhengigheter kan vi konkludere med at AB er en kandidatnøkkel for relasjon R fordi ved bruk av nøkkel AB kan vi søke verdien for all attributtet i et forhold R. Så A, B blir hovedattributter ettersom de sammen utgjør kandidatnøkkel. Attributtene C, D, E, F blir ikke-primære attributter fordi ingen av dem er en del av en kandidatnøkkel.

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.

Nå er tabellene R1 og R2 i 3NF da det ikke er noen partielle og transitive avhengigheter igjen. Forhold R1 (A, B, C, D, E) har en kandidatnøkkel AB, mens forhold R2 (D, E) har D som kandidatnøkkel.

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.

Ved å observere relasjonen R kan vi si at A og BF er kandidatnøkler til relasjon R, fordi de alene kan søke verdien for alle attributter i forholdet R. Så A, B, F er hovedattributtene mens C og D er ikke-primære attributter. Ingen transitiv avhengighet observeres i de funksjonelle avhengighetene som er tilstede ovenfor. Derfor er bordet R i 3NF.

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å er tabellene R1 nd R2 i BCNF. Relasjon R1 har to kandidatnøkler A og B, den trivielle funksjonelle avhengigheten av R1 dvs. A-> BCD og B -> ACD, hold for BCNF som A og B er supernøklene for relasjon. Forhold R2 har D som sin kandidatnøkkel og den funksjonelle avhengigheten D -> F holder også for BCNF da D er en Supernøkkel.

Nøkkelforskjeller mellom 3NF og BCNF

  1. 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.
  2. 3NF kan oppnås uten å ofre relasjonens avhengighet. Imidlertid kan avhengighet ikke bevares under oppnåelse av BCNF.
  3. 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.

Top