prev up next


Funktionale Abhängigkeiten

Gegeben sei ein Relationenschema mit einer Ausprägung R. Eine funktionale Abhängigkeit (engl. functional dependency) stellt eine Bedingung an die möglichen gültigen Ausprägungen des Datenbankschemas dar. Eine funktionale Abhängigkeit, oft abgekürzt als FD, wird dargestellt als

$\displaystyle\alpha$ $\displaystyle\rightarrow$ $\displaystyle\beta$

Die griechischen Buchstaben $\alpha$ und $\beta$ repräsentieren Mengen von Attributen. Es sind nur solche Ausprägungen zulässig, für die gilt:

$\displaystyle\vee$  r,t $\displaystyle\in$ R :  r.$\displaystyle\alpha$ = t.$\displaystyle\alpha$ $\displaystyle\Rightarrow$ r.$\displaystyle\beta$ = t.$\displaystyle\beta$

D. h., wenn zwei Tupel gleiche Werte für alle Attribute in $\alpha$ haben, dann müssen auch ihre $\beta$ -Werte übereinstimmen. Anders ausgedrückt: Die $\alpha$ -Werte bestimmen eindeutig die $\beta$ -Werte; die $\beta$ -Werte sind funktional abhängig von den $\alpha$ -Werten.

Die nächste Tabelle zeigt ein Relationenschema $\cal$R über der Attributmenge {A, B, C, D}.

4|c|R      
A B C D
a4 b2 c4 d3
a1 b1 c1 d1
a1 b1 c1 d2
a2 b2 c3 d2
a3 b2 c4 d3

Aus der momentanen Ausprägung lassen sich z. B. die funktionalen Abhängigkeiten {A} $\rightarrow$ {B},{A} $\rightarrow$ {C},{C,D} $\rightarrow$ {B} erkennen, hingegen gilt nicht {B} $\rightarrow$ {C} .

Ob diese Abhängigkeiten vom Designer der Relation als semantische Konsistenzbedingung verlangt wurden, läßt sich durch Inspektion der Tabelle allerdings nicht feststellen.

Statt {C,D} $\rightarrow$ {B} schreiben wir auch CD $\rightarrow$ B . Statt $\alpha$ $\cup$ $\beta$ schreiben wir auch $\alpha$$\beta$ .

Ein einfacher Algorithmus zum Überprüfen einer (vermuteten) funktionalen Abhängigkeit $\alpha$ $\rightarrow$ $\beta$ in der Relation R lautet:

1.
sortiere R nach $\alpha$ -Werten
2.
falls alle Gruppen bestehend aus Tupeln mit gleichen $\alpha$ -Werten auch gleiche $\beta$ -Werte aufweisen, dann gilt $\alpha$ $\rightarrow$ $\beta$ , sonst nicht.

prev up next