Skip to main content

Multivalgerad beroende i databaser

Naming and Writing Formulas - Multivalent Compounds (April 2025)

Naming and Writing Formulas - Multivalent Compounds (April 2025)
Anonim

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:

studenter
Elevs namnStörre
RaviKonsthistoria
BethKemi

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:

studenter
Elevs namnStörreSport
RaviKonsthistoriaFotboll
RaviKonsthistoriaVolleyboll
RaviKonsthistoriaTennis
BethKemiTennis
BethKemiFotboll

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.

Multivalgerad beroende och normalisering

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:

Studenter & Majors
Elevs namnStörre
RaviKonsthistoria
RaviKonsthistoria
RaviKonsthistoria
BethKemi
BethKemi

Medan denna tabell också har ett enda funktionellt beroende av Student_Name -> Sport:

Studenter & Sport
Elevs namnSport
RaviFotboll
RaviVolleyboll
RaviTennis
BethTennis
BethFotboll

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.