I en relationsdatabas uppstår ett beroende när informationen som lagras i samma databastabell bestämmer unikt annan information som lagras i samma tabell. Ett flervärderat beroende uppträder när närvaron av en eller flera rader i ett bord innebär att en eller flera andra rader finns i samma tabell. Sätt på ett annat sätt, två attribut (eller kolumner) i ett bord är oberoende av varandra, men båda beror på ett tredje attribut.
Ett multivalent beroendet förhindrar normaliseringsstandarden fjärde normalform (4NF). Relationsdatabaser följer fem normala former som utgör riktlinjer för rekorddesign. De förhindrar uppdateringsavvikelser och inkonsekvenser i data. Den fjärde vanliga formen handlar om många-till-en-relationer i en databas.
Funktionell beroende beroende på multivalent beroende
För att förstå ett multivalent beroende beror det på att det är ett funktionellt beroende.
Om ett attribut X bestämmer unikt ett attribut Y, är Y funktionellt beroende av X. Detta är skrivet som X -> Y. Till exempel i Student-tabellen nedan bestämmer Student_Name Major:
Elevs namn | Större |
---|---|
Ravi | Konsthistoria |
Beth | Kemi |
Detta funktionella beroende kan skrivas: Student_Name -> Major . Varje Student_Name bestämmer exakt en Major och inte mer. Om du vill att databasen också ska spåra de sporter som dessa studenter tar, kanske du tror att det enklaste sättet att göra detta är att bara lägga till en annan kolumn med titeln Sport: 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 extra sport. Denna tabell har infört ett multivalent beroende eftersom huvudrollen och sporten är oberoende av varandra, men båda beror på studenten. Detta är ett enkelt exempel och lätt identifierbart, men ett multivalentberoende kan bli ett problem i en stor, komplex databas. Ett multivalent beroende beror X -> -> Y. I det här fallet: Elevs namn ->-> StörreElevs namn->-> Sport
Detta läses som "Student_Name multidetermines Major" och "Student_Name multidetermines Sport." Ett multivalent beroende kräver alltid minst tre attribut eftersom det består av minst två attribut som är beroende av en tredjedel. En tabell med ett multivalent beroende bryter mot normaliseringsstandarden för Fyra Normala Form (4NK) eftersom det skapar onödiga uppsägningar och kan bidra till inkonsekventa data. För att få upp till 4NF är det nödvändigt att bryta denna information i två tabeller. Tabellen nedan har nu ett funktionellt beroende av Student_Name -> Major, och inga flervaluta beroenden: Medan denna tabell också har ett enda funktionellt beroende av Student_Name -> Sport: Det är uppenbart att normalisering ofta hanteras genom att förenkla komplexa tabeller så att de innehåller information relaterad till en enda idé eller ett tema istället för att försöka skapa ett enda bord innehåller för mycket olika uppgifter.Elevs namn Större Sport Ravi Konsthistoria Fotboll Ravi Konsthistoria Volleyboll Ravi Konsthistoria Tennis Beth Kemi Tennis Beth Kemi Fotboll Multivalgerad beroende och normalisering
Elevs namn Större Ravi Konsthistoria Ravi Konsthistoria Ravi Konsthistoria Beth Kemi Beth Kemi Elevs namn Sport Ravi Fotboll Ravi Volleyboll Ravi Tennis Beth Tennis Beth Fotboll