Mehrwertige Abhängigkeit in Datenbanken
In einem relationale Datenbank, tritt eine Abhängigkeit auf, wenn die in derselben Datenbanktabelle gespeicherten Informationen andere in derselben Tabelle gespeicherte Informationen eindeutig bestimmen. 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, zwei Attribute (oder Spalten) in einer Tabelle sind unabhängig voneinander, aber beide hängen von einem dritten Attribut ab.

Eine mehrwertige Abhängigkeit verhindert den Normalisierungsstandard vierte Normalform. Relationale Datenbanken folgen fünf Normalformen, die Richtlinien für das Datensatzdesign darstellen. Sie verhindern Aktualisierungsanomalien und Inkonsistenzen in den Daten. Die vierte Normalform behandelt n-zu-eins-Beziehungen in a Datenbank.
Funktionale Abhängigkeit vs. Mehrwertige Abhängigkeit
Um eine mehrwertige Abhängigkeit zu verstehen, ist es hilfreich, sich noch einmal anzusehen, was a funktionale Abhängigkeit ist.
Wenn ein Attribut X eindeutig ein Attribut Y bestimmt, dann ist Y funktional von X abhängig. Dies wird als X -> Y geschrieben. In der Tabelle Students unten bestimmt der Student_Name beispielsweise 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, können Sie dies am einfachsten tun, indem Sie einfach eine weitere Spalte mit dem Titel Sport hinzufügen:
Name des Studenten | Haupt | Sport |
---|---|---|
Ravi | Kunstgeschichte | Fußball |
Ravi | Kunstgeschichte | Volleyball |
Ravi | Kunstgeschichte | Tennis |
Beth | Chemie | Tennis |
Beth | Chemie | Fußball |
Das Problem dabei ist, dass sowohl Ravi als auch Beth mehrere Sportarten ausüben. Für jede weitere Sportart muss eine neue Zeile hinzugefügt werden.
Diese Tabelle hat eine mehrwertige Abhängigkeit eingeführt, da das Hauptfach und die Sportart unabhängig voneinander sind, aber beide vom Schüler abhängen. Dies ist ein einfaches Beispiel und leicht zu erkennen, aber eine mehrwertige Abhängigkeit könnte in einer großen, komplexen Datenbank zu einem Problem werden.
Eine mehrwertige Abhängigkeit wird mit X ->-> Y geschrieben. In diesem Fall:
Name des Studenten ->-> Haupt
Name 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.
Mehrwertige Abhängigkeit und Normalisierung
Eine Tabelle mit einer mehrwertigen Abhängigkeit verstößt gegen den Normalisierungsstandard der vierten Normalform, da sie unnötige Redundanzen erzeugt 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:
Name des Studenten | Haupt |
---|---|
Ravi | Kunstgeschichte |
Ravi | Kunstgeschichte |
Ravi | Kunstgeschichte |
Beth | Chemie |
Beth | Chemie |
Während diese Tabelle auch eine einzige funktionale Abhängigkeit von Student_Name -> Sport hat:
Name des Studenten | Sport |
---|---|
Ravi | Fußball |
Ravi | Volleyball |
Ravi | Tennis |
Beth | Tennis |
Beth | Fußball |
Die Normalisierung wird oft durch die Vereinfachung komplexer Tabellen erreicht, sodass sie bezogene Informationen enthalten auf eine einzelne Idee oder ein einzelnes Thema, anstatt zu versuchen, eine einzelne Tabelle mit zu vielen unterschiedlichen Informationen zu versehen.