Funktionel afhængighed i DBMS: Typer med eksempler

⚡ Smart opsummering

Funktionel afhængighed er en begrænsning, der bestemmer, hvordan en attribut relaterer sig til en anden i et databasesystem. Den understøtter normalisering ved at identificere determinanter og afhængige, og den klassificeres i flerværdi-, trivielle, ikke-trivielle og transitive afhængigheder.

  • ➡️ Kerneidé: I X → Y fastsætter determinanten X værdien af ​​den afhængige Y, skrevet med en pil.
  • 🏷️ Nøglebegreber: Determinant, afhængig, aksiom, dekomposition og forening beskriver, hvordan afhængigheder navngives og manipuleres.
  • 📐 Armstrongs aksiomer: Refleksivitet, augmentationen og transitiviteten udleder enhver afhængighed, som et sæt logisk set implicerer.
  • 🔀 Fire typer: Flerværdifulde, trivielle, ikke-trivielle og transitive afhængigheder beskriver hver især et distinkt attributforhold.
  • 🧹 Normaliseringslink: Afhængigheder driver normalisering, hvilket fjerner redundans og opdateringsanomalier.
  • 🔑 Lukning: Attributlukningen afslører kandidatnøgler og om en afhængighed gælder.
  • Fordel: Gode ​​afhængigheder signalerer godt design og adskiller kvalitetsskemaer fra dårlige.

Funktionel afhængighed i DBMS

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 databasestyringssystem (DBMS). Funktionel afhængighed hjælper med at opretholde datakvaliteten i databasen. Den spiller en afgørende rolle i at finde forskellen mellem godt og dårligt databasedesign.

En funktionel afhængighed er angivet med en pil "→". Den funktionelle afhængighed af Y på X er repræsenteret ved X → Y. Lad os forstå den funktionelle afhængighed 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. Dermed kan vi sige, at by, medarbejdernavn og løn funktionelt er afhængige af medarbejdernummer.

Vigtige vilkår

Her er nogle nøglebegreber for funktionel afhængighed i en database:

Vigtige vilkår Beskrivelse
Axiom Aksiomer er et sæt af inferensregler, der bruges til at udlede alle funktionelle afhængigheder i en relationsdatabase.
nedbrydning En regel, der antyder, at hvis du har en tabel, der tilsyneladende indeholder to enheder bestemt af den samme primærnøgle, bør du overveje at opdele den i to forskellige tabeller.
Afhængig Den vises i højre side af diagrammet over funktionel afhængighed.
determinanten Den vises i venstre side af diagrammet over funktionel afhængighed.
Union Det antyder, at hvis to tabeller er separate, og primærnøglen er den samme, bør du overveje at sætte dem sammen.

Regler for funktionelle afhængigheder (Armstrongs aksiomer)

Nedenfor er de tre vigtigste regler for funktionel afhængighed i en database. De er kendt som Armstrongs aksiomer, og alle andre inferensregler kan udledes af dem.

  • Refleksiv regel: Hvis X er et sæt af attributter, og Y er en delmængde af X, så gælder X → Y.
  • Forøgelsesregel: Når X → Y gælder, og C er en attributmængde, gælder XC → YC også. Tilføjelse af attributter ændrer ikke den grundlæggende afhængighed.
  • Transitivitetsregel: Svarende til den transitive regel i algebra: hvis X → Y gælder og Y → Z gælder, så gælder X → Z også.

Tre yderligere regler er afledt af disse og anvendes konstant i praksis:

  • Unionsregel: Hvis X → Y og X → Z, så er X → YZ.
  • Nedbrydningsregel: Hvis X → YZ, så er X → Y og X → Z.
  • Pseudo-transitivitetsregel: Hvis X → Y og WY → Z, så er WX → Z.

Gentagen anvendelse af disse regler på et sæt af afhængigheder producerer dens lukning, det komplette sæt af afhængigheder, der logisk følger. Lukningen af ​​et attributsæt er også måden, hvorpå kandidatnøgler findes, hvilket er direkte forbundet med studiet af DBMS-nøgler.

Typer af funktionelle afhængigheder i DBMS

Der er primært fire typer 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

Flerværdiafhængighed opstår i en situation, hvor der er flere uafhængige flerværdiattributter i en enkelt tabel. En flerværdiafhængighed er en fuldstændig begrænsning mellem to sæt attributter i en relation, der kræver, at bestemte tupler er til stede. Overvej følgende eksempel.

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_year og Color uafhængige af hinanden, men afhængige af Car_model. Disse to kolonner siges at være flerværdiafhængige af Car_model. Dette repræsenteres som:

bilmodel → mav_år

bilmodel → farve

Triviel funktionel afhængighed i DBMS

En triviel afhængighed er et sæt af attributter, der kaldes triviel, hvis sættet af attributter er inkluderet i den pågældende attribut. Så X → Y er en triviel funktionel afhængighed, hvis Y er en delmængde af X. Overvej eksemplet nedenfor.

Emp_id Emp_name
AS555 Harry
AS811 George
AS999 Kevin

Betragt 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

En ikke-triviel afhængighed opstår, når A → B gælder, og B ikke er en delmængde af A. Hvis attribut B ikke er en delmængde af attribut A, betragtes afhængigheden som ikke-triviel.

Firmanavn CEO Alder
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Apple Tim Cook 57

Eksempel:

{Firma} → {Administrerende direktør} (hvis vi kender virksomheden, kender vi også navnet på administrerende direktør). Men administrerende direktør er ikke en delmængde af Firma, og derfor er det en ikke-triviel funktionel afhængighed.

Transitiv afhængighed i DBMS

En transitiv afhængighed er en type funktionel afhængighed, der opstår, når en attribut indirekte bestemmes af to funktionelle afhængigheder. Overvej eksemplet nedenfor.

Firmanavn CEO Alder
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Alibaba Jack Ma 54

{Virksomhed} → {Administrerende direktør} (hvis vi kender virksomheden, kender vi også dens administrerende direktørs navn).

{Administrerende direktør} → {Alder} (hvis vi kender administrerende direktør, kender vi alderen).

Derfor, ifølge reglen om transitiv afhængighed, bør {Company} → {Age} gælde, hvilket giver mening, fordi hvis vi kender virksomhedens navn, kan vi finde alderen.

Bemærk: Transitiv afhængighed kan kun forekomme i en relation af tre eller flere attributter.

Hvad er normalisering?

Normalisering er en metode til at organisere data i en database, der hjælper dig med at undgå dataredundans og anomalier ved indsættelse, opdatering og sletning. Det er en proces, hvor relationsskemaer analyseres baseret på deres forskellige funktionelle afhængigheder og primære nøgler.

Normalisering er en integreret del af relationel databaseteori. Det kan have den effekt, at data opdeles på tværs af yderligere tabeller, så hver fakta gemmes én gang. Hele processen er dækket i vejledningen til database normalisering, som bygger direkte på ovenstående afhængighedstyper.

Fordele ved funktionel afhængighed

  • Funktionel afhængighed undgår dataredundans, så de samme data ikke gentages flere steder i database.
  • Det hjælper dig med at opretholde datakvaliteten i databasen.
  • Det hjælper dig med at definere betydningerne og begrænsningerne i databaser.
  • Det hjælper dig med at identificere dårlige designs.
  • Det hjælper dig med at finde fakta vedrørende databasedesignet.

Ofte Stillede Spørgsmål

Determinanten er attributten til venstre for pilen, der fastsætter værdien. Den afhængige er attributten til højre, hvis værdi bestemmes. I X → Y bestemmer X Y.

En funktionel afhængighed fastsætter en enkelt værdi for den afhængige. En flerværdiafhængighed tillader et sæt af uafhængige værdier, hvilket er grunden til, at den har brug for sin egen attribut og fører til fjerde normalform.

Beregn lukningen af ​​et attributsæt ved hjælp af afhængighederne. Hvis lukningen inkluderer alle attributter i relationen, er det sæt en supernøgle; det minimale sæt af denne type er en kandidatnøgle.

Ja. Algoritmer til registrering af afhængigheder, nogle AI-assisterede, scanner et datasæt og foreslår potentielle afhængigheder. En designer skal bekræfte dem, fordi et mønster, der er sandt i eksempeldata, muligvis ikke gælder som regel.

Den gemmer en kendsgerning om en ikke-nøgleattribut, så opdatering af den risikerer anomalier. Fjernelse af transitive afhængigheder er præcis, hvad tredje normalform kræver, hvilket holder hver kendsgerning på ét sted.

Opsummer dette indlæg med: