Eine Abhängigkeit ist eine Einschränkung, die für die Beziehung zwischen Attributen gilt oder diese definiert. Sie tritt in einer Datenbank auf, wenn Informationen, die in derselben Datenbanktabelle gespeichert sind, eindeutig andere Informationen bestimmen, die in derselben Tabelle gespeichert sind. Sie können dies auch als eine Beziehung beschreiben, bei der die Kenntnis des Wertes eines Attributs (oder einer Gruppe von Attributen) ausreicht, um Ihnen den Wert eines anderen Attributs (oder einer Gruppe von Attributen) in derselben Tabelle mitzuteilen.
Datenbankabhängigkeiten verwirren häufig sowohl Schüler als auch Datenbankfachleute. Zum Glück sind sie nicht so kompliziert, wie es scheint. Sie können am besten anhand einiger Beispiele erklärt werden. Hier untersuchen wir gängige Datenbankabhängigkeitstypen.
Datenbankabhängigkeiten und funktionale Abhängigkeiten
Die Aussage, dass zwischen Attributen in einer Tabelle eine Abhängigkeit besteht, ist die gleiche wie die Aussage, dass zwischen diesen Attributen eine funktionale Abhängigkeit besteht. Wenn in einer Datenbank eine Abhängigkeit besteht, dass Attribut B von Attribut A abhängt, würden Sie dies wie folgt schreiben:
A -> B
In einer Tabelle, in der Mitarbeitermerkmale einschließlich Sozialversicherungsnummer (SSN) und Name aufgelistet sind, kann beispielsweise gesagt werden, dass der Name von SSN (oder SSN -> Name) abhängig ist, da der Name eines Mitarbeiters eindeutig aus einem SSN ermittelt werden kann. Die umgekehrte Anweisung (name -> SSN) ist jedoch nicht wahr, da mehrere Mitarbeiter denselben Namen haben können, jedoch immer unterschiedliche SSNs. Eine triviale funktionale Abhängigkeit tritt auf, wenn Sie eine funktionale Abhängigkeit eines Attributs von einer Sammlung von Attributen beschreiben, die das ursprüngliche Attribut enthält. Beispielsweise ist {A, B} -> B eine triviale funktionale Abhängigkeit, ebenso wie {Name, SSN} -> SSN. Diese Art der funktionalen Abhängigkeit wird als trivial bezeichnet, da sie vom gesunden Menschenverstand abgeleitet werden kann. Es ist offensichtlich, dass, wenn Sie bereits den Wert von B kennen, der Wert von B durch dieses Wissen eindeutig bestimmt werden kann. Eine vollständige Funktionsabhängigkeit liegt vor, wenn Sie bereits die Voraussetzungen für eine Funktionsabhängigkeit erfüllen und die Menge der Attribute auf der linken Seite der Funktionsabhängigkeitsanweisung nicht weiter reduziert werden kann. Beispielsweise ist {SSN, age} -> name eine funktionale Abhängigkeit, aber es handelt sich nicht um eine vollständige funktionale Abhängigkeit, da Sie das Alter von der linken Seite der Anweisung entfernen können, ohne die Abhängigkeitsbeziehung zu beeinflussen. Transitive Abhängigkeiten treten auf, wenn eine indirekte Beziehung besteht, die eine funktionale Abhängigkeit verursacht. Zum Beispiel ist A -> C eine transitive Abhängigkeit, wenn es nur wahr ist, weil sowohl A -> B als auch B -> C wahr sind. Abhängigkeiten mit mehreren Werten treten auf, wenn das Vorhandensein einer oder mehrerer Zeilen in einer Tabelle das Vorhandensein von einer oder mehreren anderen Zeilen in derselben Tabelle impliziert. Stellen Sie sich zum Beispiel eine Autofirma vor, die viele Fahrzeugmodelle herstellt, aber für jedes Modell sowohl rote als auch blaue Farben erzeugt. Wenn Sie über eine Tabelle verfügen, die den Modellnamen, die Farbe und das Jahr jedes Fahrzeugs, das das Unternehmen herstellt, enthält, gibt es in dieser Tabelle eine mehrwertige Abhängigkeit. Wenn es eine Reihe für einen bestimmten Modellnamen und ein bestimmtes Jahr in Blau gibt, muss auch eine ähnliche Reihe vorhanden sein, die der roten Version desselben Fahrzeugs entspricht. Datenbankabhängigkeiten sind wichtig zu verstehen, da sie die grundlegenden Bausteine für die Datenbanknormalisierung bereitstellen, den Prozess der effizienten Organisation von Daten in einer Datenbank. Zum Beispiel: Triviale funktionale Abhängigkeiten
Volle funktionale Abhängigkeiten
Transitive Abhängigkeiten
Mehrwertige Abhängigkeiten
Bedeutung von Abhängigkeiten