Relaatiotietokannassa riippuvuus syntyy, kun samaan tietokantataulukkoon tallennetut tiedot määrittävät yksiselitteisesti muut samaan taulukkoon tallennetut tiedot. Moniarvoinen riippuvuus syntyy, kun yhden tai useamman rivin läsnäolo taulukossa tarkoittaa yhden tai useamman muun rivin läsnäoloa samassa taulukossa. Toisin sanoen taulukon kaksi attribuuttia (tai saraketta) ovat riippumattomia toisistaan, mutta molemmat riippuvat kolmannesta attribuutista.
Moniarvoinen riippuvuus estää normalisointistandardin neljännen normaalimuodon. Relaatiotietokannat noudattavat viittä normaalia muotoa, jotka edustavat tietueiden suunnittelun ohjeita. Ne estävät päivityspoikkeamat ja epäjohdonmukaisuudet tiedoissa. Neljäs normaalimuoto käsittelee useat yhteen -suhteita tietokannassa.
Funktionaalinen riippuvuus vs. moniarvoinen riippuvuus
Moniarvoisen riippuvuuden ymmärtämiseksi on hyödyllistä tarkastella uudelleen, mitä toiminnallinen riippuvuus on.
Jos attribuutti X määrittää yksiselitteisesti attribuutin Y, Y on toiminnallisesti riippuvainen X:stä. Tämä kirjoitetaan muodossa X -> Y. Esimerkiksi alla olevassa opiskelijataulukossa opiskelijan_nimi määrittää pääaineen:
Opiskelijan_nimi | Majuri |
---|---|
Ravi | Taidehistoria |
Beth | Kemia |
Tämä toiminnallinen riippuvuus voidaan kirjoittaa: Opiskelijan_nimi -> Pääaine. Jokainen opiskelijan_nimi määrittää täsmälleen yhden pääaineen eikä enempää.
Jos haluat tietokannan seuraavan myös näiden opiskelijoiden urheilulajeja, voit ajatella, että helpoin tapa tehdä tämä on vain lisätä toinen sarake nimeltä Urheilu:
Opiskelijan_nimi | Majuri | Urheilu |
---|---|---|
Ravi | Taidehistoria | Jalkapallo |
Ravi | Taidehistoria | Lentopallo |
Ravi | Taidehistoria | Tennis |
Beth | Kemia | Tennis |
Beth | Kemia | Jalkapallo |
Ongelma tässä on se, että Ravi ja Beth harrastavat useita urheilulajeja. Jokaiselle urheilulajille on lisättävä uusi rivi.
Tässä taulukossa on otettu käyttöön moniarvoinen riippuvuus, koska pääaine ja laji ovat toisistaan riippumattomia, mutta molemmat riippuvat opiskelijasta. Tämä on yksinkertainen esimerkki ja helposti tunnistettavissa, mutta moniarvoriippuvuudesta voi tulla ongelma suuressa, monimutkaisessa tietokannassa.
Moniarvoinen riippuvuus kirjoitetaan X ->-> Y. Tässä tapauksessa:
Opiskelijan_nimi ->-> Major
Opiskelijan_nimi34 > Urheilu
Tämä luetaan seuraavasti: "Opiskelijan_nimi määrittää usean pääaineen" ja "Opiskelijan_nimi määrää urheilun."
Moniarvoinen riippuvuus vaatii aina vähintään kolme attribuuttia, koska se koostuu vähintään kahdesta attribuutista, jotka ovat riippuvaisia kolmannesta.
Moniarvoinen riippuvuus ja normalisointi
Taulukko, jossa on moniarvoinen riippuvuus, rikkoo neljännen normaalimuodon normalisointistandardia, koska se luo tarpeettomia redundansseja ja voi aiheuttaa epäjohdonmukaisia tietoja. Jotta tämä saadaan 4NF-arvoon, on tarpeen jakaa nämä tiedot kahteen taulukkoon.
Alla olevassa taulukossa on nyt opiskelijan_nimi -> pääaineen toiminnallinen riippuvuus, eikä moniarvoisia riippuvuuksia:
Opiskelijan_nimi | Majuri |
---|---|
Ravi | Taidehistoria |
Ravi | Taidehistoria |
Ravi | Taidehistoria |
Beth | Kemia |
Beth | Kemia |
Vaikka tässä taulukossa on myös yksi toiminnallinen riippuvuus Student_Namesta -> Urheilu:
Opiskelijan_nimi | Urheilu |
---|---|
Ravi | Jalkapallo |
Ravi | Lentopallo |
Ravi | Tennis |
Beth | Tennis |
Beth | Jalkapallo |
Normalointi suoritetaan usein yksinkertaistamalla monimutkaisia taulukoita niin, että ne sisältävät yhteen ideaan tai teemaan liittyvää tietoa sen sijaan, että yksi taulukko sisältäisi liikaa erilaisia tietoja.