Forskjellen mellom 3NF og BCNF

Forfatter: Laura McKinney
Opprettelsesdato: 1 April 2021
Oppdater Dato: 17 Kan 2024
Anonim
Forskjellen mellom 3NF og BCNF - Teknologi
Forskjellen mellom 3NF og BCNF - Teknologi

Innhold


normalisering er en metode som fjerner overflødighet fra et forhold derved minimerer innsetting, sletting og oppdatering avvik som ødelegger 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 det 3NF eliminerer den transitive avhengigheten fra en relasjon og en tabell som skal være i BCNF, den trivielle funksjonelle avhengigheten X-> Y i en relasjon må holde, bare hvis X er supernøkkelen.

La oss diskutere forskjellene mellom 3NF og BCNF ved hjelp av sammenligningstabellen vist nedenfor.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell

Grunnlag for sammenligning3NFBCNF
KonseptIngen ikke-hovedattributter må være forbigående avhengig av kandidatnøkkelen.For enhver triviell avhengighet i en relasjon R si X-> Y, bør X være en super nøkkel for forhold R.
avhengighet3NF kan oppnås uten å ofre alle avhengigheter.Avhengigheter kan ikke bevares i BCNF.
dekomponeringTapløs nedbrytning kan oppnås i 3NF.Tapløs nedbrytning er vanskelig å oppnå i BCNF.


Definisjon av 3NF

En tabell eller et forhold anses å være i Tredje normal form bare hvis tabellen allerede er inne 2NF og det er ingen non-prime Egenskap transitively avhengig av kandidatnøkkel av et forhold.

Så før jeg tar opp prosessen med å normalisere en tabell i 3NF, la meg diskutere kandidatnøkkelen. EN Kandidatnøkkel er minimal supernøkkel dvs. en supernøkkel med minimum attributter som kan definere alle attributter i en relasjon. Så i prosessen med å normalisere tabellen, kjenner du igjen kandidatnøkkelen til et gitt forhold. Attributtene som er en del av kandidatnøkkelen er prime attributter, og attributtene som ikke er en del av kandidatnøkkelen er ikke-prime attributter.

Nå hvis vi har en relasjon R (A, B, C, D, E, F) og vi har følgende funksjonsavhengigheter for forholdet R.


Vi kan konkludere med funksjonelle avhengigheter AB er en kandidatnøkkel for forhold R fordi vi ved å bruke nøkkel AB kan søke i verdien for alle attributtene i en relasjon R. Så A, B blir til prime attributter som de sammen lager kandidatnøkkel. Attributtene C, D, E, F blir til non-prime attributter fordi ingen av dem er delen av en kandidatnøkkel.

Tabellen er i 2NF da ingen ikke-hovedattributt delvis er avhengig av kandidatnøkkelen

Men en transitiv avhengighet blir observert blant funksjonelle avhengigheter som tilbys, som attributtet F er ikke direkte avhengig av kandidatnøkkel AB. I stedet attributt F er transitively avhengig av kandidatnøkkel AB via attributt D. Till attributt D har en viss verdi vi kan nå til attributtverdien til F, fra kandidatnøkkelen AB. I tilfelle verdien av attributt 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.

Så for å fjerne denne transitive avhengigheten, må vi dele forholdet R. Mens du deler et forhold, plasser alltid kandidatnøkkelen, og alle attributtene som er avhengig av den kandidatnøkkelen i den første relasjonen. I neste delte forhold vil vi plassere attributtet som forårsaker transitiv avhengighet og også attributtene som er avhengig av det i den andre relasjonen.

Nå er tabellene R1 og R2 i 3NF da det ikke har noen delvise og transitive avhengigheter igjen. relasjon 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. Forholdet R til å være i BCNF må være i 3NF. Og uansett hvor ikke-triviell funksjonsavhengighet A -> B holder i forhold R, da EN må være en superkey av forhold R. Som vi vet er Supernøkkel en nøkkel som har et enkelt attributt eller sett med attributter som bestemmer, hele attributtene til en relasjon.

La oss nå gå videre til et eksempel for å forstå BCNF på en bedre måte. La oss anta at vi har en relasjon R (A, B, C, D, F), som har følgende funksjonsavhengigheter.

Ved å observere forholdet R, kan vi si det EN og BF er kandidatnøkler av forhold R, fordi de alene kan søke verdien for alle attributter i forholdet R. Så A, B, F er prime attributter mens C og D er non-prime attributter. Ingen transitiv avhengighet blir observert i de funksjonelle avhengighetene som er tilstede ovenfor. Derfor er tabellen R i 3NF.

Men en funksjonell avhengighet, d.v.s. D -> F bryter definisjonen av BCNF, ifølge hvilken, hvis D -> F eksisterer da D skal være supernøkkel som ikke er tilfelle her. Så vi vil dele forholdet R.

Nå er tabellene R1 og R2 i BCNF. relasjon R1 har to kandidat nøkler EN og B, den trivielle funksjonelle avhengigheten av R1, dvs. A-> BCD og B -> ACD, hold for BCNF som A og B er supertastene for forhold. relasjon R2 har D som sin kandidatnøkkel og den funksjonelle avhengigheten D -> F gjelder også for BCNF da D er en Supernøkkel.

  1. 3NF uttaler at ingen ikke-hovedattributt må være forbigående avhengig av kandidatnøkkelen til forholdet. På den annen side uttaler BCNF at hvis en triviell funksjonell avhengighet X -> Y eksisterer for en relasjon; da må X være en supernøkkel.
  2. 3NF kan oppnås uten å ofre forholdets avhengighet. Imidlertid kan det hende at ikke avhengighet bevares mens du oppnår BCNF.
  3. 3NF kan oppnås uten å miste informasjon fra det gamle bordet, mens vi kan miste noe informasjon fra det gamle bordet mens vi innhenter BCNF.

Konklusjon:

BCNF er mye begrensende enn 3NF som hjelper til med å normalisere tabellen mer. Forholdet i 3NF har minimum redundans igjen som fjernes ytterligere av BCNF.