Razgovarajmo o razlikama između 3NF i BCNF uz pomoć usporednog dijagrama prikazanog u nastavku.
Tablica usporedbe
Osnova za usporedbu | 3NF | BCNF |
---|---|---|
Koncept | Nijedan 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. |
zavisnost | 3NF se može dobiti bez žrtvovanja svih ovisnosti. | Ovisnosti se ne mogu sačuvati u BCNF-u. |
Raspad | Raspadanje 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.
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.
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.
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.
Ključne razlike između 3NF i BCNF
- 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č.
- 3NF se može dobiti bez žrtvovanja ovisnosti odnosa. Međutim, ovisnost možda neće biti sačuvana dok se dobiva BCNF.
- 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.