Funktionel afhængighed i DBMS: Hvad er, typer og eksempler
Hvad er funktionel afhængighed?
Funktionel afhængighed (FD) er en begrænsning, der bestemmer forholdet mellem en attribut og en anden attribut i et Database Management System (DBMS). Funktionel afhængighed hjælper med at opretholde kvaliteten af data i databasen. Det spiller en afgørende rolle at finde forskellen mellem godt og dårligt databasedesign.
En funktionel afhængighed er angivet med en pil "→". Den funktionelle afhængighed af X på Y er repræsenteret ved X → Y. Lad os forstå Funktionel afhængighed i DBMS med et eksempel.
Eksempel:
| Medarbejdernummer | Ansattes navn | Løn | By |
|---|---|---|---|
| 1 | Dana | 50000 | San Francisco |
| 2 | Francis | 38000 | London |
| 3 | Andrew | 25000 | Tokyo |
I dette eksempel, hvis vi kender værdien af medarbejdernummer, kan vi få medarbejdernavn, by, løn osv. Hermed kan vi sige, at byen, medarbejdernavnet og lønnen er funktionelt afhængig af medarbejdernummer.
Nøglebegreber
Her er nogle nøgleudtryk for funktionel afhængighed i databasen:
| Vigtige vilkår | Produktbeskrivelse |
|---|---|
| Axiom | Aksiomer er et sæt slutningsregler, der bruges til at udlede alle funktionelle afhængigheder på en relationel database. |
| nedbrydning | Det er en regel, der foreslår, at hvis du har en tabel, der ser ud til at indeholde to entiteter, som er bestemt af den samme primærnøgle, så bør du overveje at dele dem op i to forskellige tabeller. |
| Afhængig | Det vises på højre side af det funktionelle afhængighedsdiagram. |
| determinanten | Det vises i venstre side af det funktionelle afhængighedsdiagram. |
| Union | Det antyder, at hvis to tabeller er adskilte, og PK er den samme, bør du overveje at sætte dem. sammen |
Regler for funktionelle afhængigheder
Nedenfor er de tre vigtigste regler for funktionel afhængighed i databasen:
- Refleksiv regel –. Hvis X er et sæt attributter, og Y er_delmængde_af X, har X værdien Y.
- Augmentation-regel: Når x -> y gælder, og c er attributsæt, så gælder ac -> bc også. Det er at tilføje attributter, som ikke ændrer de grundlæggende afhængigheder.
- Transitivitetsregel: Denne regel minder meget om den transitive regel i algebra, hvis x -> y gælder og y -> z gælder, så gælder x -> z også. X -> y kaldes som funktionelt, der bestemmer y.
Typer af funktionelle afhængigheder i DBMS
Der er hovedsageligt fire typer af funktionel afhængighed i DBMS. Følgende er typerne af funktionelle afhængigheder i DBMS:
- Flerværdiafhængig afhængighed
- Triviel funktionel afhængighed
- Ikke-triviel funktionel afhængighed
- Transitiv afhængighed
Flerværdiafhængig afhængighed i DBMS
Multiværdiafhængighed opstår i den situation, hvor der er flere uafhængige multiværdiattributter i en enkelt tabel. En afhængighed med flere værdier er en fuldstændig begrænsning mellem to sæt attributter i en relation. Det kræver, at visse tupler er til stede i en relation. Overvej følgende eksempel på afhængighed med flere værdier for at forstå.
Eksempel:
| Bilmodel | Maf_år | Farve |
|---|---|---|
| H001 | 2017 | Metallic |
| H001 | 2017 | Grøn |
| H005 | 2018 | Metallic |
| H005 | 2018 | Blå |
| H010 | 2015 | Metallic |
| H033 | 2012 | Grå |
I dette eksempel er maf_år og farve uafhængige af hinanden, men afhængige af bilmodel. I dette eksempel siges disse to kolonner at være multiværdiafhængige af car_model.
Denne afhængighed kan repræsenteres således:
bilmodel -> maf_år
bilmodel-> farve
Triviel funktionel afhængighed i DBMS
Den trivielle afhængighed er et sæt attributter, som kaldes en triviel, hvis sættet af attributter er inkluderet i den attribut.
Så X -> Y er en triviel funktionel afhængighed, hvis Y er en delmængde af X. Lad os forstå med et Trivial Functional Dependency Eksempel.
For eksempel:
| Emp_id | Emp_name |
|---|---|
| AS555 | Harry |
| AS811 | George |
| AS999 | Kevin |
Overvej denne tabel med to kolonner Emp_id og Emp_name.
{Emp_id, Emp_name} -> Emp_id er en triviel funktionel afhængighed, da Emp_id er en delmængde af {Emp_id,Emp_name}.
Ikke-triviel funktionel afhængighed i DBMS
Funktionel afhængighed, som også er kendt som en ikke-triviel afhængighed, opstår, når A->B gælder, hvor B ikke er en delmængde af A. I en relation, hvis attribut B ikke er en delmængde af attribut A, så betragtes den som en ikke-triviel afhængighed.
| Firmanavn | CEO | Alder |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| Apple | Tim Cook | 57 |
Eksempel:
(Virksomhed} -> {CEO} (hvis vi kender virksomheden, kender vi navnet på den administrerende direktør)
Men CEO er ikke en undergruppe af virksomheden, og derfor er det ikke-triviel funktionel afhængighed.
Transitiv afhængighed i DBMS
En transitiv afhængighed er en type funktionel afhængighed, der sker, når "t" indirekte dannes af to funktionelle afhængigheder. Lad os forstå med følgende eksempel på transitiv afhængighed.
Eksempel:
| Firmanavn | CEO | Alder |
|---|---|---|
| Microsoft | Satya Nadella | 51 |
| Sundar Pichai | 46 | |
| Alibaba | Jack Ma | 54 |
{Company} -> {CEO} (hvis vi kender virksomheden, kender vi dens CEO's navn)
{CEO } -> {Age} Hvis vi kender den administrerende direktør, kender vi alderen
Derfor ifølge reglen om reglen om transitiv afhængighed:
{Virksomhed} -> {Alder} burde holde, det giver mening, for hvis vi kender firmanavnet, kan vi kende hans alder.
Bemærk: Du skal huske, at transitiv afhængighed kun kan forekomme i en relation af tre eller flere attributter.
Hvad er normalisering?
Normalisering er en metode til at organisere dataene i databasen, som hjælper dig med at undgå dataredundans, indsættelse, opdatering og sletning. Det er en proces med at analysere relationsskemaerne baseret på deres forskellige funktionelle afhængigheder og primærnøgle.
Normalisering er iboende for relationel databaseteori. Det kan have den effekt, at de samme data duplikeres i databasen, hvilket kan resultere i oprettelse af yderligere tabeller.
Fordele ved funktionel afhængighed
- Funktionel afhængighed undgår dataredundans. Derfor gentages samme data ikke flere steder i det database
- Det hjælper dig med at opretholde kvaliteten af data i databasen
- Det hjælper dig med at definere betydninger og begrænsninger af databaser
- Det hjælper dig med at identificere dårlige designs
- Det hjælper dig med at finde fakta om databasedesignet
Resumé
- Funktionel afhængighed er, når en egenskab bestemmer en anden egenskab i en DBMS system.
- Aksiom, Dekomponering, Afhængig, Determinant, Union er nøglebegreber for funktionel afhængighed
- Fire typer funktionel afhængighed er 1) Multiværdi 2) Triviel 3) Ikke-triviel 4) Transitiv
- Multiværdiafhængighed opstår i den situation, hvor der er flere uafhængige multiværdiattributter i en enkelt tabel
- Den trivielle afhængighed opstår, når et sæt attributter, der kaldes en triviel, hvis sættet af attributter er inkluderet i den attribut
- Ikke-triviel afhængighed opstår, når A->B gælder, hvor B ikke er en delmængde af A
- En transitiv er en type funktionel afhængighed, der sker, når den indirekte er dannet af to funktionelle afhængigheder
- Normalisering er en metode til at organisere dataene i databasen, som hjælper dig med at undgå dataredundans
