generic student 469868421 56a030ec5f9b58eba4af4b08 068f256d032c462e8f6a27542761b6f1 scaled

Riippuvuus on rajoitus, joka koskee attribuutteja tai määrittää niiden välisen suhteen. Se tapahtuu tietokannassa, kun samaan tietokantataulukkoon tallennetut tiedot määrittelevät yksiselitteisesti muut samaan taulukkoon tallennetut tiedot. Voit kuvata tätä myös suhteeksi, jossa yhden attribuutin (tai attribuuttijoukon) arvon tietäminen riittää kertomaan toisen attribuutin (tai attribuuttijoukon) arvon samassa taulukossa. Tietokantariippuvuudet hämmentävät usein sekä opiskelijat että tietokanta-ammattilaiset. Onneksi ne eivät ole niin monimutkaisia ​​kuin miltä näyttää. Ne selitetään parhaiten muutamalla esimerkillä. Tässä tutkimme yleisiä tietokantariippuvuustyyppejä.

Tietokantariippuvuudet ja toiminnalliset riippuvuudet

Sanoa, että taulukon attribuuttien välillä on riippuvuus, on sama kuin sanoisi, että näiden attribuuttien välillä on toiminnallinen riippuvuus. Jos tietokannassa on riippuvuus siten, että attribuutti B riippuu attribuutista A, kirjoitat tämän seuraavasti: A -> B

Esimerkiksi työntekijän attribuuttien taulukossa, mukaan lukien sosiaaliturvatunnus (BSN) ja nimi, nimen voidaan sanoa riippuvan kansalaispalvelunumerosta (tai sosiaaliturvatunnuksesta -> nimi), koska työntekijän nimi voidaan määrittää yksilöllisesti sosiaaliturvatunnus. Käänteinen lause (nimi -> SSN) ei kuitenkaan pidä paikkaansa, koska useammalla kuin yhdellä työntekijällä voi olla sama nimi, mutta aina eri SSN-tunnukset.

Triviaaliset toiminnalliset riippuvuudet

Triviaali toiminnallinen riippuvuus ilmenee, kun kuvaat määritteen toiminnallista riippuvuutta attribuuttikokoelmasta, joka sisältää alkuperäisen määritteen. Esimerkiksi {A, B} -> B on triviaali toiminnallinen riippuvuus, kuten myös {nimi, SSN} -> SSN. Tämän tyyppistä toiminnallista riippuvuutta kutsutaan triviaaliksi, koska se voidaan päätellä terveestä järjestä. On selvää, että jos tiedät jo B:n arvon, B:n arvo voidaan määrittää yksiselitteisesti tämän tiedon perusteella.

Täydelliset toiminnalliset riippuvuudet

Täysi toiminnallinen riippuvuus syntyy, kun täytät jo toiminnallisen riippuvuuden vaatimukset ja funktionaalisen riippuvuuden käskyn vasemmalla puolella olevaa attribuuttijoukkoa ei voida enää pienentää. Esimerkiksi {SSN, ikä} -> nimi on toiminnallinen riippuvuus, mutta se ei ole täysi toiminnallinen riippuvuus, koska voit poistaa iän lauseen vasemmalta puolelta vaikuttamatta riippuvuussuhteeseen.

Transitiiviset riippuvuudet

Transitiivisia riippuvuuksia esiintyy, kun on epäsuora suhde, joka aiheuttaa toiminnallisen riippuvuuden. Esimerkiksi A -> C on transitiivinen riippuvuus, kun se on tosi vain koska sekä A -> B että B -> C ovat tosi.

Moniarvoiset riippuvuudet

Moniarvoisia riippuvuuksia esiintyy, kun yhden tai useamman rivin läsnäolo taulukossa tarkoittaa yhden tai useamman muun rivin läsnäoloa samassa taulukossa. Kuvittele esimerkiksi autoyhtiötä, joka valmistaa useita automalleja, mutta tekee jokaisesta mallista aina sekä punaisen että sinisen värin. Jos sinulla on taulukko, jossa on jokaisen yrityksen valmistaman auton mallinimi, väri ja vuosimalli, taulukossa on moniarvoinen riippuvuus. Jos tietylle mallille ja vuodelle on rivi sinisellä, on oltava myös samanlainen rivi, joka vastaa saman auton punaista versiota.

Riippuvuuksien merkitys

Tietokantariippuvuudet ovat tärkeitä ymmärtää, koska ne tarjoavat perusrakennuspalikat, joita käytetään tietokannan normalisoinnissa, prosessissa tietojen tehokkaassa järjestämisessä tietokannassa. Esimerkiksi:

  • Jotta taulukolla olisi toinen normaalimuoto (2NF), taulukossa ei saa olla ei-prime-attribuuttia, joka on toiminnallisesti riippuvainen ehdokasavaimen osajoukosta.
  • Jotta taulukko olisi kolmannessa normaalimuodossa (3NF), jokaisella ei-prime-attribuutilla on oltava ei-transitiivinen toiminnallinen riippuvuus jokaisesta ehdokasavaimesta.
  • Jotta taulukko olisi Boyce-Coddin normaalimuodossa (BCNF), jokaisen toiminnallisen riippuvuuden (paitsi triviaaleja riippuvuuksia) on oltava superavaimella.
  • Jotta taulukko olisi neljännessä normaalimuodossa (4NF), sillä ei saa olla moniarvoisia riippuvuuksia.

Por Markus