Eine funktionale Abhängigkeit in einer Datenbank erzwingt eine Reihe von Einschränkungen zwischen Attributen. Dies geschieht, wenn ein Attribut in einer Beziehung ein anderes Attribut eindeutig bestimmt. Das kann geschrieben werden A -> B was bedeutet "B ist funktionell von A abhängig." Dies wird auch als Datenbankabhängigkeit bezeichnet.
In dieser Beziehung bestimmt A den Wert von B, während B von A abhängt.
Warum funktionale Abhängigkeit beim Datenbankentwurf wichtig ist
Die funktionale Abhängigkeit hilft, die Gültigkeit der Daten zu gewährleisten. Eine Tabelle Angestellte enthält Merkmale, darunter Merkmale der Sozialversicherungsnummer (SSN), Name, Geburtsdatum, Adresse usw.
Das Attribut SSN bestimmt den Wert von Name, Geburtsdatum, Adresse und möglicherweise andere Werte, da eine Sozialversicherungsnummer eindeutig ist, während Name, Geburtsdatum oder Adresse möglicherweise nicht angegeben sind. Wir können es so schreiben:
SSN -> Name, Geburtsdatum, Adresse
Daher sind Name, Geburtsdatum und Adresse funktional von der SSN abhängig. Die umgekehrte Anweisung (name -> SSN) ist jedoch nicht wahr, da mehrere Mitarbeiter denselben Namen haben können, aber niemals dieselbe SSN. Anders ausgedrückt, wenn wir den Wert des SSN-Attributs kennen, können wir den Wert von Name, Geburtsdatum und Adresse ermitteln. Wenn wir stattdessen nur den Wert des Namensattributs kennen, können wir das SSN nicht identifizieren.
Die linke Seite einer funktionalen Abhängigkeit kann mehr als ein Attribut enthalten. Nehmen wir an, wir haben ein Geschäft mit mehreren Standorten. Möglicherweise haben wir eine Tabelle Employee mit den Attributen Employee, Titel, Abteilung, Standort und Manager.
Der Mitarbeiter bestimmt den Standort, an dem er arbeitet, daher gibt es eine Abhängigkeit:
Mitarbeiter -> Standort
Der Standort kann jedoch über mehrere Manager verfügen, sodass Mitarbeiter und Abteilung gemeinsam den Manager bestimmen:
Mitarbeiter, Abteilung -> Manager
Funktionale Abhängigkeit und Normalisierung
Die funktionale Abhängigkeit trägt zur sogenannten Normalisierung der Datenbank bei, die die Datenintegrität gewährleistet und die Datenredundanz reduziert. Ohne Normalisierung kann nicht garantiert werden, dass die Daten in einer Datenbank genau und zuverlässig sind.