logo

Boyce Codd normalni oblik (BCNF)

  • BCNF je napredna verzija 3NF-a. Stroži je od 3NF.
  • Tablica je u BCNF-u ako je svaka funkcionalna ovisnost X → Y, X superključ tablice.
  • Za BCNF, tablica bi trebala biti u 3NF, a za svaki FD, LHS je super ključ.

Primjer: Pretpostavimo da postoji tvrtka u kojoj zaposlenici rade u više od jednog odjela.

pretvaranje niza u java

Tablica ZAPOSLENIKA:

EMP_ID EMP_COUNTRY EMP_DEPT DEPT_TYPE EMP_DEPT_BR
264 Indija Projektiranje D394 283
264 Indija Testiranje D394 300
364 UK Trgovine D283 232
364 UK Razvijanje D283 549

U gornjoj tablici funkcionalne ovisnosti su sljedeće:

 EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} 

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

Tablica nije u BCNF-u jer niti EMP_DEPT niti EMP_ID sami nisu ključevi.

Da bismo danu tablicu pretvorili u BCNF, rastavljamo je na tri tablice:

Tablica EMP_COUNTRY:

EMP_ID EMP_COUNTRY
264 Indija
264 Indija

Tablica EMP_DEPT:

EMP_DEPT DEPT_TYPE EMP_DEPT_BR
Projektiranje D394 283
Testiranje D394 300
Trgovine D283 232
Razvijanje D283 549

Tablica EMP_DEPT_MAPPING:

EMP_ID EMP_DEPT
D394 283
D394 300
D283 232
D283 549

Funkcionalne ovisnosti:

 EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} 

Ključevi kandidata:

Za prvu tablicu: EMP_ID
Za drugu tablicu: EMP_DEPT
Za treću tablicu: {EMP_ID, EMP_DEPT}

Ovo je u BCNF-u jer je lijevi dio obje funkcionalne ovisnosti ključ.