In een relationele database vindt afhankelijkheid plaats wanneer de informatie die in dezelfde databasetabel is opgeslagen, op unieke wijze andere informatie bepaalt die is opgeslagen in dezelfde tabel. Een afhankelijkheid met meerdere waarden treedt op wanneer de aanwezigheid van een of meer rijen in een tabel de aanwezigheid van een of meer andere rijen in dezelfde tabel impliceert. Anders gezegd, twee attributen (of kolommen) in een tabel zijn onafhankelijk van elkaar, maar beide zijn afhankelijk van een derde attribuut.
Een meerwaardige afhankelijkheid voorkomt de normalisatie standaard vierde normaalvorm (4NF). Relationele databases volgen vijf normale vormen die richtlijnen voor recordontwerp vertegenwoordigen. Ze voorkomen onregelmatigheden in de update en inconsistenties in de gegevens. De vierde normale vorm gaat over veel-op-een relaties in een database.
Functionele afhankelijkheid versus meerwaardige afhankelijkheid
Om een meerwaardige afhankelijkheid te begrijpen, is het nuttig om opnieuw te bekijken wat een functionele afhankelijkheid is.
Als een kenmerk X uniek een kenmerk Y bepaalt, dan is Y functioneel afhankelijk van X. Dit is geschreven als X -> Y. Bijvoorbeeld, in de onderstaande tabel Leerlingen, bepaalt de Student_Name de Major:
| Studenten naam | groot |
|---|---|
| Ravi | Kunstgeschiedenis |
| Beth | Chemie |
Deze functionele afhankelijkheid kan worden geschreven: Student_Name -> Major . Elke Student Name bepaalt precies één Major en niet meer. Als je wilt dat de database ook de sporten volgt die deze studenten volgen, zou je denken dat de eenvoudigste manier om dit te doen is om gewoon een andere kolom toe te voegen met de titel Sport: Het probleem hier is dat zowel Ravi als Beth meerdere sporten spelen. Het is noodzakelijk om een nieuwe rij toe te voegen voor elke extra sport. Deze tabel heeft een veelwaardiger afhankelijkheid geïntroduceerd omdat de major en de sport onafhankelijk van elkaar zijn, maar beide afhankelijk zijn van de student. Dit is een eenvoudig voorbeeld en gemakkelijk herkenbaar, maar een afhankelijkheid van meerdere waarden kan een probleem worden in een grote, complexe database. Een afhankelijkheid met meerdere waarden is geschreven X -> -> Y. In dit geval: Studenten naam ->-> grootStudenten naam->-> Sport
Dit wordt gelezen als "Student_Name multidetermines Major" en "Student_Name multidetermines Sport". Een meerwaardige afhankelijkheid vereist altijd ten minste drie attributen omdat deze uit ten minste twee attributen bestaat die afhankelijk zijn van een derde. Een tabel met een meerwaardige afhankelijkheid schendt de normalisatienorm van Fourth Normal Form (4NK) omdat deze onnodige redundanties genereert en kan bijdragen aan inconsistente gegevens. Om dit tot 4NF te brengen, is het noodzakelijk om deze informatie in twee tabellen te splitsen. De onderstaande tabel heeft nu een functionele afhankelijkheid van Student_Name -> Major en geen meerwaardige afhankelijkheden: Hoewel deze tabel ook een functionele afhankelijkheid heeft van Student_Name -> Sport: Het is duidelijk dat normalisatie vaak wordt aangepakt door complexe tabellen te vereenvoudigen zodat ze informatie bevatten die gerelateerd is aan een enkel idee of thema, in plaats van te proberen een enkele tabel te veel ongelijksoortige informatie te laten maken.Studenten naam groot Sport Ravi Kunstgeschiedenis Voetbal Ravi Kunstgeschiedenis Volleybal Ravi Kunstgeschiedenis Tennis Beth Chemie Tennis Beth Chemie Voetbal Meerwaarde afhankelijkheid en normalisatie
Studenten naam groot Ravi Kunstgeschiedenis Ravi Kunstgeschiedenis Ravi Kunstgeschiedenis Beth Chemie Beth Chemie Studenten naam Sport Ravi Voetbal Ravi Volleybal Ravi Tennis Beth Tennis Beth Voetbal




