Toiminnallinen riippuvuus (ohjelmointi)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 30. kesäkuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 13 muokkausta .

Funktionaalinen riippuvuus  on binäärisuhde tietyn suhteen attribuuttijoukkojen välillä ja on itse asiassa yksi-moneen-suhde. Sen käyttö johtuu siitä, että sen avulla voit muodollisesti ja tiukasti ratkaista monia ongelmia.

Toiminnallinen riippuvuus on käsite, joka on monien relaatiotietokantoihin liittyvien ongelmien taustalla , mukaan lukien erityisesti niiden suunnittelu.

Määritelmät

Toiminnallinen riippuvuus

Olkoon relaatio annettu skeemalla (otsikko) , ja  se on joitain alijoukkoja suhteen attribuuttijoukosta . Joukko on toiminnallisesti riippuvainen siitä, jos ja vain jos jokainen joukon arvo liittyy täsmälleen yhteen joukon arvoon . Nimetty .

Toisin sanoen, jos kahdella monikolla on sama arvo kohdassa , niin niillä on sama arvo .

Tässä tapauksessa  determinantti  on riippuvainen osa.

Toiminnallisen riippuvuuden sanotaan olevan triviaali , jos riippuvainen osa on determinantin osajoukko.

Riippuvuusjoukon sulkeminen

Jotkut toiminnalliset riippuvuudet voivat tarkoittaa muita toiminnallisia riippuvuuksia. Esimerkiksi toiminnallinen riippuvuus,

.

Kaikkien funktionaalisten riippuvuuksien joukkoa , jotka tietty funktionaalisten riippuvuuksien joukko sisältää, kutsutaan joukon sulkemiseksi .

Attribuuttijoukon sulkeminen

Antaa olla  jokin joukko attribuutteja suhteessa , ja  olla joukko toiminnallisia riippuvuuksia tämän suhteen. Attribuuttijoukon sulkeminen rajojen sisällä on sellainen joukko suhteen kaikkia attribuutteja, että funktionaalinen riippuvuus on sulkemisen jäsen .

Redusoitumattomat riippuvuusjoukot

Olkoon ja  joitain funktionaalisten riippuvuuksien joukkoja.

Sulkemisen arviointi

Armstrongin päättelysäännöt

William Armstrong ehdotti vuonna 1974 sääntöjä uusien toiminnallisten riippuvuuksien päättelemiseksi tiedoista.

Oletetaan, että meillä on relaatio ja joukko attribuutteja . Tietueen lyhentämiseksi kirjoitamme sen sijaan yksinkertaisesti .

Armstrongin päättelysäännöt ovat täydellisiä (niitä käyttämällä voidaan johtaa kaikki muut annetun joukon sisältämät toiminnalliset riippuvuudet) ja luotettavia ("ylimääräisiä" toiminnallisia riippuvuuksia ei voida päätellä: johdettu toiminnallinen riippuvuus pätee kaikkialla, missä alkuperäiset toiminnalliset riippuvuudet (joista se on peräisin) johdettu) ovat voimassa).

Lisäksi näistä säännöistä johdetaan yksinkertaisesti useita lisäsääntöjä, jotka yksinkertaistavat toiminnallisten riippuvuuksien johtamista.

Lause: Funktionaalinen riippuvuus päätellään tietystä funktionaalisten riippuvuuksien sarjasta Armstrongin päättelysääntöjen mukaisesti silloin ja vain jos .

Attribuuttijoukon sulkeminen

Jos käytämme edellisen osan sääntöjä, kunnes uusien toiminnallisten riippuvuuksien luominen pysähtyy itsestään, saamme sulkemisen tietylle toiminnallisten riippuvuuksien joukolle. Käytännössä tätä sulkeutumista on harvoin tarpeen laskea itsestään, useimmiten olemme paljon kiinnostuneempia siitä, sisällytetäänkö tämä tai toinen toiminnallinen riippuvuus sulkemiseen. Tätä varten riittää, että laskemme determinantin sulkemisen. Tähän on olemassa melko yksinkertainen algoritmi.

  1. Antaa olla  joukko attribuutteja, joista tulee lopulta sulkeminen.
  2. Etsimme funktionaalisia riippuvuuksia muodoista , missä ja . Lisäämme jokaisen löydetyn riippuvuuden riippuvaisen osan arvoon .
  3. Toista vaihetta 2, kunnes määritteiden lisääminen joukkoon on mahdotonta.
  4. Joukko , johon ei voi lisätä määritteitä, on sulkeminen.

Sovellus

Tietokannan suunnittelu

Toiminnalliset riippuvuudet ovat eheysrajoituksia ja määrittävät tietokantaan tallennetun tiedon semantiikan. DBMS :n on jokaisen päivityksen yhteydessä tarkistettava niiden yhteensopivuus. Siksi suuren määrän toiminnallisia riippuvuuksia ei ole toivottavaa, muuten se hidastaa työtä. Tehtävän yksinkertaistamiseksi on tarpeen vähentää toiminnallisten riippuvuuksien joukko vaadittuun vähimmäismäärään.

If on toiminnallisten riippuvuuksien alkujoukon redusoitumaton peite , niin toiminnallisten riippuvuuksien täyttymisen tarkistaminen osoitteesta takaa automaattisesti kaikkien toiminnallisten riippuvuuksien täyttymisen kohteesta . Siten tehtävä löytää tarvittava vähimmäisjoukko rajoittuu toiminnallisten riippuvuuksien joukolle pelkistymättömän peitteen löytämiseen, jota käytetään alkuperäisen joukon sijaan.

Katso myös

Kirjallisuus