Ein Leitfaden zum Verständnis von Datenbankabhängigkeiten

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 in derselben Datenbanktabelle gespeicherte Informationen andere in derselben Tabelle gespeicherte Informationen eindeutig bestimmen. Sie können dies auch als eine Beziehung beschreiben, bei der das Wissen Wert eines Attributs (oder einer Reihe von Attributen) reicht aus, um Ihnen den Wert eines anderen Attributs (oder einer Reihe von Attributen) in derselben Tabelle mitzuteilen.

Datenbankabhängigkeiten verwirren häufig sowohl Studenten als auch Datenbankexperten. Glücklicherweise sind sie nicht so kompliziert, wie sie erscheinen mögen. Sie lassen sich am besten anhand einiger Beispiele erklären. Hier untersuchen wir gängige Datenbankabhängigkeitstypen.

Datenbankabhängigkeiten und funktionale Abhängigkeiten

Zu sagen, dass es eine Abhängigkeit zwischen Attributen in einer Tabelle gibt, ist dasselbe wie zu sagen, dass es a funktionale Abhängigkeit

zwischen diesen Attributen. Wenn es eine Abhängigkeit in einer Datenbank gibt, so dass Attribut B ist abhängig von Attribut A, Sie würden dies schreiben als:

A -> B

In einer Tabelle mit Mitarbeitermerkmalen, einschließlich Sozialversicherungsnummer (SSN) und Name, kann dies beispielsweise sein: sagte, dass der Name von der SSN (oder SSN -> Name) abhängig ist, da der Name eines Mitarbeiters eindeutig aus einem. bestimmt werden kann SSN. Die umgekehrte Aussage (Name -> SSN) ist jedoch nicht richtig, da mehrere Mitarbeiter denselben Namen haben können, aber immer unterschiedliche SSNs haben.

Triviale funktionale Abhängigkeiten

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. Zum Beispiel ist {A, B} -> B eine triviale funktionale Abhängigkeit, ebenso wie {Name, SSN} -> SSN. Diese Art der funktionalen Abhängigkeit wird trivial genannt, weil sie aus dem gesunden Menschenverstand abgeleitet werden kann. Es ist offensichtlich, dass, wenn Sie den Wert von B bereits kennen, der Wert von B durch dieses Wissen eindeutig bestimmt werden kann.

Vollständige funktionale Abhängigkeiten

Eine vollständige funktionale Abhängigkeit liegt vor, wenn Sie bereits die Voraussetzungen für eine funktionale Abhängigkeit erfüllen und die Menge der Attribute auf der linken Seite der funktionalen Abhängigkeitsaussage kann nicht reduziert werden weiter. {SSN, age} -> name ist beispielsweise eine funktionale Abhängigkeit, aber keine a volle funktionale Abhängigkeit da Sie das Alter von der linken Seite der Anweisung entfernen können, ohne die Abhängigkeitsbeziehung zu beeinträchtigen.

Transitive Abhängigkeiten

Transitive Abhängigkeiten treten auf, wenn eine indirekte Beziehung besteht, die eine funktionale Abhängigkeit verursacht. Zum Beispiel ist A -> C a transitive Abhängigkeit wenn es nur wahr ist, weil sowohl A -> B als auch B -> C wahr sind.

Mehrwertige Abhängigkeiten

Mehrwertige Abhängigkeiten treten auf, wenn das Vorhandensein einer oder mehrerer Zeilen in einer Tabelle das Vorhandensein einer oder mehrerer anderer Zeilen in derselben Tabelle impliziert. Stellen Sie sich zum Beispiel eine Autofirma vor, die viele Automodelle herstellt, aber immer sowohl rote als auch blaue Farben jedes Modells herstellt. Wenn Sie eine Tabelle haben, die den Modellnamen, die Farbe und das Jahr jedes Autos enthält, das das Unternehmen herstellt, gibt es eine mehrwertige Abhängigkeit in dieser Tabelle. Wenn es eine blaue Zeile für einen bestimmten Modellnamen und ein bestimmtes Jahr gibt, muss es auch eine ähnliche Zeile geben, die der roten Version desselben Autos entspricht.

Bedeutung von Abhängigkeiten

Datenbankabhängigkeiten sind wichtig zu verstehen, da sie die grundlegenden Bausteine ​​bereitstellen, die in Datenbanknormalisierung, der Prozess der effizienten Organisation von Daten in einer Datenbank. Zum Beispiel:

  • Damit ein Tisch drin ist zweite Normalform (2NF), darf es in der Tabelle keinen Fall eines Nichtprime-Attributs geben, das funktional von einer Teilmenge von a. abhängt Kandidatenschlüssel.
  • Damit ein Tisch drin ist dritte Normalform (3NF), muss jedes Nichtprime-Attribut eine nichttransitive funktionale Abhängigkeit von jedem Kandidatenschlüssel haben.
  • Damit ein Tisch drin ist Boyce-Codd Normalform (BCNF), muss sich jede funktionale Abhängigkeit (außer triviale Abhängigkeiten) auf einem Superschlüssel befinden.
  • Damit eine Tabelle in der vierten Normalform (4NF) vorliegt, darf sie keine mehrwertigen Abhängigkeiten aufweisen.