3NF proti BCNF
Normalizacija je postopek, ki se izvaja za zmanjšanje odvečnosti, ki so prisotne v podatkih v relacijskih bazah podatkov. Ta postopek bo večinoma razdelil velike tabele na manjše tabele z manj presežki. Te manjše tabele bodo med seboj povezane prek dobro definiranih odnosov. V dobro normalizirani zbirki podatkov bo vsaka sprememba ali modifikacija podatkov zahtevala spreminjanje samo ene tabele. Tretjo normalno obliko (3NF) je leta 1971 predstavil Edgar F. Codd, ki je tudi izumitelj relacijskega modela in koncepta normalizacije. Boyce-Coddovo normalno obliko (BCNF) sta leta 1974 predstavila Codd in Raymond F. Boyce.
Kaj je 3NF?
3NF je tretja običajna oblika, ki se uporablja pri normalizaciji relacijske baze podatkov. V skladu s Coddovo definicijo naj bi bila tabela v 3NF, če in samo če je ta tabela v drugi normalni obliki (2NF) in vsak atribut v tabeli, ki ne pripada ključu kandidata, bi moral biti neposredno odvisen od vsak kandidatni ključ te tabele. Leta 1982 je Carlo Zaniolo pripravil drugače izraženo definicijo za 3NF. Tabele, ki so skladne s 3NF, na splošno ne vsebujejo nepravilnosti, ki se pojavijo pri vstavljanju, brisanju ali posodabljanju zapisov v tabeli.
Kaj je BCNF?
BCNF (znan tudi kot 3.5NF) je še ena običajna oblika, ki se uporablja pri normalizaciji relacijske baze podatkov. Uveden je bil, da bi zajel nekatere anomalije, ki jih 3NF ne obravnava. Za tabelo pravimo, da je v BCNF, če in samo če je za vsako od odvisnosti oblike A → B, ki niso trivialne, A super-ključ. Razčlenitev tabele, ki ni v normalni obliki BCNF, ne zagotavlja izdelave tabel v obliki BCNF (ob ohranjanju odvisnosti, ki so bile prisotne v izvirni tabeli).
Kakšna je razlika med 3NF in BCNF?
Tako 3NF kot BCNF sta običajni obliki, ki se uporabljata v relacijskih bazah podatkov za zmanjšanje odvečnosti v tabelah. V tabeli, ki je v normalni obliki BCNF, je za vsako netrivialno funkcionalno odvisnost oblike A → B A super-ključ, medtem ko bi morala biti tabela, ki je v skladu s 3NF, v 2NF in vsaka nepraključ atribut mora biti neposredno odvisen od vsakega kandidatnega ključa te tabele. BCNF velja za močnejšo normalno obliko od 3NF in je bil razvit za zajemanje nekaterih anomalij, ki jih 3NF ni mogel zajeti. Pridobitev tabele, ki je skladna z obrazcem BCNF, bo zahtevala dekompozicijo tabele, ki je v 3NF. Ta razčlenitev bo povzročila dodatne operacije združevanja (ali kartezične produkte) pri izvajanju poizvedb. To bo povečalo čas računanja. Po drugi strani pa bi imele tabele, ki so v skladu z BCNF, manj odvečnih delov kot tabele, ki so v skladu samo s 3NF. Poleg tega je večino časa mogoče pridobiti tabelo, ki je v skladu s 3NF, ne da bi ovirali ohranjanje odvisnosti in združevanje brez izgub. Vendar to ni vedno mogoče z BCNF.