Frage zu Übung 4 - überflüssige funktionale Abhängigkeiten

Florian J.
Erstie
Erstie
Beiträge: 15
Registriert: 10. Apr 2010 10:48

Frage zu Übung 4 - überflüssige funktionale Abhängigkeiten

Beitrag von Florian J. »

Kann mir vielleicht jemand noch einmal erklären, wie man allgemein überflüssige Abhängigkeiten erkennt / wie man dabei vorgeht ?

Irgendwie stehe ich da vollkommen auf dem Schlauch.
Zuerst hatte ich gedacht, das man sich nun anstatt der Attribute (die linke Seite) nun für die funktionalen Abhängigkeiten die rechte Seite ansehen muss.
Das würde für das entfernen von A,An in der ersten FD sprechen.
Zusätzlich wird ja aber auch noch I->A entfernt.
D.h. man darf sich nun also nicht mehr nur noch die FDs mit mehr als einem Element auf der rechten Seite ansehen, sondern muss alle betrachten (im Gegensatz zum Vorgehen bei den Attributen).

Die Musterlösung hilft mir an dieser Stelle leider nicht wirklich weiter. Eine allgemeine Herleitung würde mir immens weiterhelfen.


Vielen Dank schon einmal.

sab
Mausschubser
Mausschubser
Beiträge: 97
Registriert: 28. Okt 2011 08:42

Re: Frage zu Übung 4 - überflüssige funktionale Abhängigkeit

Beitrag von sab »

Ich zeige mal am Beispiel der Übung 4.3, wie ich das mache:

F = {B -> C, B -> E, A -> DE, B -> F, F -> GH, A -> I, D -> I, B -> H, CF -> E}

Ich schreibe mir dann alle Abhängigkeiten so auf, dass auf der rechten Seite nur noch ein Attribut steht:

B -> C
B -> E
A -> D
A -> E
B -> F
F -> G
F -> H
A -> I
D -> I
B -> H
CF -> E

Jetzt schaue ich mir für jedes Element auf der linken Seite die Hülle an, ohne das jeweils zu suchende Element zu überprüfen. Am Beispiel B -> C schaue ich, was wird durch B determiniert, ohne B -> C zu betrachten? Komme ich auch ohne B -> C mit B auf C? Dann ist B -> C überflüssig, weil ich schon auf einem anderen Weg dort hin komme. Die bereits gefundenen überflüssigen FDs verwende ich dann auch nicht mehr beim Bilden der Hülle für nachfolgende FDs.
Die Hüllen habe ich in einer anderen Farbe hinter die FDs geschrieben. Die unterstrichenen Attribute sind die überflüssigen.

B -> C B -> BEFGH -> komme nicht auf C, also nicht überflüssig
B -> E B -> BCEFGH -> komme durch CF -> E auf E, also überflüssig
A -> D A -> AEI -> komme nicht auf D, also nicht überflüssig
A -> E A -> ADI -> komme nicht auf E, also nicht überflüssig
B -> F B -> BCH -> komme nicht auf F, also nicht überflüssig
F -> G F -> H -> komme nicht auf G, also nicht überflüssig
F -> H F -> G -> komme nicht auf H, also nicht überflüssig
A -> I A -> ADEI -> komme auf I, also überflüssig
D -> I D -> D -> komme nicht auf I, also nicht überflüssig
B -> H B -> BCEFGH -> komme auf H, also überflüssig
CF -> E CF -> CFGH -> komme nicht auf E, also nicht überflüssig

Damit werden die überflüssigen (unterstrichenen) FDs aus F gelöscht:

F' = {B -> C, A -> DE, B -> F, F -> GH, D -> I, CF -> E}

Das ist zwar etwas mehr Arbeit, aber ich muss keine Angst haben, irgendeine überflüssige FD zu übersehen. Und man muss sich auch nicht alle anschauen, bei CF -> E sieht man schon, dass es nicht klappen wird, weil man mit C oder F auch nicht transitiv auf E kommen kann.

Florian J.
Erstie
Erstie
Beiträge: 15
Registriert: 10. Apr 2010 10:48

Re: Frage zu Übung 4 - überflüssige funktionale Abhängigkeit

Beitrag von Florian J. »

Klasse. Vielen Dank für die top Erklärung. Ja gerade die Gefahr etwas zu übersehen finde ich mit das größte Problem.

Antworten

Zurück zu „Archiv“