Zum Inhalt springen

Funktionale Abhängigkeit

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 20. November 2004 um 09:43 Uhr durch Etzel~dewiki (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Funktionale Abhängigkeiten bilden die Grundlage für die Normalisierung von Relationenschemata. Eine Relation wird durch Attribute definiert. Bestimmen einige dieser Attribute eindeutig die Werte anderer Attribute, so spricht man von funktionaler Abhängigkeit. So könnte man sich etwa eine Kundendatenbank vorstellen, in der die Anschrift und die Telefonnummer eindeutig durch seinen Namen zusammen mit seinem Geburtsdatum bestimmt ist. Hier wären also Anschrift und Telefonnummer funktional abhängig von Name und Geburtsdatum. Mit Hilfe funktionaler Abhängigkeiten lässt sich auch der Begriff Schlüssel definieren:

Bestimmen einige Attribute einer Relation eindeutig die Werte aller Attribute der Relation, so spricht man von einem Superschlüssel, d.h. jedes Tupel dieser Relation ist eindeutig durch die Werte dieser Attribute bestimmt. Z.B. könnte man eine Kundennummer einführen, die jeden Kunden identifiziert.Ein Kandidatenschlüssel ist ein minimaler Superschlüssel, d.h. keine echte Teilmenge der Attribute dieses Schlüssels bestimmt vollständig die Werte aller anderen Attribute der Relation. Unter allen Kandidatenschlüsseln einer Relation wird ein sog. Primärschlüssel ausgewählt.


Beispiel:

ABC
113
113
124

In diesem Beispiel ist C funktional abhängig von A,B. Aber C ist nicht funktional abhänging von A allein. Es gelten auch die funktionalen Abhängigkeiten "A ist funktional abhängig von C" und "A ist funktional abhängig von B".

Formal lässt sich der Begriff Funktionale Abhängigkeit wie folgt definieren:

Sei eine Relation mit dem Relationenschema und seien und Teilmengen von Attributen von . Sei ein Tupel aus . Dann ist die Einschränkung von auf die Attribute aus . Die Funktionale Abhängigkeit gilt auf , wenn für jede zulässige Relation gilt:

Für alle Tupel mit gilt . Die Werte der Attribute aus bestimmen also eindeutig die Werte der Attribute aus .


Beispiel:

Die Kundennummer eines Kunden bestimmt eindeutig den Namen und die Telefonnummer des Kunden. Es gilt also die funktionale Abhängigkeit .