Forskel mellem 3NF og BCNF

Forfatter: Laura McKinney
Oprettelsesdato: 1 April 2021
Opdateringsdato: 17 Kan 2024
Anonim
Forskel mellem 3NF og BCNF - Teknologi
Forskel mellem 3NF og BCNF - Teknologi

Indhold


Normalisering er en metode, der fjerner redundans fra en relation og derved minimere indsættelse, sletning og opdatering af anomalier, der forringer databasernes ydelse. I denne artikel vil vi differentiere mellem to højere normale former, dvs. 3NF og BCNF. Den grundlæggende forskel mellem 3NF og BCNF er den 3NF eliminerer den transitive afhængighed fra en relation og en tabel, der skal være i BCNF, skal den trivielle funktionelle afhængighed X-> Y i en relation kun indeholde, hvis X er supernøglen.

Lad os diskutere forskellene mellem 3NF og BCNF ved hjælp af sammenligningstabellen vist nedenfor.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligning3NFBCNF
KonceptIngen ikke-primær attribut skal være midlertidigt afhængig af kandidatnøglen.For enhver triviel afhængighed i en relation R siger X-> Y, bør X være en super nøgle til relation R.
Afhængighed3NF kan opnås uden at ofre alle afhængigheder.Afhængigheder bevares muligvis ikke i BCNF.
nedbrydningTab uden nedbrydning kan opnås i 3NF.Tab uden nedbrydning er svært at opnå i BCNF.


Definition af 3NF

En tabel eller en relation anses for at være i Tredje normal form kun hvis tabellen allerede er i 2NF og der er ingen non-prime attribut transitivt afhængig af kandidatnøgle af en relation.

Så før jeg behandler processen med at normalisere en tabel i 3NF, så lad mig diskutere kandidatnøglen. EN Kandidatnøgle er minimal supernøgle dvs. en supernøgle med minimumsattributter, der kan definere alle attributter i en relation. Så i processen med at normalisere din tabel genkender du først kandidatnøglen til en given relation. Attributterne, der er en del af kandidatnøglen, er prime attributter, og de attributter, der ikke er en del af kandidatnøglen, er ikke-prime attributter.

Hvis vi nu har en relation R (A, B, C, D, E, F), og vi har følgende funktionsafhængigheder for relationen R.


Når vi observerer funktionelle afhængigheder, kan vi konkludere med det AB er en kandidatnøgle til relation R, fordi vi ved hjælp af nøgle AB kan søge i værdien for alle attributter i en relation R. Så A, B bliver til prime attributter når de sammen udgør kandidatnøglen. Attributterne C, D, E, F bliver til non-prime attributter, fordi ingen af ​​dem er en del af en kandidatnøgle.

Tabellen er i 2NF, da ingen ikke-primær attribut delvis er afhængig af kandidatnøglen

Men en transitiv afhængighed observeres blandt de leverede funktionelle afhængigheder som attribut F er ikke direkte afhængig af kandidatnøglen AB. I stedet for attribut F er transitivt afhængig af kandidatnøglen AB via attribut D. Till attribut D har en vis værdi, vi kan nå til attributværdien for F, fra kandidatnøglen AB. Hvis værdien af ​​attribut D er NULL, kan vi aldrig finde / søge værdien af ​​F ved hjælp af kandidatnøgle AB. Dette er grunden til, at 3NF kræver at fjerne den transitive afhængighed fra relationer.

Så for at fjerne denne transitive afhængighed, er vi nødt til at opdele forholdet R. Mens vi deler en relation, placer altid kandidatnøglen og alle de attributter, der afhænger af den kandidatnøgle, i den første relation. I den næste opdelte relation placerer vi den attribut, der forårsager transitiv afhængighed, og også de attributter, der afhænger af den i den anden relation.

Nu er tabellerne R1 og R2 i 3NF, da de ikke har nogen delvise og transitive afhængigheder tilbage. relation R1 (A, B, C, D, E) har en kandidatnøgle AB der henviser til, at forhold R2 (D, E) har D som dens kandidatnøgle.

Definition af BCNF

BCNF anses for at være stærkere end 3NF. Forholdet R, der skal være i BCNF, skal være i 3NF. Og uanset hvor ikke-triviel funktionel afhængighed A -> B holder i forhold R, derefter EN skal være en superkey af relation R. Som vi ved, er Super-nøgle en nøgle, der har en enkelt attribut eller sæt af attributter, der bestemmer, hele attributterne for en relation.

Lad os nu gå videre til et eksempel for at forstå BCNF på en bedre måde. Lad os antage, at vi har en relation R (A, B, C, D, F), som har følgende funktionelle afhængigheder.

Ved at observere forholdet R kan vi sige det EN og BF er kandidatnøgler af relation R, fordi de alene kan søge værdien for alle attributter i relationen R. Så A, B, F er prime egenskaber hvorimod, C og D er non-prime egenskaber. Der observeres ingen transitiv afhængighed i de ovenfor beskrevne funktionelle afhængigheder. Derfor er tabellen R i 3NF.

Men en funktionel afhængighed, dvs. D -> F overtræder definitionen af ​​BCNF, ifølge hvilken, hvis D -> F findes, så D skulle være super nøgle hvilket ikke er tilfældet her. Så vi vil opdele forholdet R.

Nu er tabellerne R1 og R2 i BCNF. relation R1 har to kandidat nøgler EN og B, den trivielle funktionelle afhængighed af R1, dvs. A-> BCD og B -> ACD, hold for BCNF, da A og B er supertasterne til relation. relation R2 har D som dens kandidatnøgle og den funktionelle afhængighed D -> F gælder også for BCNF, da D er en Supernøgle.

  1. 3NF oplyser, at ingen ikke-primær attribut skal være midlertidigt afhængig af kandidatnøglen til forholdet. På den anden side siger BCNF, at hvis der findes en triviel funktionel afhængighed X -> Y for en relation; så skal X være en super nøgle.
  2. 3NF kan opnås uden at ofre relationens afhængighed. Imidlertid bevares afhængighed muligvis ikke under opnåelse af BCNF.
  3. 3NF kan opnås uden at miste nogen oplysninger fra den gamle tabel, mens vi kan miste nogle oplysninger fra den gamle tabel, mens vi får BCNF.

Konklusion:

BCNF er meget restriktiv end 3NF, som hjælper med at normalisere tabellen mere. Forholdet i 3NF har mindst redundans tilbage, som fjernes yderligere af BCNF.