Funksjonell avhengighet i DBMS: Hva er, typer og eksempler
Hva er funksjonell avhengighet?
Funksjonell avhengighet (FD) er en begrensning som bestemmer forholdet mellom ett attributt og et annet attributt i et Database Management System (DBMS). Funksjonell avhengighet bidrar til รฅ opprettholde kvaliteten pรฅ dataene i databasen. Det spiller en viktig rolle รฅ finne forskjellen mellom god og dรฅrlig databasedesign.
En funksjonell avhengighet er angitt med en pil "โ". Den funksjonelle avhengigheten til X av Y er representert ved X โ Y. La oss forstรฅ funksjonell avhengighet i DBMS med eksempel.
Eksempel:
| Ansatt nummer | arbeidstakers navn | Lรธnn | City |
|---|---|---|---|
| 1 | Dana | 50000 | San Fransisco |
| 2 | Francis | 38000 | London |
| 3 | Andrew | 25000 | Tokyo |
I dette eksemplet, hvis vi vet verdien av ansattnummer, kan vi fรฅ ansattnavn, by, lรธnn osv. Med dette kan vi si at byen, ansattnavn og lรธnn er funksjonelt avhengig av ansattnummer.
Nรธkkelord
Her er noen nรธkkelbegreper for funksjonell avhengighet i databasen:
| Nรธkkelord | Tekniske beskrivelser |
|---|---|
| Axiom | Aksiomer er et sett med slutningsregler som brukes til รฅ utlede alle funksjonelle avhengigheter til en relasjonsdatabase. |
| dekomponering | Det er en regel som foreslรฅr at hvis du har en tabell som ser ut til รฅ inneholde to enheter som er bestemt av samme primรฆrnรธkkel, bรธr du vurdere รฅ dele dem opp i to forskjellige tabeller. |
| Avhengig | Det vises pรฅ hรธyre side av funksjonsavhengighetsdiagrammet. |
| determinant | Det vises pรฅ venstre side av funksjonsavhengighetsdiagrammet. |
| Union | Det antyder at hvis to tabeller er separate, og PK er den samme, bรธr du vurdere รฅ sette dem. sammen |
Regler for funksjonelle avhengigheter
Nedenfor er de tre viktigste reglene for funksjonell avhengighet i databasen:
- Refleksiv regel โ. Hvis X er et sett med attributter og Y er_delsett_av X, har X verdien Y.
- Augmenteringsregel: Nรฅr x -> y gjelder, og c er attributtsett, sรฅ gjelder ogsรฅ ac -> bc. Det vil si รฅ legge til attributter som ikke endrer de grunnleggende avhengighetene.
- Transitivitetsregel: Denne regelen er veldig lik den transitive regelen i algebra hvis x -> y gjelder og y -> z gjelder, sรฅ gjelder x -> z ogsรฅ. X -> y kalles som funksjonelt som bestemmer y.
Typer funksjonelle avhengigheter i DBMS
Det er hovedsakelig fire typer funksjonell avhengighet i DBMS. Fรธlgende er typene funksjonelle avhengigheter i DBMS:
- Flerverdi avhengighet
- Triviell funksjonell avhengighet
- Ikke-triviell funksjonell avhengighet
- Transitiv avhengighet
Flerverdi avhengighet i DBMS
Avhengighet med flere verdier oppstรฅr i en situasjon der det er flere uavhengige attributter med flere verdier i en enkelt tabell. En avhengighet med flere verdier er en fullstendig begrensning mellom to sett med attributter i en relasjon. Det krever at visse tupler er tilstede i en relasjon. Tenk pรฅ fรธlgende eksempel pรฅ avhengighet med flere verdier for รฅ forstรฅ.
Eksempel:
| Bilmodell | Maf_รฅr | FARGE |
|---|---|---|
| H001 | 2017 | metallic |
| H001 | 2017 | Grรธnn |
| H005 | 2018 | metallic |
| H005 | 2018 | Blรฅ |
| H010 | 2015 | metallic |
| H033 | 2012 | Grรฅ |
I dette eksemplet er maf_รฅr og farge uavhengige av hverandre, men avhengig av bilmodell. I dette eksemplet sies disse to kolonnene รฅ vรฆre multiverdiavhengige av car_model.
Denne avhengigheten kan representeres slik:
bilmodell -> maf_รฅr
bilmodell-> farge
Triviell funksjonell avhengighet i DBMS
Den trivielle avhengigheten er et sett med attributter som kalles en trivial hvis settet med attributter er inkludert i det attributtet.
Sรฅ, X -> Y er en triviell funksjonell avhengighet hvis Y er en delmengde av X. La oss forstรฅ med et Trivial Functional Dependency Eksempel.
For eksempel:
| Emp_id | Emp_name |
|---|---|
| AS555 | Harry |
| AS811 | George |
| AS999 | Kevin |
Tenk pรฅ denne tabellen med to kolonner Emp_id og Emp_name.
{Emp_id, Emp_name} -> Emp_id er en triviell funksjonell avhengighet ettersom Emp_id er en undergruppe av {Emp_id,Emp_name}.
Ikke-triviell funksjonell avhengighet i DBMS
Funksjonell avhengighet som ogsรฅ kjent som en ikke-triviell avhengighet oppstรฅr nรฅr A->B gjelder der B ikke er en delmengde av A. I en relasjon, hvis attributt B ikke er en delmengde av attributt A, blir det betraktet som en ikke-triviell avhengighet avhengighet.
| Selskap | CEO | Alder |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| eple | Tim Cook | 57 |
Eksempel:
(Selskap} -> {CEO} (hvis vi kjenner selskapet, kjenner vi navnet pรฅ administrerende direktรธr)
Men administrerende direktรธr er ikke en undergruppe av selskapet, og derfor er det ikke-triviell funksjonell avhengighet.
Transitiv avhengighet i DBMS
En transitiv avhengighet er en type funksjonell avhengighet som skjer nรฅr "t" indirekte dannes av to funksjonelle avhengigheter. La oss forstรฅ med fรธlgende eksempel pรฅ transitiv avhengighet.
Eksempel:
| Selskap | CEO | Alder |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| Alibaba | Jack Ma | 54 |
{Company} -> {CEO} (hvis vi kjenner selskapet, vet vi navnet pรฅ konsernsjefen)
{CEO } -> {Age} Hvis vi kjenner administrerende direktรธr, kjenner vi alderen
Derfor i henhold til regelen for regel om transitiv avhengighet:
{Company} -> {Age} bรธr holde, det er fornuftig fordi hvis vi kjenner firmanavnet, kan vi vite alderen hans.
Merk: Du mรฅ huske at transitiv avhengighet bare kan forekomme i en relasjon av tre eller flere attributter.
Hva er normalisering?
Normalisering er en metode for รฅ organisere dataene i databasen som hjelper deg รฅ unngรฅ dataredundans, innsetting, oppdatering og sletting. Det er en prosess for รฅ analysere relasjonsskjemaene basert pรฅ deres forskjellige funksjonelle avhengigheter og primรฆrnรธkkel.
Normalisering er iboende til relasjonsdatabaseteori. Det kan ha effekten av รฅ duplisere de samme dataene i databasen, noe som kan resultere i opprettelse av flere tabeller.
Fordeler med funksjonell avhengighet
- Funksjonell avhengighet unngรฅr dataredundans. Derfor gjentas ikke samme data pรฅ flere steder i den database
- Det hjelper deg รฅ opprettholde kvaliteten pรฅ dataene i databasen
- Det hjelper deg med รฅ definere betydninger og begrensninger for databaser
- Det hjelper deg รฅ identifisere dรฅrlig design
- Det hjelper deg รฅ finne fakta om databasedesignet
Sammendrag
- Funksjonell avhengighet er nรฅr ett attributt bestemmer et annet attributt i en DBMS system.
- Aksiom, Dekomponering, Dependent, Determinant, Union er nรธkkelbegreper for funksjonell avhengighet
- Fire typer funksjonell avhengighet er 1) Flerverdi 2) Triviell 3) Ikke-triviell 4) Transitiv
- Avhengighet med flere verdier oppstรฅr i en situasjon der det er flere uavhengige attributter med flere verdier i en enkelt tabell
- Den trivielle avhengigheten oppstรฅr nรฅr et sett med attributter som kalles en trivial hvis settet med attributter er inkludert i det attributtet
- Ikke-triviell avhengighet oppstรฅr nรฅr A->B gjelder der B ikke er en delmengde av A
- En transitiv er en type funksjonell avhengighet som skjer nรฅr den indirekte dannes av to funksjonelle avhengigheter
- Normalisering er en metode for รฅ organisere dataene i databasen som hjelper deg รฅ unngรฅ dataredundans
