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
Google 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
Google 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

Opsummer dette indlæg med: