Funktionale Abhängigkeit

Die wichtigste Datenabhängigkeit ist die funktionale Abhängigkeit (FD).

Die Attributmenge Y ist von der Attributmenge X funktional abhängig X → Y, wenn für alle Tupel s,t ∈ r gilt: s[X] = t[X] impliziert s[Y] = t[Y]. Dabei ist r ∈ Rel(V) und X, Y ⊆ V.

Die funktionale Abhängigkeit ist eine Verallgemeinerung der Schlüsselabhängigkeit. X ist ein superkey einer Relation r ∈ Rel(V), wenn die funktionale Abhängigkeit X → V gilt.

XA ist ein candidate key, wenn es kein Attribut A gibt, so daß X ebenfalls noch ein superkey ist. XA → V nennt man dann Schlüsselabhängigkeit.

Eine funktionale Abhängigkeit XA → Y, bei der es wie oben kein Attribut A gibt, so daß auch X → Y eine funktionale Abhängigkeit ist, wird als links-minimal bezeichnet.

Aus einer Menge von funktionalen Abhängigkeiten lassen sich mit Regeln weitere funktionale Abhängigkeiten gewinnen:

Y ⊆ X impliziert X → Y,
X → Y und Y → Z implizieren X → Z,
X → Y und Z ⊆ W implizieren XW → YZ.

Betrachtet man nun das Relationenschema R = (X, F) mit der Attributmenge X und einer Menge von funktionalen Abhängigkeiten F, so ist Sat(R) die Menge aller r ∈ Rel(X), die die funktionalen Abhängigkeiten F erfüllen.

Mittels Sat() wird nun definiert, wann eine FD-Menge F eine funktionale Abhängigkeit f impliziert: F impliziert f, wenn Sat(F) ⊆ Sat({f}).

Die drei oben genannten Regeln sind korrekt und vollständig in Bezug auf die von einer FD-Menge F implizierten FDs f, sie heißen Armstrong-Regeln.

Ein weiteres korrektes und vollständiges Regelsystem ist das folgende:

X → X,
X → YZ und Z → AW implizieren X → YZA,
X → Y und Z ⊆ Y implizieren X → Z.

Es wird als RAP-Regelsystem (Reflexivität, Akkumulation, Projektivität) bezeichnet und hat den Vorteil, daß eine FD X → Y auf einfache Art aus einer FD-Menge F abgeleitet werden kann.

Man beginnt mit X → X, und vergrößert dann die rechte Seite der funktionalen Abhängigkeit durch Anwenden der zweiten Schlußregel. Sobald Y in der rechten Seite der FD enthalten ist, wendet man die dritte Schlußregel an, um die gewünschte FD X → Y zu erhalten.

Eine Verallgemeinerung der funktionalen Abhängigkeit ist die mehrwertige Abhängigkeit.