logo

Boyce Codd normalna oblika (BCNF)

  • BCNF je napredna različica 3NF. Je strožji od 3NF.
  • Tabela je v BCNF, če je vsaka funkcionalna odvisnost X → Y, X superključ tabele.
  • Za BCNF mora biti tabela v 3NF, za vsak FD pa je LHS super ključ.

primer: Predpostavimo, da obstaja podjetje, kjer zaposleni delajo v več kot enem oddelku.

java veljavni identifikatorji

Tabela DELAVCA:

EMP_ID EMP_DRŽAVA EMP_DEPT DEPT_TYPE EMP_DEPT_NO
264 Indija Oblikovanje D394 283
264 Indija Testiranje D394 300
364 Združeno kraljestvo Trgovine D283 232
364 Združeno kraljestvo Razvijanje D283 549

V zgornji tabeli so funkcionalne odvisnosti naslednje:

 EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} 

Ključ kandidata: {EMP-ID, EMP-DEPT}

Tabela ni v BCNF, ker niti EMP_DEPT niti EMP_ID sama nista ključa.

Da dano tabelo pretvorimo v BCNF, jo razdelimo na tri tabele:

Tabela EMP_COUNTRY:

EMP_ID EMP_DRŽAVA
264 Indija
264 Indija

Tabela EMP_DEPT:

EMP_DEPT DEPT_TYPE EMP_DEPT_NO
Oblikovanje D394 283
Testiranje D394 300
Trgovine D283 232
Razvijanje D283 549

Tabela EMP_DEPT_MAPPING:

EMP_ID EMP_DEPT
D394 283
D394 300
D283 232
D283 549

Funkcionalne odvisnosti:

 EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} 

Ključi kandidatov:

Za prvo tabelo: EMP_ID
Za drugo tabelo: EMP_DEPT
Za tretjo tabelo: {EMP_ID, EMP_DEPT}

Zdaj je to v BCNF, ker je levi del obeh funkcijskih odvisnosti ključ.