- BCNF ir 3NF uzlabotā versija. Tas ir stingrāks par 3NF.
- Tabula atrodas BCNF, ja katra funkcionālā atkarība X → Y, X ir tabulas superatslēga.
- BCNF tabulai ir jābūt 3NF formātā, un katram FD LHS ir super atslēga.
Piemērs: Pieņemsim, ka ir uzņēmums, kurā darbinieki strādā vairāk nekā vienā nodaļā.
powershell mazāks par vai vienāds ar
DARBINIEKU tabula:
EMP_ID | EMP_VALSTS | EMP_DEPT | DEPT_TYPE | EMP_DEPT_NO |
---|---|---|---|---|
264 | Indija | Projektēšana | D394 | 283 |
264 | Indija | Testēšana | D394 | 300 |
364 | Apvienotā Karaliste | Veikali | D283 | 232 |
364 | Apvienotā Karaliste | Attīstās | D283 | 549 |
Iepriekš minētajā tabulā funkcionālās atkarības ir šādas:
EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO}
Kandidāta atslēga: {EMP-ID, EMP-DEPT}
Tabula nav BCNF, jo ne EMP_DEPT, ne EMP_ID atsevišķi nav atslēgas.
Lai pārvērstu doto tabulu par BCNF, mēs to sadalām trīs tabulās:
EMP_COUNTRY tabula:
EMP_ID | EMP_VALSTS |
---|---|
264 | Indija |
264 | Indija |
EMP_DEPT tabula:
EMP_DEPT | DEPT_TYPE | EMP_DEPT_NO |
---|---|---|
Projektēšana | D394 | 283 |
Testēšana | D394 | 300 |
Veikali | D283 | 232 |
Attīstās | D283 | 549 |
EMP_DEPT_MAPPING tabula:
EMP_ID | EMP_DEPT |
---|---|
D394 | 283 |
D394 | 300 |
D283 | 232 |
D283 | 549 |
Funkcionālās atkarības:
EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO}
Kandidātu atslēgas:
Pirmajai tabulai: EMP_ID
Otrajai tabulai: EMP_DEPT
Trešajai tabulai: {EMP_ID, EMP_DEPT}
Tagad tas ir BCNF, jo abu funkcionālo atkarību kreisā puse ir atslēga.