In 'n relasionele databasis vind 'n afhanklikheid plaas wanneer die inligting wat in dieselfde databasistabel gestoor is, ander inligting wat in dieselfde tabel gestoor is, uniek bepaal. 'n Meerwaarde-afhanklikheid vind plaas wanneer die teenwoordigheid van een of meer rye in 'n tabel die teenwoordigheid van een of meer ander rye in dieselfde tabel impliseer. Anders gestel, twee eienskappe (of kolomme) in 'n tabel is onafhanklik van mekaar, maar albei is afhanklik van 'n derde kenmerk.
'n Meerwaarde-afhanklikheid verhoed die normaliseringstandaard vierde normaalvorm. Relasionele databasisse volg vyf normale vorms wat riglyne vir rekordontwerp verteenwoordig. Hulle voorkom opdateringsafwykings en teenstrydighede in die data. Die vierde normale vorm handel oor veel-tot-een-verhoudings in 'n databasis.
Funksionele afhanklikheid vs. meerwaarde-afhanklikheid
Om 'n meerwaarde-afhanklikheid te verstaan, is dit nuttig om te hersien 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:
Student_Name | Major |
---|---|
Ravi | Kunsgeskiedenis |
Beth | Chemistry |
Hierdie funksionele afhanklikheid kan geskryf word: Student_Name -> Major. Elke Student_Name bepaal presies een Majoor en nie meer nie.
As jy wil hê dat die databasis ook die sportsoorte wat hierdie studente neem moet dophou, dink jy dalk die maklikste manier om dit te doen is om net nog 'n kolom by te voeg met die titel Sport:
Student_Name | Major | Sport |
---|---|---|
Ravi | Kunsgeskiedenis | Sokker |
Ravi | Kunsgeskiedenis | Volleybal |
Ravi | Kunsgeskiedenis | Tennis |
Beth | Chemistry | Tennis |
Beth | Chemistry | Sokker |
Die probleem hier is dat beide Ravi en Beth verskeie sportsoorte speel. Dit is nodig om 'n nuwe ry by te voeg vir elke bykomende sport.
Hierdie tabel het 'n veelwaardige afhanklikheid bekendgestel omdat die hoofvak en die sport onafhanklik van mekaar is, maar albei van die student afhanklik is. Dit is 'n eenvoudige voorbeeld en maklik identifiseerbaar, maar 'n multiwaarde-afhanklikheid kan 'n probleem in 'n groot, komplekse databasis word.
'n Veelwaarde-afhanklikheid word geskryf X ->-> Y. In hierdie geval:
Student_Name ->-> Major
Student_Name ->- > Sport
Dit word gelees as "Student_Name multidetermines Major" en "Student_Name multidetermines Sport."
'n Veelwaarde-afhanklikheid vereis altyd ten minste drie eienskappe, want dit bestaan uit ten minste twee eienskappe wat afhanklik is van 'n derde.
Veelwaardige afhanklikheid en normalisering
'n Tabel met 'n meerwaarde-afhanklikheid oortree die normaliseringstandaard van vierde normale vorm omdat dit onnodige oortollighede skep en kan bydra tot inkonsekwente data. Om dit tot by 4NF te bring, is dit nodig om hierdie inligting in twee tabelle te verdeel.
Die tabel hieronder het nou 'n funksionele afhanklikheid van Student_Name -> Major, en geen multivalued afhanklikhede:
Student_Name | Major |
---|---|
Ravi | Kunsgeskiedenis |
Ravi | Kunsgeskiedenis |
Ravi | Kunsgeskiedenis |
Beth | Chemistry |
Beth | Chemistry |
Terwyl hierdie tabel ook 'n enkele funksionele afhanklikheid van Student_Name -> Sport: het
Student_Name | Sport |
---|---|
Ravi | Sokker |
Ravi | Volleybal |
Ravi | Tennis |
Beth | Tennis |
Beth | Sokker |
Normalisering word dikwels bewerkstellig deur komplekse tabelle te vereenvoudig sodat hulle inligting bevat wat met 'n enkele idee of tema verband hou eerder as om te probeer om 'n enkele tabel te veel uiteenlopende inligting bevat.