Daugialypė priklausomybė nuo duomenų bazių kūrimo

Daugialypė priklausomybė sulaužė ketvirtąją įprastą formą

Reliacinėje duomenų bazėje priklausomybė atsiranda tada, kai toje pačioje duomenų lentelėje saugoma informacija unikaliai nustato kitą tą pačią lentelę saugomą informaciją. Daugiavertė priklausomybė atsiranda tada, kai vienos ar kelių eilučių buvimas lentelėje reiškia vienos ar kelių kitų eilučių buvimą toje pačioje lentelėje. Kitaip tariant, du lentelėje esantys požymiai (ar stulpeliai) nepriklauso vienas nuo kito, tačiau abi priklauso nuo trečiojo atributo.

Daugialypė priklausomybė užkerta kelią normalizavimo standartinei ketvirtai normaliai formai (4NF). Reliacinės duomenų bazės seka penkiomis įprastomis formomis, kuriose yra rekordų dizaino gairės. Jie užkerta kelią duomenų nenuoseklumų ir neatitikimų atnaujinimui. Ketvirta normalioji forma susijusi su daugelio vienetų santykiais duomenų bazėje .

Funkcinė priklausomybė ir daugialypė priklausomybė

Norėdami suprasti daugialypę priklausomybę, naudinga persvarstyti, kas yra funkcinė priklausomybė.

Jei atributas X unikaliai nustato atributą Y, tada Y yra funkciniu požiūriu priklausomas nuo X. Tai parašyta kaip X-> Y. Pavyzdžiui, studentų lentelėje žemiau "Student_Name" nustato "Major":

Studentai
Studento vardas Majoras
Ravi Meno istorija
Beth Chemija


Ši funkcinė priklausomybė gali būti parašyta: Student_Name -> Major . Kiekvienas Student_Name nustato tiksliai vieną Majorą ir ne daugiau.

Jei norite, kad duomenų bazė taip pat sektų sporto šiems studentams, galite manyti, kad paprasčiausias būdas tai padaryti yra tiesiog pridėti kitą stulpelį su pavadinimu "Sportas":

Studentai
Studento vardas Majoras Sportas
Ravi Meno istorija Futbolas
Ravi Meno istorija Tinklinis
Ravi Meno istorija Tenisas
Beth Chemija Tenisas
Beth Chemija Futbolas


Problema yra ta, kad tiek Ravi, tiek Bet vaidina keletą sporto šakų. Reikia pridėti naują eilutę kiekvienam papildomam sportui.

Ši lentelė įvedė daugialypę priklausomybę, nes pagrindinės ir sporto sritys yra viena nuo kitos nepriklausomos, tačiau abi priklauso nuo studento.

Tai paprastas pavyzdys ir lengvai atpažįstamas, tačiau daugiapakopė priklausomybė gali tapti didelės sudėtingos duomenų bazės problema.

Įrašoma daugialypė priklausomybė X -> -> Y. Šiuo atveju:

Student_Name -> -> Major
Student_Name -> -> Sportas

Tai skaitoma kaip "Student_Name mulitetermines Major" ir "Student_Name multidetermines Sport".

Daugiavalioji priklausomybė visada reikalauja bent trijų atributų, nes ji susideda iš bent dviejų trečiųjų priklausomų atributų.

Daugialypė priklausomybė ir normalizavimas

Lentelė su daugybe priklausomybe pažeidžia ketvirtosios įprastos formos (4NK) normavimo normą, nes ji sukuria nereikalingus atleidimus iš darbo ir gali prisidėti prie nenuoseklių duomenų. Kad tai būtų iki 4NF, šią informaciją reikia sugriauti į dvi lenteles.

Toliau pateiktoje lentelėje yra funkcinė priklausomybė nuo Student_Name -> Major ir nėra daugialypių priklausomybių:

Studentai ir pagrindai
Studento vardas Majoras
Ravi Meno istorija
Ravi Meno istorija
Ravi Meno istorija
Beth Chemija
Beth Chemija

Nors šioje lentelėje taip pat yra viena funkcinė Student_Name priklausomybė -> Sportas:

Studentai ir sportas
Studento vardas Sportas
Ravi Futbolas
Ravi Tinklinis
Ravi Tenisas
Beth Tenisas
Beth Futbolas

Akivaizdu, kad normalizavimas dažnai sprendžiamas supaprastinant sudėtingas lenteles, kad jose būtų pateikta informacija, susijusi su viena idėja ar tema, o ne bandymas padaryti vienoje lentelėje per daug nevienodos informacijos.