
Låt oss diskutera skillnaderna mellan 3NF och BCNF med hjälp av jämförelsetabellen som visas nedan.
Jämförelsediagram
Grunder för jämförelse | 3NF | BCNF |
---|---|---|
Begrepp | Ingen icke-prime-attribut måste vara transitivt beroende av kandidatnyckeln. | För något trivialt beroende i ett förhållande R säger X-> Y, X bör vara en supernyckel för relation R. |
Dependency | 3NF kan erhållas utan att offra alla beroenden. | Beroenden kan inte bevaras i BCNF. |
Sönderfall | Lossless sönderdelning kan uppnås i 3NF. | Lossless sönderdelning är svår att uppnå i BCNF. |
Definition av 3NF
En tabell eller ett förhållande anses endast vara i tredje normala formuläret om tabellen redan är i 2NF och det finns ingen attribut som inte är prime, transiterande beroende av kandidatens nyckel i en relation.
Så innan jag tar upp processen att normalisera ett bord i 3NF, låt mig diskutera kandidatnyckeln. En kandidatnyckel är minimal supernyckel, dvs en supernyckel med minsta attribut som kan definiera alla attribut av ett förhållande. Så, när du normaliserar ditt bord förstår du först kandidatnyckeln för ett visst förhållande. Attributen som ingår i kandidatnyckeln är primära attribut och attribut som inte är en del av kandidatnyckeln är icke-primära attribut .
Nu om vi har en relation R (A, B, C, D, E, F) och vi har följande funktionsberoende för relationen R.

Bordet är i 2NF eftersom ingen icke-prime-attribut är delvis beroende av kandidatnyckel
Men ett transitivt beroende observeras bland de funktionella beroenden som tillhandahålls, eftersom attributet F inte är direkt beroende av kandidatnyckel AB . I stället är attribut F beroende av kandidatnyckel AB via attribut D. Till attribut D har något värde som vi kan nå för att ange värdet på F, från kandidatnyckeln AB. Om värdet av attribut D är NULL kan vi aldrig hitta / söka värdet på F med hjälp av kandidatnyckel AB. Detta är anledningen till att 3NF kräver att avlägsna det transitiva beroendet från relationerna.
För att avlägsna detta transitiva beroende måste vi dela upp relationen R. När du delar upp ett förhållande placerar du alltid kandidatnyckeln och alla attribut som beror på den kandidatnyckeln i det första förhållandet. I nästa uppdelade relation kommer vi att placera attributet som orsakar transitivt beroende och även de attribut som beror på det i det andra förhållandet.

Definition av BCNF
BCNF anses vara starkare än 3NF. Relationen R att vara i BCNF måste vara i 3NF . Och varhelst ett icke-trivialt funktionellt beroende A -> B håller i förhållande R, måste A vara en supernyckel av relation R. Som vi vet är Supernyckeln en nyckel som har en enda egenskap eller uppsättning attribut som bestämmer hela attribut av ett förhållande.
Låt oss nu gå vidare till ett exempel för att förstå BCNF på ett bättre sätt. Låt oss anta att vi har en relation R (A, B, C, D, F) som har följande funktionella beroenden.

Men ett funktionellt beroende, dvs D -> F, bryter mot definitionen av BCNF, enligt vilken, om D -> F existerar, bör D vara supernyckeln som inte är fallet här. Så vi delar upp förhållandet R.

Viktiga skillnader mellan 3NF och BCNF
- 3NF säger att ingen icke-prime-attribut måste vara transitivt beroende av förhållandets kandidatnyckel. På andra händer hävdar BCNF att om ett trivialt funktionellt beroende X -> Y existerar för ett förhållande; då måste X vara en supernyckel.
- 3NF kan erhållas utan att offra relationen. Beroende kan emellertid inte bevaras när BCNF erhålls.
- 3NF kan uppnås utan att förlora någon information från den gamla tabellen, medan vi, samtidigt som vi erhåller BCNF, kan tappa lite information från det gamla bordet.
Slutsats:
BCNF är mycket restriktiv än 3NF vilket hjälper till att normalisera tabellen mer. Relationen i 3NF har minsta redundans kvar som vidare avlägsnas av BCNF.