Razlika između 3NF i BCNF
Sadržaj
Normalizacija je metoda koja uklanja redundancija iz relacije, čime se minimizira umetanje, brisanje i ažuriranje anomalija koje pogoršavaju performanse baza podataka. U ovom ćemo članku razlikovati dva viša normalna oblika, tj. 3NF i BCNF. Osnovna razlika između 3NF i BCNF je ta 3NF eliminira tranzitivnu ovisnost iz relacije i tablice koja će biti u BCNF-u, trivijalna funkcionalna ovisnost X-> Y u odnosu mora sadržavati, samo ako je X super-ključ.
Raspravimo o razlikama između 3NF i BCNF uz pomoć tablice za usporedbu prikazanu dolje.
- Usporedni grafikon
- definicija
- Ključne razlike
- Zaključak
Usporedni grafikon
Osnove za usporedbu | 3NF | BCNF |
---|---|---|
Koncept | Nijedan atribut koji nije prazan ne smije ovisiti o tipki kandidata. | Za bilo koju trivijalnu ovisnost u odnosu R recimo X-> Y, X bi trebao biti super ključ relacije R. |
zavisnost | 3NF se može dobiti bez žrtvovanja svih ovisnosti. | Zavisnosti se ne mogu sačuvati u BCNF-u. |
Raspad | Dekompozicija bez gubitaka može se postići u 3NF. | Razgradnju bez gubitaka teško je postići u BCNF-u. |
Definicija 3NF
Tablica ili odnos smatra se u Treći normalan oblik samo ako je stol već unutra 2NF a nema ne-premijera atribut prijelazno ovisno o kandidat ključ odnosa.
Dakle, prije nego što se pozabavim procesom normalizacije tablice u 3NF, dopustite mi da razgovaram o kandidatskom ključu. Ključ kandidata je minimalni super ključ tj. super tipka s minimalnim atributima koja može definirati sve atribute odnosa. Dakle, tijekom normalizacije tablice prvo prepoznajete kandidatski ključ određenog odnosa. Atributi koji su dio kandidatskog ključa su glavni atributi, i atributi koji nisu dio kandidatskog ključa su atributi koji nisu glavni.
Ako imamo relaciju R (A, B, C, D, E, F) i imamo sljedeće funkcije ovisnosti o odnosu R.
Promatrajući funkcionalne ovisnosti, to možemo zaključiti AB je kandidatski ključ za relaciju R jer pomoću ključa AB možemo pretraživati vrijednost za sve atribute u relaciji R. Dakle A, B postaje glavni atributi dok zajedno čine ključ kandidata. Atributi C, D, E, F postaje ne-premijera atribute jer nijedan od njih nije dio kandidatskog ključa.
Tabela je u 2NF jer nijedan atribut koji nije prazan djelomično ovisi o kandidatskom ključu
No, promatrana je tranzitivna ovisnost među pruženim funkcionalnim ovisnostima kao atributom F nije izravno ovisan o kandidatskom ključu AB, Umjesto toga, atribut F je prijelazno ovisno o kandidatskom ključu AB putem atributa D, Do atributa D ima neke vrijednosti koje možemo doseći da bismo pripisali vrijednost F, iz kandidatskog ključa AB. U slučaju da je vrijednost atributa D jednaka NULL, nikada ne možemo pronaći / pretraživati vrijednost F uz pomoć tipke AB. To je razlog zašto 3NF zahtijeva uklanjanje tranzitivne ovisnosti iz odnosa.
Dakle, da bismo uklonili tu tranzitivnu ovisnost, moramo podijeliti odnos R. Dok dijelimo odnos, u prvi odnos stavimo ključ kandidata, a sve atribute koji ovise o tom kandidatskom ključu. U sljedeći podijeljeni odnos smjestit ćemo atribut koji uzrokuje tranzitivnu ovisnost, kao i atribute koji ovise o njemu u drugi odnos.
Sada su tablice R1 i R2 u 3NF jer u njemu nisu preostale djelomične i tranzitivne ovisnosti. Odnos R1 (A, B, C, D, E) ima ključ kandidata AB dok, odnos R2 (D, E) ima D kao ključ kandidata.Definicija BCNF
BCNF se smatra jačim od 3NF. Odnos R da bude u BCNF mora biti u 3NF, I gdje god netrivijalna funkcionalna ovisnost A -> B vrijedi u odnosu R, dakle mora biti a superkey odnosa R. Kao što znamo, Super ključ je ključ koji ima jedan atribut ili skup atributa koji određuje, čitave atribute odnosa.
A sada, prijeđite na primjer kako bismo BCNF razumjeli na bolji način. Pretpostavimo da imamo vezu R (A, B, C, D, F), koje imaju sljedeće funkcionalne ovisnosti.
Promatrajući odnos R, možemo to reći i BF su kandidat ključevi odnosa R, jer oni sami mogu pretraživati vrijednost za sve atribute u odnosu R. Dakle A, B, F su glavni atributi dok, C i D su ne-premijera atributa. Ne postoji tranzitivna ovisnost u gore navedenim funkcionalnim ovisnostima. Dakle, tablica R je u 3NF.Ali jedna funkcionalna ovisnost, tj. D -> F krši definiciju BCNF prema kojoj, ako D -> F tada postoji D trebao biti super ključ što ovdje nije slučaj. Tako ćemo podijeliti odnos R.
Sada su tablice R1 i R2 u BCNF-u. Odnos R1 ima dvije kandidat ključevi i B, trivijalna funkcionalna ovisnost Rl, tj. A-> BCD i B -> ACD, držite za BCNF jer su A i B super ključevi za odnos. Odnos R2 ima D kao svoj kandidat ključ a funkcionalna ovisnost D -> F također vrijedi za BCNF jer je D super ključ.- 3NF kaže da nijedan atribut koji nije prazan ne smije biti tranzitivno ovisan o kandidatskom ključu veze. S druge strane, BCNF kaže da ako za odnos postoji trivijalna funkcionalna ovisnost X -> Y; tada X mora biti super ključ.
- 3NF se može dobiti bez žrtvovanja ovisnosti odnosa. Međutim, ovisnost se ne može sačuvati tijekom dobivanja BCNF-a.
- 3NF se može postići bez gubljenja podataka iz stare tablice, dok, dobivanjem BCNF-a, možemo izgubiti neke podatke iz stare tablice.
Zaključak:
BCNF je mnogo restriktivniji od 3NF koji više pomaže u normalizaciji tablice. Odnos u 3NF ima minimalno preostalo viška koje BCNF dalje uklanja.