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 ![]() ![]() ![]() ![]() |
D ![]() ![]() ![]() ![]() |
|||
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 ![]() |
C | ![]() |
A, |
BE ![]() |
|||
BC | ![]() |
D, |
CG ![]() |
|||
ACD | ![]() |
B, |
CE ![]() |
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 ![]() |
ist redundant wegen | C | ![]() |
A |
CG ![]() |
ist redundant wegen | CG | ![]() |
D | |
C | ![]() |
A | |||
ACD | ![]() |
B | |||
Regel |
ACD ![]() |
kann gekürzt werden zu | CD | ![]() |
B , wegen
C ![]() |