Riippuvuus on rajoitin, joka koskee tai määrittelee attribuuttien välisen suhteen. Se tapahtuu tietokannassa, kun samaan tietokantataulukkoon tallennetut tiedot määrittävät yksiselitteisesti samaan taulukkoon tallennetut muut tiedot. Voit myös kuvata tätä suhteeksi, jossa yhden attribuutin (tai attribuuttien joukon) tunteminen riittää kertomaan toisen attribuutin (tai attribuuttien sarjan) arvon samassa taulukossa.
Tietokannan riippuvuudet usein sekoittavat sekä opiskelijat että tietokantahenkilöstö. Onneksi he eivät ole niin monimutkaisia kuin he voivat näyttää. Niitä voidaan parhaiten selittää muutamalla esimerkillä. Tässä tarkastelemme yhteisiä tietokannan riippuvuustyyppejä.
Tietokannan riippuvuudet ja toiminnalliset riippuvuudet
Sanomalla, että taulukon attribuuttien välillä on riippuvuus, on sama kuin sanomalla, että näiden attribuuttien välillä on funktionaalinen riippuvuus. Jos tietokannassa on riippuvuus, että attribuutti B riippuu attribuutista A, kirjoittaisit sen seuraavasti:
A -> B
Esimerkiksi työntekijän ominaisuuksista, kuten sosiaaliturvan numerosta (SSN) ja nimestä, voidaan sanoa, että nimi riippuu SSN: stä (tai SSN: stä), koska työntekijän nimi voidaan määritellä yksitellen SSN: stä. Päinvastainen lausunto (nimi -> SSN) ei kuitenkaan ole totta, koska useammalla kuin yhdellä työntekijällä voi olla sama nimi, mutta sillä on aina eri SSN. Triviaali funktionaalinen riippuvuus ilmenee, kun kuvaat funktionaalisen riippuvuuden attribuutista alkuperäisen attribuutin sisältävien attribuuttien kokoelmaan. Esimerkiksi {A, B} -> B on triviaali funktionaalinen riippuvuus, kuten {nimi, SSN} -> SSN. Tällaista toiminnallista riippuvuutta kutsutaan triviaaliksi, koska se voidaan johtaa järjiltään. On selvää, että jos tiedät jo B: n arvon, B: n arvo voidaan määritellä yksiselitteisesti kyseisen tiedon perusteella. Täydellinen toiminnallinen riippuvuus ilmenee, kun olet jo täyttänyt funktionaalisen riippuvuuden vaatimukset ja funktionaalisen riippuvuuden lausunnon vasemmalla puolella olevia attribuuttiarvoja ei voida enää pienentää. Esimerkiksi {SSN, age} -> nimi on toiminnallinen riippuvuus, mutta se ei ole täysin toimiva riippuvuus, koska voit poistaa ikä lausunnon vasemmalta puolelta vaikuttamatta riippuvuussuhteeseen. Transitiiviset riippuvuudet esiintyvät silloin, kun epäsuora suhde aiheuttaa funktionaalisen riippuvuuden. Esimerkiksi A -> C on transitiivinen riippuvuus, kun se on totta vain siksi, että molemmat A -> B ja B -> C ovat totta. Monimuotoisia riippuvuuksia esiintyy, kun taulukon yhden tai useamman rivin läsnäolo merkitsee yhden tai useamman rivin esiintymistä samassa taulukossa. Kuvittele esimerkiksi autoyritys, joka valmistaa monia autonmalleja, mutta tekee aina sekä punaisen että sinisen värin jokaisesta mallista. Jos sinulla on taulukko, joka sisältää valmistajan mallin nimen, värin ja vuoden, kyseisessä taulukossa on moniarvoinen riippuvuus. Jos tietty mallin nimi ja vuosi on rivillä, on myös oltava samanlainen rivi, joka vastaa saman auton punaista versiota. Tietokannan riippuvuudet ovat tärkeitä ymmärtää, koska ne tarjoavat tietokannan normalisoinnissa käytettävät perusrakenteet, prosessin tehokkaan organisoinnin tietokannassa. Esimerkiksi: Trivial Functional Dependencies
Täysin toiminnalliset riippuvuudet
Transitiiviset riippuvuudet
Monimuotoiset riippuvuudet
Riippuvuuksien merkitys