In einer relationalen 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 Sp alten) in einer Tabelle sind voneinander unabhängig, aber beide hängen von einem dritten Attribut ab.
Eine mehrwertige Abhängigkeit verhindert den Normierungsstandard 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 befasst sich mit Viele-zu-Eins-Beziehungen in einer Datenbank.
Funktionale Abhängigkeit vs. mehrwertige Abhängigkeit
Um eine mehrwertige Abhängigkeit zu verstehen, ist es hilfreich, sich noch einmal anzusehen, was eine funktionale Abhängigkeit ist.
Wenn ein Attribut X eindeutig ein Attribut Y bestimmt, dann ist Y funktional abhängig von X. Dies wird als X -> Y geschrieben. In der Tabelle „Students“unten bestimmt beispielsweise der Student_Name den Studiengang:
Student_Name | Major |
---|---|
Ravi | Kunstgeschichte |
Beth | Chemie |
Diese funktionale Abhängigkeit kann geschrieben werden: Student_Name -> Major. Jeder Student_Name bestimmt genau ein Hauptfach und nicht mehr.
Wenn Sie möchten, dass die Datenbank auch die Sportarten dieser Schüler aufzeichnet, denken Sie vielleicht, dass es am einfachsten ist, einfach eine weitere Sp alte mit dem Titel Sport hinzuzufügen:
Student_Name | Major | 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 betreiben. Für jede weitere Sportart muss eine neue Zeile hinzugefügt werden.
Diese Tabelle hat eine mehrwertige Abhängigkeit eingeführt, weil das Hauptfach und die Sportart unabhängig voneinander sind, aber beide vom Studenten abhängen. Dies ist ein einfaches Beispiel und leicht erkennbar, aber eine mehrwertige Abhängigkeit könnte in einer großen, komplexen Datenbank zu einem Problem werden.
Eine mehrwertige Abhängigkeit wird X ->-> Y geschrieben. In diesem Fall:
Student_Name ->-> Major
Student_Name - >- > Sport
Dies wird gelesen als "Student_Name multideterminiert Major" und "Student_Name multideterminiert Sport."
Eine mehrwertige Abhängigkeit erfordert immer mindestens drei Attribute, weil 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:
Student_Name | Major |
---|---|
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:
Student_Name | Sport |
---|---|
Ravi | Fußball |
Ravi | Volleyball |
Ravi | Tennis |
Beth | Tennis |
Beth | Fußball |
Normalisierung wird oft erreicht, indem komplexe Tabellen vereinfacht werden, sodass sie Informationen enth alten, die sich auf eine einzelne Idee oder ein einzelnes Thema beziehen, anstatt zu versuchen, eine einzelne Tabelle so zu gest alten, dass sie zu viele unterschiedliche Informationen enthält.