- BCNF on 3NF:n edistynyt versio. Se on tiukempi kuin 3NF.
- Taulukko on BCNF:ssä, jos jokainen toiminnallinen riippuvuus X → Y, X on taulukon superavain.
- BCNF:lle taulukon tulee olla 3NF-muodossa, ja jokaiselle FD:lle LHS on superavain.
Esimerkki: Oletetaan, että on olemassa yritys, jossa työntekijät työskentelevät useammalla kuin yhdellä osastolla.
mikä on svn checkout
TYÖNTEKIJÄtaulukko:
EMP_ID | EMP_MAA | EMP_DEPT | DEPT_TYPE | EMP_DEPT_NO |
---|---|---|---|---|
264 | Intia | Suunnittelu | D394 | 283 |
264 | Intia | Testaus | D394 | 300 |
364 | Iso-Britannia | Kaupat | D283 | 232 |
364 | Iso-Britannia | Kehittyy | D283 | 549 |
Yllä olevassa taulukossa toiminnalliset riippuvuudet ovat seuraavat:
EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO}
Ehdokasavain: {EMP-ID, EMP-DEPT}
Taulukko ei ole BCNF:ssä, koska EMP_DEPT tai EMP_ID eivät yksin ole avaimia.
Muuntaaksesi annetun taulukon BCNF:ksi, jaamme sen kolmeen taulukkoon:
EMP_COUNTRY taulukko:
EMP_ID | EMP_MAA |
---|---|
264 | Intia |
264 | Intia |
EMP_DEPT-taulukko:
EMP_DEPT | DEPT_TYPE | EMP_DEPT_NO |
---|---|---|
Suunnittelu | D394 | 283 |
Testaus | D394 | 300 |
Kaupat | D283 | 232 |
Kehittyy | D283 | 549 |
EMP_DEPT_MAPPING-taulukko:
EMP_ID | EMP_DEPT |
---|---|
D394 | 283 |
D394 | 300 |
D283 | 232 |
D283 | 549 |
Toiminnalliset riippuvuudet:
EMP_ID → EMP_COUNTRY EMP_DEPT → {DEPT_TYPE, EMP_DEPT_NO}
Ehdokasavaimet:
Ensimmäiseen pöytään: EMP_ID
Toiselle pöydälle: EMP_DEPT
Kolmannelle pöydälle: {EMP_ID, EMP_DEPT}
Nyt tämä on BCNF:ssä, koska molempien toiminnallisten riippuvuuksien vasen puoli on avain.