In einer relationalen Datenbank tritt eine Abhängigkeit auf, wenn die in derselben Datenbanktabelle gespeicherten Informationen eindeutig andere Informationen bestimmen, die in derselben Tabelle gespeichert sind. Eine mehrwertige Abhängigkeit tritt auf, wenn das Vorhandensein einer oder mehrerer Zeilen in einer Tabelle das Vorhandensein einer oder mehrerer anderer Zeilen in derselben Tabelle impliziert. Anders ausgedrückt sind zwei Attribute (oder Spalten) in einer Tabelle unabhängig voneinander, aber beide hängen von einem dritten Attribut ab.
Eine mehrwertige Abhängigkeit verhindert den Normalisierungsstandard der vierten Normalform (4NF). Relationale Datenbanken folgen fünf Normalformen, die Richtlinien für die Datensatzgestaltung darstellen. Sie verhindern Aktualisierungsanomalien und Inkonsistenzen in den Daten. Die vierte Normalform behandelt die Viele-zu-Eins-Beziehungen in einer Datenbank.
Funktionale Abhängigkeit vs. Mehrwertige Abhängigkeit
Um eine mehrwertige Abhängigkeit zu verstehen, ist es hilfreich, die Funktionsabhängigkeit zu überdenken.
Wenn ein Attribut X ein Attribut Y eindeutig bestimmt, ist Y funktional von X abhängig. Dies wird als X -> Y geschrieben. In der Tabelle Students (Schüler) beispielsweise bestimmt der Student_Name den Major:
Name des Studenten | Haupt |
---|---|
Ravi | Kunstgeschichte |
Beth | Chemie |
Diese funktionale Abhängigkeit kann geschrieben werden: Student_Name -> Major . Jeder Student_Name bestimmt genau einen Major und nicht mehr. Wenn Sie möchten, dass die Datenbank auch die Sportarten dieser Schüler erfasst, denken Sie am einfachsten, indem Sie einfach eine weitere Spalte mit dem Titel Sport hinzufügen: Das Problem hier ist, dass sowohl Ravi als auch Beth mehrere Sportarten ausüben. Für jede zusätzliche Sportart muss eine neue Reihe hinzugefügt werden. Diese Tabelle hat eine mehrwertige Abhängigkeit eingeführt, da der Major und der Sport unabhängig voneinander sind, aber beide vom Schüler abhängen. Dies ist ein einfaches Beispiel und leicht zu identifizieren, aber eine Abhängigkeit von mehreren Werten kann in einer großen, komplexen Datenbank zu einem Problem werden. Eine mehrwertige Abhängigkeit wird X -> -> Y geschrieben. In diesem Fall: Name des Studenten ->-> HauptName des Studenten->-> Sport
Dies wird als "Student_Name Multidetermines Major" und "Student_Name Multidetermines Sport" gelesen. Eine mehrwertige Abhängigkeit erfordert immer mindestens drei Attribute, da sie aus mindestens zwei Attributen besteht, die von einem dritten abhängig sind. Eine Tabelle mit einer mehrwertigen Abhängigkeit verstößt gegen den Normalisierungsstandard von Fourth Normal Form (4NK), da dies zu unnötigen Redundanzen führt und zu inkonsistenten Daten beitragen kann. Um dies auf 4NF zu bringen, ist es notwendig, diese Informationen in zwei Tabellen aufzuteilen. Die folgende Tabelle hat jetzt eine funktionale Abhängigkeit von Student_Name -> Major und keine mehrwertigen Abhängigkeiten: Während diese Tabelle auch eine funktionale Abhängigkeit von Student_Name -> Sport aufweist: Es ist klar, dass die Normalisierung häufig durch die Vereinfachung komplexer Tabellen angegangen wird, so dass sie Informationen enthalten, die sich auf eine einzelne Idee oder ein Thema beziehen, anstatt zu versuchen, eine einzelne Tabelle mit zu vielen unterschiedlichen Informationen zu versehen.Name des Studenten Haupt Sport Ravi Kunstgeschichte Fußball Ravi Kunstgeschichte Volleyball Ravi Kunstgeschichte Tennis Beth Chemie Tennis Beth Chemie Fußball Mehrwertige Abhängigkeit und Normalisierung
Name des Studenten Haupt Ravi Kunstgeschichte Ravi Kunstgeschichte Ravi Kunstgeschichte Beth Chemie Beth Chemie Name des Studenten Sport Ravi Fußball Ravi Volleyball Ravi Tennis Beth Tennis Beth Fußball