Multivalued Dependency in Databases

Innehållsförteckning:

Multivalued Dependency in Databases
Multivalued Dependency in Databases
Anonim

I en relationsdatabas uppstår ett beroende när informationen som lagras i samma databastabell unikt bestämmer annan information som lagras i samma tabell. Ett beroende med flera värden uppstår när närvaron av en eller flera rader i en tabell antyder närvaron av en eller flera andra rader i samma tabell. Med andra ord är två attribut (eller kolumner) i en tabell oberoende av varandra, men båda beror på ett tredje attribut.

Image
Image

Ett beroende med flera värden förhindrar normaliseringsstandardens fjärde normalform. Relationsdatabaser följer fem normala former som representerar riktlinjer för postdesign. De förhindrar uppdateringsavvikelser och inkonsekvenser i data. Den fjärde normalformen handlar om många-till-en-relationer i en databas.

Functional Dependency vs. Multivalued Dependency

För att förstå ett beroende med flera värden är det bra att se över vad ett funktionellt beroende är.

Om ett attribut X unikt bestämmer ett attribut Y, är Y funktionellt beroende av X. Detta skrivs som X -> Y. Till exempel, i tabellen Studenter nedan, bestämmer Student_Name Major:

Student_Name Major
Ravi Konsthistoria
Beth Kemi

Detta funktionella beroende kan skrivas: Student_Name -> Major. Varje Student_Name bestämmer exakt en major och inte fler.

Om du vill att databasen också ska spåra sporterna dessa elever ägnar sig åt, kanske du tror att det enklaste sättet att göra detta är att bara lägga till en annan kolumn med titeln Sport:

Student_Name Major Sport
Ravi Konsthistoria Fotboll
Ravi Konsthistoria Volleyboll
Ravi Konsthistoria Tennis
Beth Kemi Tennis
Beth Kemi Fotboll

Problemet här är att både Ravi och Beth spelar flera sporter. Det är nödvändigt att lägga till en ny rad för varje ytterligare sport.

Den här tabellen har infört ett beroende av flera värden eftersom majoren och sporten är oberoende av varandra men båda är beroende av studenten. Detta är ett enkelt exempel och lätt identifierbart, men ett beroende av flera värden kan bli ett problem i en stor, komplex databas.

Ett beroende med flera värden skrivs X ->-> Y. I det här fallet:

Student_Name ->-> Major

Student_Name ->- > Sport

Detta läses som "Student_Name multidetermines Major" och "Student_Name multidetermines Sport."

Ett beroende med flera värden kräver alltid minst tre attribut eftersom det består av minst två attribut som är beroende av ett tredje.

Multivalued Dependency and Normalization

En tabell med ett beroende av flera värden bryter mot normaliseringsstandarden för fjärde normalformen eftersom den skapar onödiga redundanser och kan bidra till inkonsekventa data. För att få upp detta till 4NF är det nödvändigt att dela upp denna information i två tabeller.

Tabellen nedan har nu ett funktionellt beroende av Student_Name -> Major, och inga flervärdiga beroenden:

Student_Name Major
Ravi Konsthistoria
Ravi Konsthistoria
Ravi Konsthistoria
Beth Kemi
Beth Kemi

Även om denna tabell också har ett enda funktionellt beroende av Student_Name -> Sport:

Student_Name Sport
Ravi Fotboll
Ravi Volleyboll
Ravi Tennis
Beth Tennis
Beth Fotboll

Normalisering åstadkoms ofta genom att förenkla komplexa tabeller så att de innehåller information relaterad till en enskild idé eller ett tema snarare än att försöka få en enda tabell att innehålla för mycket olikartad information.