Multivalued Dependency in Databases

Indholdsfortegnelse:

Multivalued Dependency in Databases
Multivalued Dependency in Databases
Anonim

I en relationsdatabase opstår der en afhængighed, når informationen, der er gemt i den samme databasetabel, entydigt bestemmer anden information, der er gemt i den samme tabel. En afhængighed med flere værdier opstår, når tilstedeværelsen af en eller flere rækker i en tabel antyder tilstedeværelsen af en eller flere andre rækker i den samme tabel. Sagt på en anden måde er to attributter (eller kolonner) i en tabel uafhængige af hinanden, men begge afhænger af en tredje attribut.

Image
Image

En afhængighed med flere værdier forhindrer normaliseringsstandardens fjerde normalform. Relationelle databaser følger fem normale former, der repræsenterer retningslinjer for postdesign. De forhindrer opdateringsanomalier og uoverensstemmelser i dataene. Den fjerde normalform omhandler mange-til-en-relationer i en database.

Functional Dependency vs. Multivalued Dependency

For at forstå en afhængighed med flere værdier er det nyttigt at gense, hvad en funktionel afhængighed er.

Hvis en attribut X entydigt bestemmer en attribut Y, så er Y funktionelt afhængig af X. Dette skrives som X -> Y. For eksempel, i Elev-tabellen nedenfor, bestemmer Student_Name Major:

Student_Name Major
Ravi Kunsthistorie
Beth Kemi

Denne funktionelle afhængighed kan skrives: Student_Name -> Major. Hvert Student_Name bestemmer nøjagtigt én major og ikke mere.

Hvis du ønsker, at databasen også skal spore de sportsgrene, disse elever dyrker, tror du måske, at den nemmeste måde at gøre dette på er blot at tilføje endnu en kolonne med titlen Sport:

Student_Name Major Sport
Ravi Kunsthistorie Fodbold
Ravi Kunsthistorie Volleyball
Ravi Kunsthistorie Tennis
Beth Kemi Tennis
Beth Kemi Fodbold

Problemet her er, at både Ravi og Beth dyrker flere sportsgrene. Det er nødvendigt at tilføje en ny række for hver yderligere sport.

Denne tabel har introduceret en afhængighed med flere værdier, fordi hovedfaget og sporten er uafhængige af hinanden, men begge afhænger af eleven. Dette er et simpelt eksempel og let identificerbart, men en afhængighed af flere værdier kan blive et problem i en stor, kompleks database.

En afhængighed med flere værdier skrives X ->-> Y. I dette tilfælde:

Student_Name ->-> Major

Student_Name ->- > Sport

Dette læses som "Student_Name multidetermines Major" og "Student_Name multidetermines Sport."

En afhængighed med flere værdier kræver altid mindst tre attributter, fordi den består af mindst to attributter, der er afhængige af en tredje.

Multivalued Dependency and Normalization

En tabel med en afhængighed med flere værdier overtræder normaliseringsstandarden for fjerde normalform, fordi den skaber unødvendige redundanser og kan bidrage til inkonsistente data. For at bringe dette op til 4NF, er det nødvendigt at opdele disse oplysninger i to tabeller.

Tabellen nedenfor har nu en funktionel afhængighed af Student_Name -> Major, og ingen afhængigheder med flere værdier:

Student_Name Major
Ravi Kunsthistorie
Ravi Kunsthistorie
Ravi Kunsthistorie
Beth Kemi
Beth Kemi

Mens denne tabel også har en enkelt funktionel afhængighed af Student_Name -> Sport:

Student_Name Sport
Ravi Fodbold
Ravi Volleyball
Ravi Tennis
Beth Tennis
Beth Fodbold

Normalisering opnås ofte ved at forenkle komplekse tabeller, så de indeholder information relateret til en enkelt idé eller et enkelt tema i stedet for at forsøge at få en enkelt tabel til at indeholde for meget forskellig information.