GettyImages 167132255 5a43c8b77d4be8003619e14d

Täysi toiminnallinen riippuvuus on tietokannan normalisoinnin tila, joka on toisen normaalimuodon (2NF) normalisointistandardin mukainen. Lyhyesti sanottuna tämä tarkoittaa, että se täyttää First Normal Form (1NF) -vaatimukset ja että kaikki ei-avainattribuutit ovat toiminnallisesti täysin riippuvaisia ​​ensisijaisesta avaimesta. Tämä ei ole niin monimutkaista kuin miltä se kuulostaa. Katsotaanpa tätä tarkemmin.

Yhteenveto ensimmäisestä normaalimuodosta

Ennen kuin tietokanta voi olla täysin toiminnallisesti riippuvainen, sen on ensin noudatettava ensimmäistä normaalimuotoa. Kaikki tämä tarkoittaa, että jokaisen attribuutin tulee sisältää yksi atomiarvo. Esimerkiksi seuraava taulukko ei läpäise 1NF:ää, koska työntekijä Tina on liitetty kahteen paikkaan, molemmat yhdessä solussa:

Kollega Paikka
John Los Angeles
Tina Los Angeles, Chicago

Tämän mallin salliminen voi vaikuttaa negatiivisesti tietojen päivityksiin tai syötteisiin. Varmista 1NF-yhteensopivuus järjestämällä taulukko uudelleen siten, että kaikki attribuutit (tai sarakkeen solut) sisältävät yhden arvon:

Kollega Paikka
John Los Angeles
Tina Los Angeles
Tina Chicago

Mutta 1NF ei vieläkään riitä tietojen ongelmien välttämiseen.

Kuinka 2NF toimii täydellisen riippuvuuden takaamiseksi

Ollakseen täysin riippuvainen, kaikkien muiden kuin ehdokasavainmääritteiden on oltava riippuvaisia ​​ensisijaisesta avaimesta. Ehdokasavainattribuutti on mikä tahansa avain (esimerkiksi ensisijainen tai vierasavain), jota käytetään tietokantatietueen yksilöimiseen. Tietokannan suunnittelijat käyttävät merkintää attribuuttien välisten riippuvien suhteiden kuvaamiseen: Jos attribuutti A määrittää B:n arvon, kirjoitamme tämän A -> Bmikä tarkoittaa, että B on toiminnallisesti riippuvainen A:sta. Tässä suhteessa A määrittää B:n arvon, kun taas B on riippuvainen A:sta. Esimerkiksi seuraavilla henkilöstöosastoilla pöytä, henkilöstökortti ja Osaston tunnus ovat molemmat ehdokasavaimet: henkilöstökortti on taulukon ensisijainen avain while Osaston tunnus on vieras avain. Kaikki muut attribuutit tässä tapauksessa Nimeä työntekijä ja Osaston nimi— täytyy riippua ensisijaisesta avaimesta saadakseen sen arvon.

henkilöstökortti Nimeä työntekijä Osaston tunnus Osaston nimi
Emp1 John Osasto001 Rahoittaa
Emp2 Tina Osasto003 myyntiin
mp3 Carlos Osasto001 Rahoittaa

Tässä tapauksessa taulukko ei ole täysin riippuvainen, koska vaikka EmployeeName on riippuvainen ensisijaisesta avaimesta henkilöstökorttithe Osaston nimi riippuu sen sijaan Osaston tunnus. Tätä kutsutaan osittaiseksi riippuvuudeksi. Jotta tämä taulukko olisi 2NF-yhteensopiva, meidän on erotettava tiedot kahteen taulukkoon: Työntekijät-taulukkoon ja Osastot-taulukkoon. Tämä on Työntekijät-taulukko:

henkilöstökortti Nimeä työntekijä Osaston tunnus
Emp1 John Osasto001
Emp2 Tina Osasto003
mp3 Carlos Osasto001

Poistamme Osaston nimi attribuutti Työntekijät-taulukosta ja luo uusi Osastot-taulukko:

Osaston tunnus Osaston nimi
Osasto001 Rahoittaa
Osasto002 Henkilöstöosasto
Osasto003 myyntiin

Nyt taulukoiden väliset suhteet ovat täysin riippuvaisia ​​tai 2NF:ssä.

Miksi täydellinen riippuvuus on tärkeää

Täysi riippuvuus tietokantamääritteiden välillä auttaa varmistamaan tietojen eheyden ja ehkäisemään tietojen poikkeavuuksia. Katso esimerkiksi yllä olevan osan taulukkoa, joka koskee vain 1NF:ää. Tässä vielä kerran:

Kollega Paikka
John Los Angeles
Tina Los Angeles
Tina Chicago

Tiinalla on kaksi ennätystä. Jos päivitämme yhden tietämättä, että niitä on kaksi, tuloksena olisi epäjohdonmukainen data. Tai entä jos haluamme lisätä työntekijän tähän taulukkoon, mutta emme vielä tiedä sijaintia? Emme ehkä edes saa lisätä uutta työntekijää, jos Paikka attribuutti ei salli NULL-arvoja. Täydellinen riippuvuus ei kuitenkaan ole koko kuva normalisoinnin suhteen. Sinun on varmistettava, että tietokanta on kolmannessa normaalimuodossa (3NF).

Por Markus