Razlika između 3NF i BCNF

Autor: Laura McKinney
Datum Stvaranja: 1 Travanj 2021
Datum Ažuriranja: 10 Svibanj 2024
Anonim
Difference between 3NF and BCNF, De-normalization
Video: Difference between 3NF and BCNF, De-normalization

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.

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. Zaključak

Usporedni grafikon

Osnove za usporedbu3NFBCNF
KonceptNijedan 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.
zavisnost3NF se može dobiti bez žrtvovanja svih ovisnosti.Zavisnosti se ne mogu sačuvati u BCNF-u.
RaspadDekompozicija 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č.

  1. 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č.
  2. 3NF se može dobiti bez žrtvovanja ovisnosti odnosa. Međutim, ovisnost se ne može sačuvati tijekom dobivanja BCNF-a.
  3. 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.