- 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.