Preporučeno, 2024

Izbor Urednika

Razlika između 3NF i BCNF

Normalizacija je metoda koja uklanja redundanciju iz odnosa, čime se minimiziraju anomalije umetanja, brisanja i ažuriranja koje degradiraju performanse baza podataka. U ovom članku ćemo razlikovati dva viša normalna oblika tj. 3NF i BCNF. Osnovna razlika između 3NF i BCNF je u tome što 3NF eliminira prijelaznu ovisnost od odnosa i tablicu da bude u BCNF-u, trivijalna funkcionalna ovisnost X-> Y u relaciji mora imati, samo ako je X super ključ.

Razgovarajmo o razlikama između 3NF i BCNF uz pomoć usporednog dijagrama prikazanog u nastavku.

Tablica usporedbe

Osnova za usporedbu3NFBCNF
KonceptNijedan atribut koji nije glavni ne mora biti tranzitivno ovisan o ključu kandidata.Za bilo koju trivijalnu ovisnost u odnosu R, X-> Y, X bi trebao biti super ključ relacije R.
zavisnost3NF se može dobiti bez žrtvovanja svih ovisnosti.Ovisnosti se ne mogu sačuvati u BCNF-u.
RaspadRaspadanje bez gubitaka može se postići u 3NF.U BCNF-u teško je postići raspadanje bez gubitaka.

Definicija 3NF

Smatra se da je tablica ili relacija u trećem normalnom obrascu samo ako je tablica već u 2NF-u i ne postoji ne-primarni atribut koji tranzitivno ovisi o ključu kandidatu relacije.

Dakle, prije nego se pozabavim procesom normalizacije tablice u 3NF-u, dopustite mi da razgovaram o ključu kandidatu. Ključ kandidata je minimalni super ključ, tj. Super ključ s minimalnim atributima koji mogu definirati sve atribute relacije. Dakle, u procesu normalizacije vaše tablice, prvo, prepoznajete ključ kandidata datog odnosa. Atributi koji su dio ključa kandidata su primarni atributi, a atributi koji nisu dio kandidatskog ključa su ne-primarni atributi .

Sada ako smo odnos R (A, B, C, D, E, F) i imamo sljedeće ovisnosti funkcije za odnos R.

Promatrajući funkcionalne ovisnosti, možemo zaključiti da je AB kandidatni ključ za odnos R jer se pomoću ključa AB može tražiti vrijednost za sve atribute u relaciji R. Dakle, A, B postaju glavni atributi budući da zajedno čine kandidatni ključ. Atributi C, D, E, F postaju ne-primarni atributi jer niti jedan od njih nije dio ključa kandidata.

Tablica je u 2NF-u, jer nijedan ne-primarni atribut djelomično ovisi o kandidatskom ključu

Međutim, tranzitivna ovisnost se promatra među ponuđenim funkcionalnim ovisnostima, budući da atribut F nije izravno ovisan o kandidatu AB . Umjesto toga, atribut F je tranzitivno ovisan o kandidatskoj tipki AB preko atributa D. Dok atribut D ima neku vrijednost koju možemo doseći do atributne vrijednosti od F, od ključa kandidata AB. U slučaju da je vrijednost atributa D NULL, nikada ne možemo pronaći / pretražiti vrijednost F pomoću ključa kandidata AB. To je razlog zašto 3NF zahtijeva uklanjanje prijelazne ovisnosti od odnosa.

Dakle, da bismo uklonili ovu tranzitivnu ovisnost, trebamo podijeliti odnos R. Dok dijelimo relaciju uvijek postavimo ključ kandidata i sve atribute koji ovise o ključu kandidatu u prvom odnosu. U sljedećem podijeljenom odnosu postavit ćemo atribut koji uzrokuje tranzitivnu ovisnost i atribute koji ovise o njemu u drugom odnosu.

Sada su tablice R1 i R2 u 3NF-u jer nema parcijalnih i tranzitivnih zavisnosti. Odnos R1 (A, B, C, D, E) ima kandidatnu tipku AB, dok relacija R2 (D, E) ima D kao svoj kandidatski ključ.

Definicija BCNF-a

BCNF se smatra jačim od 3NF. Odnos R u BCNF mora biti u 3NF . I gdje god ne-trivijalna funkcionalna ovisnost A -> B vrijedi za relaciju R, tada A mora biti super ključ odnosa R. Kao što znamo, Super ključ je ključ koji ima jedan atribut ili skup atributa koji određuje cijeli atributi odnosa.

Prijeđimo sada na primjer kako bismo bolje razumjeli BCNF. Pretpostavimo da imamo odnos R (A, B, C, D, F) koji ima sljedeće funkcionalne ovisnosti.

Promatrajući relaciju R, možemo reći da su A i BF kandidatni ključevi relacije R, jer oni sami mogu pretraživati ​​vrijednost za sve atribute u relaciji R. Dakle, A, B, F su primarni atributi dok, C i D su atributi koji nisu glavni . U gore navedenoj funkcionalnoj ovisnosti nije opažena tranzitivna ovisnost. Dakle, tablica R je u 3NF.

No, jedna funkcionalna ovisnost, tj. D -> F, krši definiciju BCNF-a, prema kojoj, ako D -> F postoji, onda D treba biti super ključ što ovdje nije slučaj. Tako ćemo podijeliti odnos R.

Sada su tablice R1 nd R2 u BCNF-u. Odnos R1 ima dva kandidatska ključa A i B, trivijalna funkcionalna ovisnost R1, tj. A-> BCD i B -> ACD, držite za BCNF kao A i B su super ključevi za odnos. Odnos R2 ima svoj kandidatni ključ, a funkcionalna ovisnost D -> F vrijedi i za BCNF jer je D super ključ.

Ključne razlike između 3NF i BCNF

  1. 3NF navodi da nijedna ne-primarna atributa ne mora biti tranzitivno ovisna o kandidatskom ključu odnosa. S druge strane, BCNF navodi da ako trivijalna funkcionalna ovisnost X -> Y postoji za odnos; tada X mora biti super ključ.
  2. 3NF se može dobiti bez žrtvovanja ovisnosti odnosa. Međutim, ovisnost možda neće biti sačuvana dok se dobiva BCNF.
  3. 3NF se može postići bez gubitka informacija iz stare tablice, dok dok dobivamo BCNF možemo izgubiti neke informacije iz stare tablice.

Zaključak:

BCNF je mnogo restriktivniji od 3NF koji pomaže u normalizaciji tablice. Odnos u 3NF ima minimalnu preostalu zalihost koja se dalje uklanja BCNF-om.

Top