A többértékű függőség megszakítja a negyedik rendes formát
Relációs adatbázisban egy függőség akkor jelenik meg, ha az ugyanabban az adatbázis-táblában tárolt információ egyedileg meghatározza az ugyanabban a táblázatban tárolt egyéb információkat. Egy többértékű függőség akkor jelentkezik, ha egy táblázatban szereplő egy vagy több sor jelenléte egy vagy több másik sor jelenlétét jelenti ugyanazon a táblázatban. Tegyük fel másik módon, hogy két attribútum (vagy oszlop) egy táblázatban egymástól független, de mindkettő egy harmadik attribútumtól függ.
A többértékű függőség megakadályozza a normalizációs szabvány negyedik normál formáját (4NF). A relációs adatbázisok öt normális formát követnek, amelyek a rekord tervezésére vonatkozó iránymutatásokat tartalmaznak. Megakadályozzák az adatok frissítési rendellenességeit és inkonzisztenciáit. A negyedik normál forma egy-egy kapcsolatot érint az adatbázisban .
Függõségi függõség vagy többértékû függõség
A többértékű függőség megértése érdekében célszerű újra megvizsgálni, hogy mi a funkcionális függőség.
Ha egy X attribútum egyedileg meghatározza az Y attribútumot, akkor Y függvényében X függvénye. Ez X-> Y-ként van írva. Például az alábbi Hallgatói táblában a Student_Name határozza meg az őrnagyot:
Tanuló név | Jelentősebb |
---|---|
Ravi | Művészettörténet |
Beth | Kémia |
Ez a funkcionális függőség írható: Student_Name -> Major . Minden Student_Name pontosan egy Major-t határoz meg, és nem többet.
Ha azt szeretné, hogy az adatbázis nyomon kövesse azokat a sportokat, amelyeket ezek a diákok vesznek, gondolja azt, hogy a legegyszerűbb módja ennek, hogy csak egy másik oszlopot adjon hozzá a Sport:
Tanuló név | Jelentősebb | Sport |
---|---|---|
Ravi | Művészettörténet | Futball |
Ravi | Művészettörténet | Röplabda |
Ravi | Művészettörténet | Tenisz |
Beth | Kémia | Tenisz |
Beth | Kémia | Futball |
A probléma az, hogy mind Ravi, mind Beth több sportot játszik. Minden további sporthoz új sort kell adni.
Ez a táblázat többértékű függést vezetett be, mivel a fő és a sport függetlenek egymástól, de mindkettő a hallgatótól függ.
Ez egy egyszerű példa és könnyen azonosítható, de a többértékű függőség probléma lehet egy nagy, összetett adatbázisban.
Egy többértékû függõséget X -> -> Y ír. Ebben az esetben:
Student_Name -> -> Major
Student_Name -> -> Sport
Ezt a "Student_Name multidetermines Major" és a "Student_Name multidetermines Sport" néven értelmezik.
A többértékű függőség mindig legalább három attribútumot igényel, mivel legalább két attribútumból áll, amelyek egy harmadiktól függenek.
Többértékű függőség és normalizáció
Egy többértékű függőségű táblázat megsérti a negyedik normál űrlap (4NK) normalizálási szabványát, mert szükségtelen elbocsátást eredményez, és hozzájárulhat a következetlen adatokhoz. A 4NF-ig történő feltöltéshez ezt az információt két táblázatra kell bontani.
Az alábbi táblázat a Student_Name -> Major függvény funkcionális függõségét mutatja, és nincs többértékû függõség:
Tanuló név | Jelentősebb |
---|---|
Ravi | Művészettörténet |
Ravi | Művészettörténet |
Ravi | Művészettörténet |
Beth | Kémia |
Beth | Kémia |
Míg ez a táblázat a Student_Name -> Sport funkcionalitásától függ:
Tanuló név | Sport |
---|---|
Ravi | Futball |
Ravi | Röplabda |
Ravi | Tenisz |
Beth | Tenisz |
Beth | Futball |
Nyilvánvaló, hogy a normalizációt gyakran a bonyolult táblázatok egyszerűsítésével oldják meg, hogy azok egyetlen ötlettel vagy témával kapcsolatos információkat tartalmazzanak, és ne próbáljanak egyetlen táblázatot létrehozni túl sok különböző információval.