Multivalued Dependency in Databases

Innholdsfortegnelse:

Multivalued Dependency in Databases
Multivalued Dependency in Databases
Anonim

I en relasjonsdatabase oppstår en avhengighet når informasjonen som er lagret i den samme databasetabellen, unikt bestemmer annen informasjon som er lagret i samme tabell. En avhengighet med flere verdier oppstår når tilstedeværelsen av én eller flere rader i en tabell antyder tilstedeværelsen av én eller flere andre rader i den samme tabellen. Sagt på en annen måte, to attributter (eller kolonner) i en tabell er uavhengige av hverandre, men begge avhenger av en tredje attributt.

Image
Image

En avhengighet med flere verdier forhindrer normaliseringsstandarden fjerde normalform. Relasjonsdatabaser følger fem normale former som representerer retningslinjer for postdesign. De forhindrer oppdateringsavvik og inkonsekvenser i dataene. Den fjerde normalformen omhandler mange-til-en-relasjoner i en database.

Functional Dependency vs. Multivalued Dependency

For å forstå en avhengighet med flere verdier, er det nyttig å gå tilbake til hva en funksjonell avhengighet er.

Hvis et attributt X unikt bestemmer en attributt Y, så er Y funksjonelt avhengig av X. Dette skrives som X -> Y. For eksempel, i Studenttabellen nedenfor, bestemmer Student_Name Major:

Student_Name Major
Ravi kunsthistorie
Beth Chemistry

Denne funksjonelle avhengigheten kan skrives: Student_Name -> Major. Hvert Student_Name bestemmer nøyaktig én major og ikke flere.

Hvis du vil at databasen også skal spore idrettene disse elevene tar, tror du kanskje at den enkleste måten å gjøre dette på er å legge til en ny kolonne med tittelen Sport:

Student_Name Major Sport
Ravi kunsthistorie Fotball
Ravi kunsthistorie Volleyball
Ravi kunsthistorie Tennis
Beth Chemistry Tennis
Beth Chemistry Fotball

Problemet her er at både Ravi og Beth driver med flere idretter. Det er nødvendig å legge til en ny rad for hver ekstra sport.

Denne tabellen har introdusert en avhengighet med flere verdier fordi hovedfaget og sporten er uavhengige av hverandre, men begge er avhengige av studenten. Dette er et enkelt eksempel og lett identifiserbart, men en avhengighet av flere verdier kan bli et problem i en stor, kompleks database.

En avhengighet med flere verdier er skrevet X ->-> Y. I dette tilfellet:

Student_Name ->-> Major

Student_Name ->- > Sport

Dette leses som "Student_Name multidetermines Major" og "Student_Name multidetermines Sport."

En avhengighet med flere verdier krever alltid minst tre attributter fordi den består av minst to attributter som er avhengige av en tredje.

Multivalued Dependency and Normalization

En tabell med en avhengighet med flere verdier bryter med normaliseringsstandarden for fjerde normalform fordi den skaper unødvendige redundanser og kan bidra til inkonsistente data. For å bringe dette opp til 4NF, er det nødvendig å dele denne informasjonen inn i to tabeller.

Tabellen nedenfor har nå en funksjonell avhengighet av Student_Name -> Major, og ingen avhengigheter med flere verdier:

Student_Name Major
Ravi kunsthistorie
Ravi kunsthistorie
Ravi kunsthistorie
Beth Chemistry
Beth Chemistry

Mens denne tabellen også har en enkelt funksjonell avhengighet av Student_Name -> Sport:

Student_Name Sport
Ravi Fotball
Ravi Volleyball
Ravi Tennis
Beth Tennis
Beth Fotball

Normalisering oppnås ofte ved å forenkle komplekse tabeller slik at de inneholder informasjon relatert til en enkelt idé eller et tema i stedet for å prøve å få en enkelt tabell til å inneholde for mye uensartet informasjon.