
Aptarkime skirtumus tarp 3NF ir BCNF, naudojant žemiau pateiktą palyginimo lentelę.
Palyginimo diagrama
Palyginimo pagrindas | 3NF | BCNF |
---|---|---|
Koncepcija | Jokio nepagrindinio atributo neturi būti laikinai priklausomas nuo kandidato rakto. | Bet kokiai triviškajai priklausomybei santykyje R sako X-> Y, X turėtų būti super santykis R. |
Priklausomybė | 3NF gali būti gaunama neprarandant visų priklausomybių. | Priklausomybės negali būti išsaugotos BCNF. |
Skilimas | Nuostolių skilimas gali būti pasiektas 3NF. | BCNF sunku pasiekti praradimą. |
3NF apibrėžimas
Lentelė arba santykis laikomas Trečiojo normalios formos tik tuo atveju, jei lentelė jau yra 2NF ir nėra jokio nepagrindinio atributo, kuris yra tranzitu priklausomas nuo santykio kandidato rakto .
Taigi, prieš sprendžiant 3NF lentelės normalizavimo procesą, leiskite aptarti kandidato raktą. Kandidato raktas yra minimalus super raktas, ty super raktas su minimaliais atributais, kurie gali apibrėžti visus santykio atributus. Taigi, normalizuodami savo lentelę, pirmiausia atpažįstate atitinkamo ryšio kandidato raktą. Atributai, kurie yra kandidato rakto dalis, yra svarbiausi atributai, o atributai, kurie nėra kandidato rakto dalis, yra ne pagrindiniai atributai .
Dabar, jei mes esame santykis R (A, B, C, D, E, F) ir mes turime šias funkcijų priklausomybes santykiui R.

Lentelė yra 2NF, nes jokia ne prime atributas iš dalies priklauso nuo kandidato rakto
Tačiau tarp funkcinių priklausomybių yra pastebima transitinė priklausomybė, nes atributas F nėra tiesiogiai priklausomas nuo AB kandidato. Vietoj to, atributas F yra pernelyg priklausomas nuo kandidato rakto AB per atributą D. Iki atributo D turi tam tikrą vertę, kurią galime pasiekti, kad atributą F būtų galima atpažinti iš AB kandidato. Jei atributo D reikšmė yra NULL, mes niekada negalime rasti / ieškoti F vertės, naudojant kandidato raktą AB. Tai yra priežastis, kodėl 3NF reikalauja pašalinti transityvinę priklausomybę nuo santykių.
Taigi, norint pašalinti šią transityvinę priklausomybę, turime suskirstyti santykį R. Skirstant santykį visada nurodykite kandidato raktą ir visus atributus, kurie priklauso nuo to kandidato rakto pirmame santykyje. Kitame suskirstytame santykyje antrajame santykyje dedame atributą, kuris sukelia transitinę priklausomybę, ir atributus, kurie priklauso nuo jo.

BCNF apibrėžimas
BCNF yra laikomas stipresniu nei 3NF. Ryšys R, esantis BCNF, turi būti 3NF . Ir kur nesvarbi funkcinė priklausomybė A -> B turi santykį R, tada A turi būti santykinio R. superkažas . Kaip žinome, „Super“ raktas yra raktas, turintis vieną atributą arba atributų rinkinį, kuris nustato visą santykio atributai.
Dabar pereikime prie pavyzdžio, kad geriau suprastume BCNF. Tarkime, mes turime santykį R (A, B, C, D, F), kurie turi šias funkcines priklausomybes.

Tačiau viena funkcinė priklausomybė, ty D -> F, pažeidžia BCNF apibrėžimą, pagal kurį, jei egzistuoja D -> F, D turėtų būti super raktas, kuris čia nėra. Taigi mes padalinsime santykį R.

Pagrindiniai skirtumai tarp 3NF ir BCNF
- 3NF teigia, kad nė vienas ne prime atributas turi būti laikinai priklausomas nuo santykio kandidato rakto. Kita vertus, BCNF teigia, kad jei trivialus funkcinė priklausomybė X -> Y egzistuoja santykiui; tada X turi būti super raktas.
- 3NF gali būti gaunamas neprarandant priklausomybės nuo santykio. Tačiau priklausomybė negali būti išsaugota gaunant BCNF.
- 3NF gali būti pasiektas neprarandant jokios informacijos iš senojo stalo, o, kol gaunant BCNF, galime prarasti tam tikrą informaciją iš senojo stalo.
Išvada:
BCNF yra daug griežtesnis nei 3NF, kuris padeda normalizuoti lentelę. Ryšys 3NF turi minimalų atleidimą iš kairiojo, kurį toliau pašalina BCNF.