Meerwaardige afhankelijkheid in databases

Inhoudsopgave:

Meerwaardige afhankelijkheid in databases
Meerwaardige afhankelijkheid in databases
Anonim

In een relationele database treedt een afhankelijkheid op wanneer de informatie die is opgeslagen in dezelfde databasetabel op unieke wijze andere informatie bepa alt die in dezelfde tabel is opgeslagen. Een meerwaardige afhankelijkheid treedt op wanneer de aanwezigheid van een of meer rijen in een tabel de aanwezigheid van een of meer andere rijen in diezelfde tabel impliceert. Anders gezegd, twee attributen (of kolommen) in een tabel zijn onafhankelijk van elkaar, maar beide zijn afhankelijk van een derde attribuut.

Image
Image

Een meerwaardige afhankelijkheid verhindert de normalisatie standaard vierde normaalvorm. Relationele databases volgen vijf normale vormen die richtlijnen vertegenwoordigen voor het ontwerpen van records. Ze voorkomen updateafwijkingen en inconsistenties in de gegevens. De vierde normaalvorm handelt 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 attribuut X een attribuut Y op unieke wijze bepa alt, dan is Y functioneel afhankelijk van X. Dit wordt geschreven als X -> Y. In de onderstaande studententabel bepa alt de Student_Name bijvoorbeeld de Major:

Student_Name Majoor
Ravi Kunstgeschiedenis
Beth Chemie

Deze functionele afhankelijkheid kan worden geschreven: Student_Name -> Major. Elke Student_Name bepa alt precies één Major en niet meer.

Als je wilt dat de database ook de sporten bijhoudt die deze studenten beoefenen, denk je misschien dat de gemakkelijkste manier om dit te doen is om gewoon een andere kolom toe te voegen met de titel Sport:

Student_Name Majoor Sport
Ravi Kunstgeschiedenis Voetbal
Ravi Kunstgeschiedenis Volleybal
Ravi Kunstgeschiedenis Tennis
Beth Chemie Tennis
Beth Chemie Voetbal

Het probleem hier is dat zowel Ravi als Beth verschillende sporten beoefenen. Het is noodzakelijk om voor elke extra sport een nieuwe rij toe te voegen.

Deze tabel heeft een meerwaardige 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 te herkennen, maar een afhankelijkheid van meerdere waarden kan een probleem worden in een grote, complexe database.

Een meerwaardige afhankelijkheid wordt geschreven X ->-> Y. In dit geval:

Student_Name ->-> Major

Student_Name ->- > Sport

Dit wordt gelezen als "Student_Name multidetermines Major" en "Student_Name multidetermines Sport."

Een meerwaardige afhankelijkheid vereist altijd minstens drie attributen omdat het bestaat uit minstens twee attributen die afhankelijk zijn van een derde.

Meerwaardige afhankelijkheid en normalisatie

Een tabel met een meerwaardige afhankelijkheid schendt de normalisatiestandaard van de vierde normaalvorm omdat het onnodige redundanties creëert en kan bijdragen aan inconsistente gegevens. Om dit op 4NF te brengen, is het nodig om deze informatie in twee tabellen te splitsen.

De onderstaande tabel heeft nu een functionele afhankelijkheid van Student_Name -> Major, en geen meerwaardige afhankelijkheden:

Student_Name Majoor
Ravi Kunstgeschiedenis
Ravi Kunstgeschiedenis
Ravi Kunstgeschiedenis
Beth Chemie
Beth Chemie

Hoewel deze tabel ook een enkele functionele afhankelijkheid heeft van Student_Name -> Sport:

Student_Name Sport
Ravi Voetbal
Ravi Volleybal
Ravi Tennis
Beth Tennis
Beth Voetbal

Normalisering wordt vaak bereikt door complexe tabellen te vereenvoudigen, zodat ze informatie bevatten met betrekking tot een enkel idee of thema in plaats van te proberen een enkele tabel te veel ongelijksoortige informatie te laten bevatten.

Aanbevolen: