Moniarvoinen riippuvuus tietokantoissa
Jonkin sisällä relaatiotietokanta, riippuvuus syntyy, kun samaan tietokantataulukkoon tallennetut tiedot määrittelevä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äs normaalimuoto. 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 monta-yhteen-suhteita a tietokanta.
Toiminnallinen riippuvuus vs. Moniarvoinen riippuvuus
Moniarvoisen riippuvuuden ymmärtämiseksi on hyödyllistä tarkastella uudelleen, mitä a toiminnallinen riippuvuus On.
Jos attribuutti X määrittää yksiselitteisesti attribuutin Y, niin Y on toiminnallisesti riippuvainen X: stä. Tämä kirjoitetaan X -> Y. Esimerkiksi alla olevassa opiskelijataulukossa opiskelijan_nimi määrittää pääaineen:
Opiskelijan nimi | Suuri |
---|---|
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, ei 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 | Suuri | Urheilu |
---|---|---|
Ravi | Taidehistoria | Jalkapallo |
Ravi | Taidehistoria | Lentopallo |
Ravi | Taidehistoria | Tennis |
Beth | Kemia | Tennis |
Beth | Kemia | Jalkapallo |
Ongelma tässä on, että sekä Ravi että Beth harrastavat useita urheilulajeja. Jokaiselle lisälajille on lisättävä uusi rivi.
Tämä taulukko on tuonut käyttöön moniarvoisen riippuvuuden, 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 ->-> Suuri
Opiskelijan nimi ->-> Urheilu
Tämä luetaan seuraavasti: "Opiskelijan_nimi määrittää usean pääaineen" ja "Opiskelijan nimi määrittää urheilun useaan otteeseen".
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 myötävaikuttaa epäjohdonmukaisiin tietoihin. Jotta tämä saadaan 4NF-arvoon, on tarpeen jakaa nämä tiedot kahteen taulukkoon.
Alla olevassa taulukossa on nyt toiminnallinen riippuvuus Student_Name -> Major, eikä moniarvoisia riippuvuuksia:
Opiskelijan nimi | Suuri |
---|---|
Ravi | Taidehistoria |
Ravi | Taidehistoria |
Ravi | Taidehistoria |
Beth | Kemia |
Beth | Kemia |
Vaikka tässä taulukossa on myös yksi toiminnallinen riippuvuus Student_Name -> Sport:
Opiskelijan nimi | Urheilu |
---|---|
Ravi | Jalkapallo |
Ravi | Lentopallo |
Ravi | Tennis |
Beth | Tennis |
Beth | Jalkapallo |
Normalisointi suoritetaan usein yksinkertaistamalla monimutkaisia taulukoita niin, että ne sisältävät liittyvää tietoa yhteen ideaan tai teemaan sen sijaan, että yrittäisit saada yhteen taulukkoon sisältyä liikaa erilaisia tietoja.