Skirtumas tarp 3NF ir BCNF

Autorius: Laura McKinney
Kūrybos Data: 1 Balandis 2021
Atnaujinimo Data: 5 Gegužė 2024
Anonim
Skirtumas tarp 3NF ir BCNF - Technologija
Skirtumas tarp 3NF ir BCNF - Technologija

Turinys


Normalizavimas yra metodas, kuris pašalina atleidimas iš darbo iš santykio, taip sumažindami įterpimo, ištrynimo ir atnaujinimo anomalijas, kurios pablogina duomenų bazių veikimą. Šiame straipsnyje išskirsime dvi aukštesnes normaliąsias formas, ty 3NF ir BCNF. Pagrindinis skirtumas tarp 3NF ir BCNF yra tas 3NF pašalina pereinamąją priklausomybę nuo santykio ir lentelės, kuri turi būti BCNF, trivialioji funkcinė priklausomybė X-> Y santykyje turi išlikti, tik jei X yra pagrindinis raktas.

Apžvelkime 3NF ir BCNF skirtumus naudodamiesi palyginimo lentele, parodyta žemiau.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindas3NFBCNF
KoncepcijaJoks nepaprastas požymis neturi pereinamai priklausyti nuo rakto „Kandidatas“.Bet kokiai trivialiai priklausomybei santykyje R pasakykite X-> Y, X turėtų būti super santykinis R raktas.
Priklausomybė3NF galima gauti neprarandant visų priklausomybių.Priklausomybės gali būti neišsaugotos BCNF.
Skilimas3NF galima suskaidyti be nuostolių.BCNF sunku pasiekti nuostolingą skilimą.


3NF apibrėžimas

Laikoma, kad lentelė arba santykis yra Trečioji normalioji forma tik jei stalas jau yra 2NF ir nėra nepriimtinis atributas pereinamai priklausomas nuo kandidato raktas santykio.

Taigi, prieš pradėdamas 3NF lentelės normalizavimo procesą, leisk man aptarti pagrindinį kandidatą. A Kandidato raktas yra minimalus super raktas y., super raktas su minimaliais atributais, galinčiais apibrėžti visus santykio atributus. Taigi, normalizuodami lentelę, pirmiausia atpažįstate tam tikro santykio kandidato raktą. Atributai, kurie yra kandidato rakto dalis, yra svarbiausi požymiai, ir atributai, kurie nėra kandidato rakto dalis, yra nepagrindiniai požymiai.

Dabar, jei mes santykis R (A, B, C, D, E, F) ir turime šias ryšių R priklausomybes.


Stebėdami funkcines priklausomybes, galime daryti išvadą AB yra santykio R raktas, nes, naudodamiesi raktu AB, galime ieškoti visų ryšių atributo reikšmių. Taigi A, B tampa svarbiausi požymiai nes jie kartu sudaro kandidato raktą. Atributai C, D, E, F tampa nepriimtinis atributus, nes nė vienas iš jų nėra kandidato rakto dalis.

Lentelė pateikiama 2NF formatu, nes nė vienas nepaprastas atributas iš dalies priklauso nuo kandidato rakto

Tačiau tarp pateiktų funkcinių priklausomybių kaip požymis pastebima tranzityvioji priklausomybė F nėra tiesiogiai priklausomas nuo kandidato rakto AB. Verčiau atributas F yra pereinamai priklausomas nuo kandidato rakto AB per atributą D. Iki atributas D turi tam tikrą vertę, kurią galime pasiekti, kad atributas F būtų iš kandidato rakto AB. Jei atributo D vertė yra NULL, niekada negalime rasti / ieškoti F vertės naudodamiesi raktu kandidatas AB. Dėl šios priežasties 3NF reikalauja pašalinti iš santykių pereinamąją priklausomybę.

Taigi, norėdami pašalinti šią pereinamąją priklausomybę, turime padalyti santykį R. Dalydami santykį visada įdėkite kandidato raktą ir visus požymius, kurie priklauso nuo to kandidato rakto pirmajame santykyje. Kitame padalintame santykyje mes pateiksime požymį, kuris sukelia pereinamąją priklausomybę, ir požymius, kurie priklauso nuo jo antrame santykyje.

Lentelės R1 ir R2 yra 3NF, nes joje nėra dalinių ir pereinamųjų priklausomybių. Santykis R1 (A, B, C, D, E) turi kandidato raktą AB kadangi santykis R2 (D, E) turi D kaip jos kandidato raktas.

BCNF apibrėžimas

Manoma, kad BCNF yra stipresnis nei 3NF. Santykis R, esantis BCNF, turi būti 3NF. Ir kur a ne trivialioji funkcinė priklausomybė A -> B turi R santykiu, tada A turi būti a superkeliukas santykio R. Kaip žinome, raktas „Super“ yra raktas, turintis vieną požymį ar požymių rinkinį, lemiantį visus ryšio požymius.

Dabar pereikime prie pavyzdžio, kad geriau suprastume BCNF. Tarkime, kad mes turime ryšių R (A, B, C, D, F), kurie turi šias funkcines priklausomybes.

Stebėdami santykį R, galime tai pasakyti A ir BF yra kandidato raktai R santykio, nes jie vieni patys gali ieškoti visų ryšių atributų vertės. Taigi A, B, F yra pagrindinis atributai kadangi C ir D yra nepriimtinis atributai. Aukščiau išvardytų funkcinių priklausomybių nepastebėta jokių pereinamųjų priklausomybių. Taigi lentelė R yra 3NF.

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

Dabar lentelės R1 ir R2 yra BCNF. Santykis R1 turi du kandidatas raktai A ir B, triviali R1 funkcinė priklausomybė, t. y. A-> BCD ir B -> ACD, palaikykite BCNF, nes A ir B yra pagrindiniai santykio raktai. Santykis R2 turi D kaip jos kandidato raktas ir funkcinė priklausomybė D -> F taip pat galioja BCNF, nes D yra pagrindinis raktas.

  1. 3NF teigia, kad joks nepaprastas požymis neturi būti pereinamai priklausomas nuo kandidato rakto. Kita vertus, BCNF teigia, kad jei ryšiui egzistuoja trivialioji funkcinė priklausomybė X -> Y; tada X turi būti super raktas.
  2. 3NF galima gauti neprarandant priklausomybės nuo priklausomybės. Tačiau priklausomybė gali neišnykti gaunant BCNF.
  3. 3NF galima pasiekti neprarandant jokios informacijos iš senosios lentelės, tuo tarpu, gaudami BCNF, galime prarasti dalį informacijos iš senosios lentelės.

Išvada:

BCNF yra daug ribojantis nei 3NF, o tai padeda labiau normalizuoti lentelę. Santykis 3NF turi minimalų perteklių, kurį toliau pašalina BCNF.