3NF vs BCNF
Normalizacija je proces koji se provodi kako bi se redundancije koje su prisutne u podacima u relacijskim bazama podataka svele na minimum. Ovaj proces će uglavnom podijeliti velike tablice u manje tablice s manje redundancija. Ove manje tablice bit će povezane jedna s drugom kroz dobro definirane odnose. U dobro normaliziranoj bazi podataka, svaka izmjena ili modifikacija podataka zahtijevat će modificiranje samo jedne tablice. Treću normalnu formu (3NF) uveo je 1971. Edgar F. Codd, koji je ujedno i izumitelj relacijskog modela i koncepta normalizacije. Boyce-Coddov normalni oblik (BCNF) uveli su 1974. Codd i Raymond F. Boyce.
Što je 3NF?
3NF je treći normalni oblik koji se koristi u normalizaciji relacijske baze podataka. Prema Codd-ovoj definiciji, za tablicu se kaže da je u 3NF, ako i samo ako je ta tablica u drugom normalnom obliku (2NF), a svaki atribut u tablici koji ne pripada ključu kandidata trebao bi izravno ovisiti o svaki ključ kandidata te tablice. Godine 1982. Carlo Zaniolo dao je drugačije izraženu definiciju za 3NF. Tablice koje su u skladu s 3NF općenito ne sadrže anomalije koje se javljaju prilikom umetanja, brisanja ili ažuriranja zapisa u tablici.
Što je BCNF?
BCNF (također poznat kao 3.5NF) još je jedan normalan oblik koji se koristi u normalizaciji relacijske baze podataka. Uveden je kako bi se uhvatile neke anomalije koje 3NF ne rješava. Kaže se da je tablica u BCNF-u ako i samo ako je za svaku od ovisnosti oblika A → B koje nisu trivijalne A super-ključ. Dekomponiranje tablice koja nije u BCNF normalnom obliku ne jamči proizvodnju tablica u BCNF obliku (uz očuvanje ovisnosti koje su bile prisutne u izvornoj tablici).
Koja je razlika između 3NF i BCNF?
I 3NF i BCNF normalni su oblici koji se koriste u relacijskim bazama podataka kako bi se redundancije u tablicama svele na minimum. U tablici koja je u BCNF normalnom obliku, za svaku netrivijalnu funkcionalnu ovisnost oblika A → B, A je super-ključ, dok bi tablica koja je u skladu s 3NF trebala biti u 2NF, a svaka neprosta atribut bi trebao izravno ovisiti o svakom ključu kandidata te tablice. BCNF se smatra jačom normalnom formom od 3NF i razvijen je da uhvati neke od anomalija koje 3NF ne može uhvatiti. Dobivanje tablice koja je u skladu s BCNF obrascem zahtijevat će dekompoziciju tablice koja je u 3NF. Ova će dekompozicija rezultirati dodatnim operacijama spajanja (ili kartezijanskim produktima) prilikom izvršavanja upita. Ovo će povećati vrijeme računanja. S druge strane, tablice koje su u skladu s BCNF-om imale bi manje redundancija od tablica koje su u skladu samo s 3NF. Nadalje, većinu vremena moguće je dobiti tablicu koja je u skladu s 3NF bez ometanja očuvanja ovisnosti i spajanja bez gubitaka. Ali to nije uvijek moguće s BCNF-om.