- A BCNF a 3NF továbbfejlesztett változata. Szigorúbb, mint a 3NF.
- Egy tábla akkor van BCNF-ben, ha minden X → Y, X funkcionális függőség a tábla szuperkulcsa.
- A BCNF esetében a táblázatnak 3NF-ben kell lennie, és minden FD esetében az LHS szuperkulcs.
Példa: Tegyük fel, hogy van olyan cég, ahol az alkalmazottak egynél több osztályon dolgoznak.
jelentkezzen ki a google fiókból androidon
ALKALMAZOTT táblázat:
| EMP_ID | EMP_COUNTRY | EMP_DEPT | DEPT_TYPE | EMP_DEPT_NO |
|---|---|---|---|---|
| 264 | India | Tervezés | D394 | 283 |
| 264 | India | Tesztelés | D394 | 300 |
| 364 | Egyesült Királyság | Üzletek | D283 | 232 |
| 364 | Egyesült Királyság | Fejlesztés | D283 | 549 |
A fenti táblázatban a funkcionális függőségek a következők:
EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} Jelölt kulcs: {EMP-ID, EMP-DEPT}
A tábla nincs BCNF-ben, mert sem az EMP_DEPT, sem az EMP_ID önmagában nem kulcs.
Az adott tábla BCNF-re való konvertálásához három táblára bontjuk:
EMP_COUNTRY táblázat:
| EMP_ID | EMP_COUNTRY |
|---|---|
| 264 | India |
| 264 | India |
EMP_DEPT táblázat:
| EMP_DEPT | DEPT_TYPE | EMP_DEPT_NO |
|---|---|---|
| Tervezés | D394 | 283 |
| Tesztelés | D394 | 300 |
| Üzletek | D283 | 232 |
| Fejlesztés | D283 | 549 |
EMP_DEPT_MAPPING táblázat:
| EMP_ID | EMP_DEPT |
|---|---|
| D394 | 283 |
| D394 | 300 |
| D283 | 232 |
| D283 | 549 |
Funkcionális függőségek:
EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO} Jelölt kulcsok:
Az első táblázathoz: EMP_ID
A második táblázathoz: EMP_DEPT
A harmadik táblázathoz: {EMP_ID, EMP_DEPT}
Nos, ez a BCNF-ben van, mert mindkét funkcionális függőség bal oldali része kulcs.