Razlika između 3NF i BCNF

3NF vs BCNF

Normalizacija je proces koji se provodi kako bi se smanjila redukcija prisutna u podacima u relacijskim bazama podataka. Ovaj će postupak uglavnom podijeliti velike tablice u manje tablice s manje otpuštanja. Ove će se manje tablice međusobno povezati kroz dobro definirane odnose. U dobro normaliziranoj bazi podataka svaka izmjena ili promjena podataka zahtijevat će izmjenu samo jedne tablice. Treći normalan oblik (3NF) uveo je 1971. Edgar F. Codd, koji je također izumitelj relacijskog modela i koncepta normalizacije. Normalan oblik Boyce-Codd (BCNF) uveli su 1974. godine Codd i Raymond F. Boyce.

Što je 3NF?

3NF je treći normalan oblik koji se koristi u normalizaciji relacijske baze podataka. Prema Coddovoj definiciji, za tablicu se kaže da ima 3NF, ako i samo ako je ta tablica u drugom normalnom obliku (2NF), a svaki atribut u tablici koji ne pripada kandidatskom ključu treba izravno ovisiti o svaki kandidatni ključ te tablice. Carlo Zaniolo je 1982. proizveo drugačije izraženu definiciju za 3NF. Tablice koje su u skladu s 3NF obično 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) je još jedan normalan oblik koji se koristi u normalizaciji relacijske baze podataka. Uvedena je kako bi se zabilježile neke anomalije koje 3NF ne rješava. Kaže se da je tablica u BCNF-u, ako i samo ako je za svaku od zavisnosti oblika A → B koji nisu trivijalni, A super-ključ. Dekompozicija tablice koja nije u uobičajenom obliku BCNF ne jamči izradu tablica u obliku BCNF (uz očuvanje ovisnosti koje su bile prisutne u izvornoj tablici).

Koja je razlika između 3NF i BCNF?

I 3NF i BCNF su normalni oblici koji se koriste u relacijskim bazama podataka da bi se umanjilo suvišnost u tablicama. U tablici koja je u uobičajenom obliku BCNF, za svaku ne-trivijalnu funkcionalnu ovisnost oblika A → B, A je super-ključ, dok bi tablica koja u skladu s 3NF trebala biti u 2NF, a svaka osoba bez premijere atribut treba izravno ovisiti o svakom kandidatskom ključu te tablice. BCNF se smatra jačim normalnim oblikom od 3NF i razvijen je tako da uhvati neke od anomalija koje 3NF ne mogu zahvatiti. Za dobivanje tablice koja je u skladu s BCNF obrascem bit će potrebna dekompozicija tablice koja je u 3NF. Ovo razlaganje rezultirat će dodatnim operacijama pridruživanja (ili kartezijanskim proizvodima) prilikom izvršavanja upita. To će povećati vrijeme računanja. S druge strane, tablice koje su u skladu s BCNF-om imale bi manje suvišnih vrijednosti nego tablice koje su u skladu s samo 3NF. Nadalje, većinu vremena moguće je dobiti tablicu koja je u skladu s 3NF bez ometanja očuvanja ovisnosti i pridruživanja bez gubitaka. Ali to nije uvijek moguće s BCNF-om.