Mitkä ovat tietokannan riippuvuudet?

Tietokannan riippuvuudet ovat aihe, joka usein sekoittaa sekä opiskelijat että tietokannan ammattilaiset. Onneksi he eivät ole niin monimutkaisia ​​ja niitä voidaan parhaiten havainnollistaa käyttämällä useita esimerkkejä. Tässä artikkelissa tarkastelemme yhteisiä tietokannan riippuvuustyyppejä.

Tietokannan riippuvuudet / toiminnalliset riippuvuudet

Tietokannassa esiintyy riippuvuus, kun samaan tietokantapöytään 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.

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 attribuuttia A, kirjoittaisit sen nimellä "A -> B".

Esimerkiksi taulukossa, jossa luetellaan työntekijän ominaisuudet, mukaan lukien sosiaaliturvatunnus (SSN) ja nimi, voidaan sanoa, että nimi riippuu SSN: stä (tai SSN: stä), koska työntekijän nimi voidaan määrittää yksitellen SSN: stä. Päinvastainen lausunto (nimi -> SSN) ei kuitenkaan ole tosi, koska useammalla kuin yhdellä työntekijällä voi olla sama nimi, mutta eri SSN: t.

Trivial Functional Dependencies

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äysin toiminnalliset riippuvuudet

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 funktionaalinen riippuvuus, mutta se ei ole täysin toimiva riippuvuus, koska voit poistaa ikä lausekkeen vasemmalta puolelta vaikuttamatta riippuvuussuhteeseen.

Transitiiviset riippuvuudet

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.

Monimuotoiset riippuvuudet

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.

Riippuvuuksien merkitys

Tietokannan riippuvuudet ovat tärkeitä ymmärtää, koska ne tarjoavat tietokannan normalisoinnissa käytettävät perusrakenteet. Esimerkiksi: