Meervoudige afhanklikheid in databasisontwerp

Multivalente afhanklikheid breek vierde normale vorm

In 'n relasionele databasis vind 'n afhanklikheid plaas wanneer die inligting wat in dieselfde databasis tabel gestoor word, unieke inligting bepaal wat in dieselfde tabel gestoor is. 'N Veelvuldige afhanklikheid kom voor wanneer die teenwoordigheid van een of meer rye in 'n tabel die teenwoordigheid van een of meer ander rye in dieselfde tabel impliseer. Op 'n ander manier, twee eienskappe (of kolomme) in 'n tabel is onafhanklik van mekaar, maar albei hang af van 'n derde eienskap.

'N multivalue afhanklikheid verhoed dat die normalisasie standaard vierde normale vorm (4NF). Relasionele databasisse volg vyf normale vorms wat riglyne vir rekordontwerp verteenwoordig. Dit voorkom dat die anomalieë en inkonsekwensies van die opdatering in die data voorkom. Die vierde normale vorm handel oor baie-tot-een-verhoudings in 'n databasis .

Funksionele afhanklikheid versus multivalue afhanklikheid

Om 'n meerwaardige afhanklikheid te verstaan, is dit nuttig om weer te kyk wat 'n funksionele afhanklikheid is.

As 'n kenmerk X uniek 'n kenmerk Y bepaal, dan is Y funksioneel afhanklik van X. Dit word geskryf as X -> Y. Byvoorbeeld, in die Studente-tabel hieronder, bepaal die Student_Name die Majoor:

Studente
Studente naam groot
Ravi Kunsgeskiedenis
Bet chemie


Hierdie funksionele afhanklikheid kan geskryf word: Student_Name -> Major . Elke Student_Name bepaal presies een majeur, en nie meer nie.

As jy die databasis wil hê om die sport te volg wat hierdie studente neem, kan jy dink die maklikste manier om dit te doen is om net 'n ander kolom met die titel Sport by te voeg:

Studente
Studente naam groot Sport
Ravi Kunsgeskiedenis sokker
Ravi Kunsgeskiedenis Vlugbal
Ravi Kunsgeskiedenis Tennis
Bet chemie Tennis
Bet chemie sokker


Die probleem hier is dat beide Ravi en Beth verskeie sportsoorte speel. Dit is nodig om 'n nuwe ry vir elke bykomende sport by te voeg.

Hierdie tabel het 'n veelvuldige afhanklikheid ingestel omdat die hoofvak en die sport onafhanklik van mekaar is, maar albei is afhanklik van die student.

Dit is 'n eenvoudige voorbeeld en maklik identifiseerbaar, maar 'n veelvuldige afhanklikheid kan 'n probleem in 'n groot, komplekse databasis word.

'N Multivalente afhanklikheid word X -> -> Y geskryf. In hierdie geval:

Student_Name -> -> Major
Student_Name -> -> Sport

Dit word gelees as "Student_Name multidetermines Major" en "Student_Name multidetermines Sport."

'N Veelvuldige afhanklikheid vereis altyd ten minste drie eienskappe, want dit bestaan ​​uit minstens twee eienskappe wat van 'n derde afhanklik is.

Meervoudige afhanklikheid en normalisering

'N Tabel met 'n meerwaardige afhanklikheid oortree die normaliseringsstandaard van Vierde Normale Vorm (4NK) omdat dit onnodige ontslag skep en kan bydra tot inkonsekwente data. Om dit tot 4NF te bring, is dit nodig om hierdie inligting in twee tabelle te breek.

Die tabel hieronder het nou 'n funksionele afhanklikheid van Student_Name -> Major, en geen multivalue afhanklikhede nie:

Studente en Majors
Studente naam groot
Ravi Kunsgeskiedenis
Ravi Kunsgeskiedenis
Ravi Kunsgeskiedenis
Bet chemie
Bet chemie

Terwyl hierdie tabel ook 'n enkele funksionele afhanklikheid van Student_Name -> Sport het:

Studente en Sport
Studente naam Sport
Ravi sokker
Ravi Vlugbal
Ravi Tennis
Bet Tennis
Bet sokker

Dit is duidelik dat normalisering dikwels aangespreek word deur komplekse tabelle te vereenvoudig sodat hulle inligting bevat wat verband hou met 'n enkele idee of tema eerder as om 'n enkele tafel te maak, te veel uiteenlopende inligting bevat.