A Boyce–Codd-féle normálforma látszólag a 3NF egy egyszerűbb alakja, de valójában erősebb, mint a 3NF. Azaz minden BCNF-ben lévő reláció egyúttal 3NF-ben is van, ám egy 3NF-ben lévő reláció nem szükségképpen van BCNF-ben. Intuitívan beláthatjuk a szükségességét egy olyan normálformának, ami erősebb a 3NF-nél, ha visszagondolunk a 8.11. (a) ábra PARCELLÁK relációsémájára a maga 4 funkcionális függésével. Tételezzük föl, hogy parcellák ezrei szerepelnek a relációban, de mindössze csak két megyéből: Baranyából és Csongrádból. Tételezzük föl még továbbá azt is, hogy a parcellaméretek Baranyában csak 0,5, 0,6, 0,7, 0,8, 0,9 és 1,0 hektárosak, míg Csongrádban kizárólag 1,1, 1,2, …, 1,9 és 2,0 hektárosak. Egy ilyen helyzetben felvehetnénk egy újabb funkcionális függést, FD5-öt: Terület → Megye. Ha hozzáadjuk ezt a többi függéshez, a PARCELLÁK1A relációséma még mindig 3NF-ben marad, mert a Megye elsődleges attribútum.
Egy parcella területe, amely meghatározza a megyét, ahogyan azt az FD5 leírja, reprezentálható egy 16 rekordot tartalmazó különálló R(Terület, Megye) relációval, mivel csak 16 lehetséges Terület érték létezik. Ez a reprezentáció lecsökkenti a PARCELLÁK1A rekordjainak ezreiben ismétlődő azonos információk redundanciáját. A BCNF egy erősebb normálforma, amely nem engedi meg a PARCELLÁK1A-t, hanem arra késztet, hogy felbontsuk azt.
Definíció. Egy R relációséma Boyce–Codd-féle normálformában (BCNF-ben) van, ha valahányszor egy X → A nemtriviális funkcionális függés fennáll R-ben, akkor X egy szuperkulcsa R-nek.
A BCNF formális definíciója alig különbözik a 3NF definíciójától. Ez egyetlen különbség a BCNF és a 3NF definíciói között az, hogy a 3NF (b) feltétele, amely megengedi, hogy A elsődleges legyen, hiányzik a BCNF-ből. A példánkban FD5 megsérti a BCNF-et a PARCELLÁK1A-ban, mert a Terület nem szuperkulcsa a PARCELLÁK1A-nak. Figyeljük meg, hogy az FD5 kielégíti a 3NF-et a PARCELLÁK1A-ban, mert a Megye elsődleges attribútum ((b) feltétel), de ez a feltétel nem szerepel a BCNF definíciójában. A PARCELLÁK1A-t felbonthatjuk a 8.12. ábrán bemutatott két BCNF-relációra, PARCELLÁK1AX-re és PARCELLÁK1AY-ra. Ez a felbontás elveszíti az FD2 funkcionális függést, mert ennek a függésnek az attribútumai a felbontást követően már nem szerepelnek együtt ugyanazon relációban.
8.12. ábra - Boyce–Codd-féle normálforma. (a) A PARCELLÁK1A séma BCNF normalizálásakor az FD2 funkcionális függés eltűnik a felbontásból. (b) Egy sematikus reláció funkcionális függésekkel; 3NF-ben van, de nincs BCNF-ben.

A gyakorlatban a legtöbb relációséma, amely 3NF-ben van, egyúttal BCNF-ben is van. Csak ha X → A úgy áll fenn egy R relációsémában, hogy X nem szuperkulcs és A elsődleges attribútum, akkor lesz R 3NF-ben úgy, hogy nem lesz BCNF-ben. A 8.12. (b) ábrán bemutatott R relációséma illusztrálja egy ilyen relációnak az általános esetét. Ideális esetben a relációsadatbázis-tervnek arra kellene törekednie, hogy elérje a BCNF-et vagy a 3NF-et minden relációséma esetén. A csak 1NF vagy 2NF normalizálási állapot elérését nem tekintjük kielégítőnek, mivel ezek csak köztes lépések a 3NF és BCNF felé.
Másik példaként tekintsük a 8.13. ábrát, amely a TANÍT relációt mutatja az alábbi függésekkel:
| FD1: { Hallgató, Kurzus } → Gyakvezér |
| FD2:[35] Gyakvezér → Kurzus |
Vegyük észre, hogy a { Hallgató, Kurzus } kulcsjelölt a relációban, és hogy a bemutatott függések a 8.12. (b) ábrán látható mintát követik, ahol A a Hallgató, B a Kurzus és C a Gyakvezér. A reláció ezért 3NF-ben van, de nincs BCNF-ben. Ennek a relációsémának a felbontása két sémára nem egyértelmű, mivel az alábbi három lehetséges pár bármelyikére bontható:
{ Hallgató, Gyakvezér } → { Hallgató, Kurzus }
{ Kurzus, Gyakvezér } → { Kurzus, Hallgató }
{ Gyakvezér, Kurzus } → { Gyakvezér, Hallgató }
Mindhárom felbontás hatására megszűnik az FD1 funkcionális függés. A felírtak közül a leginkább megfelelő felbontás a harmadik lesz, mert az nem állít elő álrekordokat a két reláció összekapcsolása során.
A 9.1.4. alfejezetben az NJB tulajdonságnál leírunk egy tesztet a dekompozíciók nemadditív (veszteségmentes) voltának eldöntésére. Általában egy nem BCNF-ben lévő relációt úgy célszerű szétbontani, hogy megfeleljen ennek a tulajdonságnak, míg esetleg lemondunk arról, hogy a szétbontott relációkban az összes funkcionális függést megőrizzük, akárcsak ebben a példában. Ezt csinálja a 3. algoritmus, s azt használhatjuk, hogy megkapjuk a fenti TANÍT séma harmadik dekompozícióját, amely az alábbi két BCNF relációt eredményezi:
| (Gyakvezér, Kurzus) és (Gyakvezér, Hallgató) |
Vegyük észre, hogy ha a TANÍT relációban a { Gyakvezér, Hallgató } párt jelöljük ki elsődleges kulcsnak, akkor a Gyakvezér → Kurzus funkcionális függés részleges (nem teljes funkcionális) függést okoz, hiszen a Kurzus az összetett kulcs egy részétől függ. Ezt a funkcionális függést eltávolíthatjuk a 2NF-re alakítás közben, s így is pontosan ugyanazt a két relációt kapjuk eredményül. Ez az eset egy példa arra, amikor végül ugyanahhoz a BCNF tervhez jutunk különböző normalizációs utakon keresztül.
[35] Ez a függés azt jelenti, hogy az alkalmazásunkban egy megszorítás az is, hogy minden gyakorlatvezető csak egy kurzust vezet.