Andmebaasi disaini mitmetasandiline sõltuvus

Mitmeosaline sõltuvus katkestab neljanda tavalise vormi

Relatsioonandmebaasis on sõltuvus, kui samas andmebaasi tabelis salvestatud teave määrab unikaalselt kindlaks sama tabeli salvestatud muu teabe. Mitut hinnatud sõltuvus esineb siis, kui tabeli ühe või mitme rea olemasolu viitab ühe või mitme teise rea olemasolule selles samas tabelis. Veel üks viis, et tabelis on kaks atribuuti (või veerge) üksteisest sõltumatud, kuid mõlemad sõltuvad kolmandast atribuudist.

Mitut hinnatud sõltuvus takistab normaliseerimise standardse neljanda tavalise vormi (4NF). Relatsioonandmebaasid järgivad viit tavalist vormi, mis kirjeldavad rekordilise disaini juhiseid. Nad takistavad andmetes esinevate anomaaliate ja vastuolude ilmnemist. Neljas tavaline vorm käsitleb andmebaasi mitme-ühes suhteid.

Funktsionaalne sõltuvus vs mitmeväärtusega sõltuvus

Multiväärtusest sõltuvuse mõistmiseks on kasulik vaadata funktsionaalset sõltuvust.

Kui atribuut X määrab unikaalselt atribuudi Y, siis Y on funktsionaalselt X-st sõltuv. See on kirjutatud kui X-> Y. Näiteks õpilaste tabelis allpool määrab Student_Name Major:

Õpilased
Õpilase nimi Major
Ravi Kunstiajalugu
Beth Keemia


Seda funktsionaalset sõltuvust saab kirjutada: Student_Name -> Major . Iga Student_Name määrab täpselt ühe Majori ja mitte rohkem.

Kui soovite, et andmebaas jälgiks ka spordiüritusi, mida need õpilased võtavad, võiksite mõelda, et lihtsaim viis seda teha on lihtsalt lisada järgmine veerg pealkirjaga Sport:

Õpilased
Õpilase nimi Major Sport
Ravi Kunstiajalugu Jalgpall
Ravi Kunstiajalugu Võrkpall
Ravi Kunstiajalugu Tennis
Beth Keemia Tennis
Beth Keemia Jalgpall


Probleem on selles, et nii Ravi kui Beth mängivad mitut sporti. Iga täiendava spordi jaoks on vaja lisada uus rida.

Selles tabelis on toodud paljuhinnaline sõltuvus, sest peamised ja sport on üksteisest sõltumatud, kuid mõlemad sõltuvad üliõpilast.

See on lihtne näide ja kergesti tuvastatav, kuid multivalue sõltuvus võib suurtes keerulises andmebaasis probleemiks saada.

Mitut hinnatud sõltuvust kirjutatakse X -> -> Y. Sellisel juhul:

Student_Name -> -> Major
Student_Name -> -> Sport

Seda loetakse "Student_Name multidetermines Major" ja "Student_Name multidetermines Sport".

Mitut hinnatud sõltuvus eeldab alati vähemalt kolme atribuuti, kuna see koosneb vähemalt kahest kolmandast sõltuvast atribuudist.

Mitmevärtne sõltuvus ja normaliseerimine

Mitut hinnatud sõltuvust tabel rikub neljanda normaalse vormi (4NK) normaliseerimise standardit, kuna see tekitab tarbetuid koondamisi ja võib kaasa aidata ebajärjekindlatele andmetele. Selleks, et viia see kuni 4NF-i, tuleb see teave jagada kahte tabelitesse.

Järgnevas tabelis on nüüd Student_Name -> Major ja mitte mitmevalentsete sõltuvuste funktsionaalne sõltuvus:

Õpilased ja magistrandid
Õpilase nimi Major
Ravi Kunstiajalugu
Ravi Kunstiajalugu
Ravi Kunstiajalugu
Beth Keemia
Beth Keemia

Kuigi sellel tabelil on ka üks Student_Name'i funktsionaalne sõltuvus -> Sport:

Õpilased ja spordialad
Õpilase nimi Sport
Ravi Jalgpall
Ravi Võrkpall
Ravi Tennis
Beth Tennis
Beth Jalgpall

On selge, et normaliseerimist käsitletakse tihti keeruliste tabelite lihtsustamise teel, nii et need sisaldavad üheainsa idee või teema kohta käivat informatsiooni, mitte püüavad luua ühe tabeli, mis sisaldab liiga erinevat teavet.