logo

Boyce Codd normálna forma (BCNF)

  • BCNF je pokročilá verzia 3NF. Je prísnejšia ako 3NF.
  • Tabuľka je v BCNF, ak každá funkčná závislosť X → Y, X je super kľúč tabuľky.
  • Pre BCNF by tabuľka mala byť v 3NF a pre každý FD je LHS super kľúč.

Príklad: Predpokladajme, že existuje spoločnosť, kde zamestnanci pracujú vo viacerých oddeleniach.

zahŕňajú programovanie c

Tabuľka ZAMESTNANCOV:

EMP_ID EMP_COUNTRY EMP_DEPT DEPT_TYPE EMP_DEPT_NO
264 India Navrhovanie D394 283
264 India Testovanie D394 300
364 UK Obchody D283 232
364 UK Rozvíjanie D283 549

Vo vyššie uvedenej tabuľke sú funkčné závislosti nasledovné:

 EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} 

Kandidátsky kľúč: {EMP-ID, EMP-DEPT}

Tabuľka nie je v BCNF, pretože ani EMP_DEPT ani EMP_ID samotné nie sú kľúčmi.

Aby sme danú tabuľku previedli na BCNF, rozložíme ju na tri tabuľky:

Tabuľka EMP_COUNTRY:

EMP_ID EMP_COUNTRY
264 India
264 India

Tabuľka EMP_DEPT:

EMP_DEPT DEPT_TYPE EMP_DEPT_NO
Navrhovanie D394 283
Testovanie D394 300
Obchody D283 232
Rozvíjanie D283 549

Tabuľka EMP_DEPT_MAPPING:

EMP_ID EMP_DEPT
D394 283
D394 300
D283 232
D283 549

Funkčné závislosti:

 EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} 

Kľúče kandidátov:

Pre prvú tabuľku: EMP_ID
Pre druhú tabuľku: EMP_DEPT
Pre tretiu tabuľku: {EMP_ID, EMP_DEPT}

Teraz je to v BCNF, pretože ľavá časť oboch funkčných závislostí je kľúčom.