Toiminnallinen riippuvuus tietokannan hallinnan järjestelmässä: tyypit esimerkkeineen
⚡ Älykäs yhteenveto
Toiminnallinen riippuvuus on rajoite, joka määrittää, miten yksi ominaisuus liittyy toiseen tietokannan hallintajärjestelmässä. Se tukee normalisointia tunnistamalla determinantit ja riippuvaiset, ja se luokitellaan moniarvoisiin, triviaaleihin, ei-triviaaleihin ja transitiivisiin riippuvuuksiin.

Mikä on toiminnallinen riippuvuus?
Toiminnallinen riippuvuus (FD) on rajoite, joka määrittää yhden attribuutin suhteen toiseen attribuuttiin tietokannan hallintajärjestelmässä (DBMS). Toiminnallinen riippuvuus auttaa ylläpitämään tietokannan datan laatua. Sillä on keskeinen rooli hyvän ja huonon tietokantasuunnittelun välisen eron löytämisessä.
Funktionaalista riippuvuutta merkitään nuolella “→”. Y:n funktionaalista riippuvuutta X:stä edustaa X → Y. Ymmärretään funktionaalinen riippuvuus esimerkin avulla.
Esimerkiksi:
| Työntekijän numero | työntekijän nimi | Palkkaus | Kaupunki |
|---|---|---|---|
| 1 | Dana | 50000 | San Francisco |
| 2 | Francis | 38000 | Lontoo |
| 3 | Andrew | 25000 | Tokio |
Tässä esimerkissä, jos tiedämme työntekijänumeron arvon, voimme saada työntekijän nimen, kaupungin, palkan ja niin edelleen. Tällä tavoin voimme sanoa, että kaupunki, työntekijän nimi ja palkka ovat toiminnallisesti riippuvaisia työntekijänumerosta.
Keskeiset ehdot
Tässä on joitakin keskeisiä termejä tietokannan toiminnalliselle riippuvuudelle:
| Keskeiset ehdot | Tuotetiedot |
|---|---|
| Axiom | Aksioomat ovat joukko päättelysääntöjä, joita käytetään päättelemään kaikki relaatiotietokannan toiminnalliset riippuvuudet. |
| hajoaminen | Sääntö, joka ehdottaa, että jos sinulla on taulukko, joka näyttää sisältävän kaksi saman perusavaimen määrittämää entiteettiä, sinun kannattaa harkita sen jakamista kahdeksi eri taulukoksi. |
| riippuvainen | Se näkyy funktionaalisen riippuvuuden kaavion oikealla puolella. |
| määräävä tekijä | Se näkyy funktionaalisen riippuvuuden kaavion vasemmalla puolella. |
| Liitto | Se ehdottaa, että jos kaksi taulukkoa ovat erillisiä ja niillä on sama ensisijainen avain, kannattaa harkita niiden yhdistämistä. |
Funktionaalisten riippuvuuksien säännöt (Armstrongin aksioomat)
Alla on kolme tärkeintä sääntöä tietokannan funktionaaliselle riippuvuudelle. Ne tunnetaan Armstrongin aksioomina, ja niistä voidaan johtaa kaikki muut päättelysäännöt.
- Refleksiivinen sääntö: Jos X on joukko attribuutteja ja Y on X:n osajoukko, niin X → Y pätee.
- Augmentaatiosääntö: Kun X → Y pätee ja C on attribuuttijoukko, niin myös XC → YC pätee. Attribuuttien lisääminen ei muuta perusriippuvuutta.
- Transitiivisuussääntö: Samanlainen kuin algebran transitiivinen sääntö: jos X → Y pätee ja Y → Z pätee, niin X → Z pätee myös.
Näistä on johdettu kolme muuta sääntöä, joita käytetään jatkuvasti käytännössä:
- Unionin sääntö: jos X → Y ja X → Z, niin X → YZ.
- Hajoamissääntö: jos X → YZ, niin X → Y ja X → Z.
- Pseudotransitiivisuussääntö: jos X → Y ja WY → Z, niin WX → Z.
Näiden sääntöjen toistuva soveltaminen riippuvuusjoukkoon tuottaa sen sulkeminen, täydellinen joukko riippuvuuksia, jotka loogisesti seuraavat. Attribuuttijoukon sulkeuma on myös tapa, jolla kandidaattiavaimet löydetään, mikä liittyy suoraan tutkimukseen DBMS-avaimet.
Toiminnallisten riippuvuuksien tyypit DBMS:ssä
Tietokannan hallintajärjestelmissä on pääasiassa neljä toiminnallista riippuvuustyyppiä:
- Moniarvoinen riippuvuus
- Triviaali toiminnallinen riippuvuus
- Ei-triviaali toiminnallinen riippuvuus
- Transitiivinen riippuvuus
Moniarvoinen riippuvuus DBMS:ssä
Moniarvoinen riippuvuus esiintyy tilanteessa, jossa yhdessä taulukossa on useita toisistaan riippumattomia moniarvoisia attribuutteja. Moniarvoinen riippuvuus on täydellinen rajoite kahden attribuuttijoukon välillä relaatiossa, joka edellyttää tiettyjen tuplejen läsnäoloa. Tarkastellaan seuraavaa esimerkkiä.
Esimerkiksi:
| Automalli | Maf_year | Väri |
|---|---|---|
| H001 | 2017 | Metallinen |
| H001 | 2017 | Vihreä |
| H005 | 2018 | Metallinen |
| H005 | 2018 | Sininen |
| H010 | 2015 | Metallinen |
| H033 | 2012 | Harmaa |
Tässä esimerkissä Maf_year ja Color ovat toisistaan riippumattomia, mutta riippuvaisia Car_model-arvosta. Näiden kahden sarakkeen sanotaan olevan moniarvoisia ja riippuvaisia Car_model-arvosta. Tämä esitetään seuraavasti:
auton_malli → valmistusvuosi
auton_malli → väri
Triviaali toiminnallinen riippuvuus DBMS:ssä
Triviaali riippuvuus on joukko attribuutteja, joita kutsutaan triviaaliksi, jos attribuuttijoukko sisältyy kyseiseen attribuuttiin. Niinpä X → Y on triviaali funktionaalinen riippuvuus, jos Y on X:n osajoukko. Tarkastellaan alla olevaa esimerkkiä.
| Emp_id | Emp_name |
|---|---|
| AS555 | Ahdistaa |
| AS811 | Yrjö |
| AS999 | Kevin |
Tarkastellaan tätä taulukkoa, jossa on kaksi saraketta, Työntekijän_id ja Työntekijän_nimi. {Työntekijän_id, Työntekijän_nimi} → Työntekijän_id on triviaali funktionaalinen riippuvuus, koska Työntekijän_id on osajoukko {Työntekijän_id:stä, Työntekijän_nimestä}
Ei-triviaali toiminnallinen riippuvuus tietokannan hallinnan järjestelmässä
Ei-triviaali riippuvuus syntyy, kun A → B pätee ja B ei ole A:n osajoukko. Jos attribuutti B ei ole A:n osajoukko, riippuvuutta pidetään ei-triviaalina.
| Yritys | CEO | Ikä |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| omena | Tim Cook | 57 |
Esimerkiksi:
{Yritys} → {Toimitusjohtaja} (jos tiedämme Yrityksen, tiedämme myös toimitusjohtajan nimen). Mutta toimitusjohtaja ei ole Yrityksen osajoukko, ja siksi se on ei-triviaali toiminnallinen riippuvuus.
Transitiivinen riippuvuus DBMS:ssä
Transitiivinen riippuvuus on funktionaalisen riippuvuuden tyyppi, joka tapahtuu, kun kaksi funktionaalista riippuvuutta määrää attribuutin epäsuorasti. Tarkastellaan alla olevaa esimerkkiä.
| Yritys | CEO | Ikä |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| Alibaba | Jack Ma | 54 |
{Yritys} → {Toimitusjohtaja} (jos tunnemme yrityksen, tiedämme myös sen toimitusjohtajan nimen).
{Toimitusjohtaja} → {Ikä} (jos tunnemme toimitusjohtajan, tiedämme myös hänen ikänsä).
Siksi transitiivisen riippuvuuden säännön nojalla {Yritys} → {Ikä} pitäisi päteä, mikä on järkevää, koska jos tiedämme yrityksen nimen, voimme löytää sen iän.
Huomautus: transitiivinen riippuvuus voi esiintyä vain kolmen tai useamman attribuutin välisessä suhteessa.
Mitä on normalisointi?
Normalisointi on menetelmä, jolla järjestetään tietoja tietokannassa ja joka auttaa välttämään tietojen redundanssia sekä lisäys-, päivitys- ja poistopoikkeavuuksia. Se on prosessi, jossa analysoidaan relaatiokaavioita niiden erilaisten toiminnallisten riippuvuuksien ja ensisijaisen avaimen perusteella.
Normalisointi on relaatiotietokantateorian ominaisuus. Se voi jakaa tiedot useampiin taulukoihin siten, että jokainen tieto tallennetaan kerran. Koko prosessi käsitellään oppaassa tietokannan normalisointi, joka perustuu suoraan yllä oleviin riippuvuustyyppeihin.
Toiminnallisen riippuvuuden edut
- Toiminnallinen riippuvuus välttää datan redundanssia, joten sama data ei toistu useissa paikoissa tietokanta.
- Se auttaa ylläpitämään tietokannan tietojen laatua.
- Se auttaa sinua määrittelemään tietokantojen merkitykset ja rajoitukset.
- Se auttaa tunnistamaan huonot suunnitteluratkaisut.
- Se auttaa sinua löytämään faktoja tietokannan suunnittelusta.
