Fragen zum DE-Teil

Nullmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 139
Registriert: 21. Apr 2015 20:59

Fragen zum DE-Teil

Beitrag von Nullmann » 25. Apr 2016 15:14

Ich bin die Materialien nun komplett durch und hätte da zwei Fragen:

1) Bei der Übung 4, Aufgabe 5: Ist es dort auch möglich I->A, G->A und T->An zu entfernen?
Diese drei sind unnötig, weil man alle rechten Seiten mit I bestimmen kann.

Übig bleiben würde also:
I -> N,V,G,A,An
N,V,G -> T

mit I als Schlüsselkandidat, welcher aber nicht der 3. Normalform entspricht, weil T nur transitiv vom Primärschlüssel abhängt.

2) Was ist der generelle Sinn des Syntheseverfahrens? Ich habe das so verstanden, dass man dadurch ein Schema an die Hand bekommt, welches die Relationen aufteilt, aber gleichzeitig die Abängigkeits- und Verbundtreue sicher stellt.
Jedoch ist es in dem Tutorium 5, Aufgabe 2 so, dass sich die Relationen sowohl vor als auch nach dem Syntheseverfahren in der 2. Nofrmalform befinden.
Heißt das also, dass das Verfahren nicht unbedingt zu einer Verbesserung führen muss? Oder welche Implikationen kann man hieraus schließen?

Mfg,
Nullmann

Benutzeravatar
Robert
Ehemalige Fachschaftler
Beiträge: 511
Registriert: 6. Okt 2004 17:38
Wohnort: DA

Re: Fragen zum DE-Teil

Beitrag von Robert » 26. Apr 2016 10:52

Nullmann hat geschrieben: 1) Bei der Übung 4, Aufgabe 5: Ist es dort auch möglich I->A, G->A und T->An zu entfernen?
Diese drei sind unnötig, weil man alle rechten Seiten mit I bestimmen kann.

Übig bleiben würde also:
I -> N,V,G,A,An
N,V,G -> T

mit I als Schlüsselkandidat, welcher aber nicht der 3. Normalform entspricht, weil T nur transitiv vom Primärschlüssel abhängt.
Bei solchen Fragen sollte man sich immer folgendes ins Gedächtnis rufen: 'Zwei FD-Mengen sind äquivalent, g.d.w. sie die gleiche Hülle besitzen. (die eine darf weder größer noch kleiner sein als die andere)."

Wenn wir uns nun die Aufgabe anschauen, dann ist es richtig, dass man I->A entfernen kann (wird auch auf der nächsten Folie dann gemacht), weil man das in I -> N,V,G,A,An nochmals wiederfindet. (siehe auch decomposition rule)

Es ist auch richtig, dass man die rechte Seite A auch ohne G->A bestimmen kann, aber würde man G->A entfernen, dann kann man die FD G->A nicht aus den vorhandenen FDs wieder herstellen. Oder anders gesagt: mit G->A kann man das Alter aus dem Geburtstag ableiten, ohne geht das nicht mehr.

Ein einfacheres Beispiel dazu wäre:
F=(A->X, B->X), dann ist die Hülle davon (ziemlich einfach) F+=(A->X, B->X), wenn ich nun B->X streiche, dann komme ich nie mehr irgendwie auf das gleiche F+.

Anders wäre der Fall bei: F=(A->X, B->X, B->A), hier ist F+=(A->X, B->X, B->A). Nun kann ich B->X streichen und erhalte F'=(A->X, B->A). Die Hülle von F' ist aber: F'+=(A->X, B->A, B->X) und somit gleich. Das B->X kann ich durch B->A und A->X wieder erzeugen (siehe Transitivitäts Axiom).

Aus dem gleichen Grund darf man T->An auch nicht weglassen.
Nullmann hat geschrieben: 2) Was ist der generelle Sinn des Syntheseverfahrens? Ich habe das so verstanden, dass man dadurch ein Schema an die Hand bekommt, welches die Relationen aufteilt, aber gleichzeitig die Abängigkeits- und Verbundtreue sicher stellt.
Jedoch ist es in dem Tutorium 5, Aufgabe 2 so, dass sich die Relationen sowohl vor als auch nach dem Syntheseverfahren in der 2. Nofrmalform befinden.
Heißt das also, dass das Verfahren nicht unbedingt zu einer Verbesserung führen muss? Oder welche Implikationen kann man hieraus schließen?
Das Syntheseverfahren war nur eine Hinführung zum Syntheseverfahrens mit Dummy FD. Es dient dem Verständnis und hat keinen wirklich tollen Sinn. Es kann für bestimmte Fälle die 3 NF erzeugen, aber eben nicht für alle. Mit der Dummy FD erhält man immer die 3NF; das wäre dann auch der Sinn des Syntheseverfahrens mit Dummy FD.

Zur Aufgabe 5.2: vor dem Verfahren ist die 2 NF verletzt weil der SK = {A,B} ist und z.B. I nur von A abhängt.
Nach dem Verfahren mit Dummy FD hat man nicht nur eine Relation sondern 5.
Diese 5 Relationen sind Verbundtreu: d.h. man kann aus ihnen (mittels Join) die ursprüngliche Relation wieder herstellen.
Außerdem ist jede dieser Relationen in der 3NF.

Ich glaube dein Denkfehler lag darin, dass du die transitiven Abhängigkeiten über die Relationen hinweg betrachtet hast und daraus geschlossen hast die 3NF wäre verletzt. Man betrachtet aber jede Relation für sich.

Nullmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 139
Registriert: 21. Apr 2015 20:59

Re: Fragen zum DE-Teil

Beitrag von Nullmann » 26. Apr 2016 11:38

Danke schonmal für die ausführliche Antwort, das hat mir bei meiner ersten Frage und bei dem Unterschied zwischen dem "sinnlosen" Syntheseverfahren und dem Syntheseverfahren mit Dummy-FD besser erklärt.

Zu dem Syntheseverfahren mit der Dummy-FD habe ich trotzdem eine Frage:
In der Lösung vom Tutorium 5, Aufgabe 2 in der das Syntheseverfahren mit Dummy-FD verwendet werden sollte, steht Folgendes:
Tutorium 5, Aufgabe 2 hat geschrieben: Normalform nachher
Für die Wahl von {B,F} als Primärschlüssel von R1 ist die 2NF verletzt (da D nur partiell abhängig).
Dann müsste man D aus R1 entfernen.
Das Ergebnis ist nicht in 3 NF. Für die Wahl von {C,E} als Primärschlüssel ist z.B. D transitiv abhängig
(CE → DF, CD → A, AE → B, B → D). Es ist dabei unerheblich, dass A in R1 gar nicht vorkommt. Es gibt
„mehr als einen Weg“ von CE zu D, was zu Inkonsistenzen führen kann.
Man müsste R1weiter aufspalten, z.B. BF und D trennen.
Das heißt, obowhl hier das Syntheseverfahren mit Dummy-FD angewendet wurde (welches laut deiner Erklärung immer zur 3. NF führt), befinden sich die Relationen danach nicht in der 3. NF. Genau daher kam ja auch eine Verwirrung was den Sinn von dem Syntheseverfahren angeht.

Hab ich da was falsch verstanden?

Mfg,
Nullmann

Benutzeravatar
Robert
Ehemalige Fachschaftler
Beiträge: 511
Registriert: 6. Okt 2004 17:38
Wohnort: DA

Re: Fragen zum DE-Teil

Beitrag von Robert » 26. Apr 2016 16:32

Da ist irgendwas komisch. Ich hab nochmal in der Literatur nachgeschaut und der Fehler seint im Zusammenfassen der Äquivalenten Seiten zu liegen. Der Schritt kommt in der Literatur nirgends vor.

Wenn man nur die identischen linken Seiten zusammenfasst (und nicht die äquivalenten), dann erhält man
AE->B
B->D
CD->A
CE->DF\delta
BF->CE
(das delta könnte auch woanders stehen, je nachdem in welcher reihenfolge man die dummy fd reduziert hat)

Entsprechend erhält man dann folgende Relationen
R0(A, B, E) mit SK AE
R1(B, D) mit SK B
R2(A, C, D) mit SK CD
R4(C, D, E, F) mit SK CE
R5(B, C, E, F) mit SK BF

Ich werde mich das nochmal genauer ansehen, aber fürs erste würde ich das äquivalente Zusammenfassen nicht anwenden.

Benutzeravatar
Robert
Ehemalige Fachschaftler
Beiträge: 511
Registriert: 6. Okt 2004 17:38
Wohnort: DA

Re: Fragen zum DE-Teil

Beitrag von Robert » 28. Apr 2016 10:46

Ja, also der Schritt ist definitiv falsch und sollte weggelassen werden. Ich kann auch nicht mehr nachvollziehen wie das in die Folien geraten ist, da das schon so lange da drin ist, dass wir da noch kein SVN für die Materialien benutzt haben.

Jedenfalls werde ich es so machen, dass dieser Schritt in der Klausur nicht vorkommt (es wird also keine ungleichen aber äquivalenten linke Seiten geben). Dann ist es egal ob ein Student den Schritt macht oder nicht. Der Schritt wird bei der Bewertung einfach ignoriert.

Der Schritt bei dem gleiche linke Seiten zusammengefasst werden ist wichtig und muss gemacht werden.(z.B.: A->B, A->C haben die gleiche linke Seite. Aber A->B, X->B haben äquivalente linke Seiten. )

Nullmann
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 139
Registriert: 21. Apr 2015 20:59

Re: Fragen zum DE-Teil

Beitrag von Nullmann » 28. Apr 2016 11:02

Ah, vielen Dank für Deine Recherche und für die Information! :)

Antworten

Zurück zu „Archiv“