Wir betrachten folgendes Relationenschema:
ProfessorenAdr : | {[PersNr, Name, Rang, Raum, |
Ort, Straße, PLZ, Vorwahl, BLand, Landesregierung]} |
Hierbei sei Ort der eindeutige Erstwohnsitz des Professors, die Landesregierung sei die eindeutige Partei des Ministerpräsidenten, BLand sei der Name des Bundeslandes, eine Postleitzahl (PLZ) ändere sich nicht innerhalb einer Straße, Städte und Straßen gehen nicht über Bundesgrenzen hinweg.
Folgende Abhängigkeiten gelten:
1. | {PersNr} | {PersNr, Name, Rang, Raum, | |
Ort, Straße, PLZ, Vorwahl, BLand, EW, Landesregierung} | |||
2. | {Ort, BLand} | {Vorwahl} | |
3. | {PLZ} | {BLand, Ort} | |
4. | {Ort, BLand, Straße} | {PLZ} | |
5. | {BLand} | {Landesregierung} | |
6. | {Raum} | {PersNr} |
Hieraus können weitere Abhängigkeiten abgeleitet werden:
7. | {Raum} | {PersNr, Name, Rang, Raum, | |
Ort, Straße, PLZ, Vorwahl, BLand, Landesregierung} | |||
8. | {PLZ} | {Landesregierung} |
Bei einer gegebenen Menge F von funktionalen Abhängigkeiten über der Attributmenge U interessiert uns die Menge F + aller aus F ableitbaren funktionalen Abhängigkeiten, auch genannt die Hülle (engl. closure) von F .
Zur Bestimmung der Hülle reichen folgende Inferenzregeln, genannt Armstrong Axiome, aus:
Weitere Axiome lassen sich ableiten:
Wir wollen zeigen: {PLZ} {Landesregierung} läßt sich aus den FDs 1-6 für das Relationenschema ProfessorenAdr herleiten:
: = { U | F +}
Es gilt der Satz:
Die Menge kann aus einer Menge F von FDs und einer Menge von Attributen wie folgt bestimmt werden:
X 0 : =
X i + 1 : = X i falls F X i
D. h. von einer Abhängigkeit , deren linke Seite schon in der Lösungsmenge enthalten ist, wird die rechte Seite hinzugefügt. Der Algorithmus wird beendet, wenn keine Veränderung mehr zu erzielen ist, d. h. wenn gilt: X i + 1 = X i.
Sei | U | = | { A,B,C,D,E,G } |
Sei | F | = | { AB C,C A,BC D,ACD B, |
D EG,BE C,CG BD,CE AG } | |||
Sei | X | = | { B,D } |
X 0 | = | BD | |
X 1 | = | BDEG | |
X 2 | = | BCDEG | |
X 3 | = | ABCDEG = X 4, Abbruch. | |
Also: | (BD)+ | = | ABCDEG |
Zwei Mengen F und G von funktionalen Abhängigkeiten heißen genau dann äquivalent (in Zeichen F G ), wenn ihre Hüllen gleich sind:
F G F + = G +
Zum Testen, ob F + = G +, muß für jede Abhängigkeit F überprüft werden, ob gilt: G +, d. h. . Analog muß für die Abhängigkeiten G verfahren werden.
Zu einer gegebenen Menge F von FDs interessiert oft eine kleinstmögliche äquivalente Menge von FDs.
Eine Menge von funktionalen Abhängigkeiten heißt minimal
Sei U | = | { A,B,C,D,E,G } |
Sei F | = | { | AB | C, | D EG | |
C | A, | BE C, | ||||
BC | D, | CG BD, | ||||
ACD | B, | CE AG } |
Aufspalten der rechten Seiten liefert
AB | C | |
C | A | |
BC | D | |
ACD | B | |
D | E | |
D | G | |
BE | C | |
CG | B | |
CG | D | |
CE | A | |
CE | G |
Regel | CE A | ist redundant wegen | C | A | |
CG B | ist redundant wegen | CG | D | ||
C | A | ||||
ACD | B | ||||
Regel | ACD B | kann gekürzt werden zu | CD | B , wegen C A |