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:
Õ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:
Õ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:
Õ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:
Õ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.