Introduction to Data and Knowledge Engineering Sommersemester 2015 Robert Rehner Tutorium 5: Syntheseverfahren Lösungsvorschlag Aufgabe 5.1: Verbundtreue Angenommen, Sie haben eine Relation R = ABCDEF mit F = {A CD, B EF}. Der einzige Schlüsselkandidat ist {A, B}. Die Relation verletzt dann aber die 2NF (machen Sie sich dies noch einmal klar, wenn das nicht ersichtlich ist). Eine offensichtliche Lösung ist, R in 2 Relationen aufzuspalten: R 1 = ACD und R 2 =BEF. Warum ist dies keine sinnvolle Lösung? Lösungsvorschlag: Die Lösung verletzt die Verbundtreue. Man kann aus R 1 und R 2 nicht so einfach R zurückgewinnen. Klarmachen kann man sich dies an folgendem Beispiel: Die Aufspaltung ergibt: A B C D E F 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 A C D B E F 1 3 4 2 5 6 7 9 10 8 11 12 13 15 16 14 17 18 19 21 22 20 23 24 Diese beiden Relationen lassen sich nicht mehr so einfach zu der ursprünglichen Relation zusammenführen, denn die Information, dass A=1 und B=2 in eine Zeile gehören, ist verloren gegangen. Stand: 30.04.2015 16:20 1
Aufgabe 5.2 Vereinfachtes Syntheseverfahren mit Dummy-FD Ein Datenbank-Admin hat von einem Unternehmen den Auftrag erhalten, eine existierende, komplexe Datenbank hinsichtlich besserer Strukturierung zu optimieren. Unter den zahllosen Tabellen innerhalb der Datenbank, hat er eine Tabelle in Augenschein genommen, welche geradezu prädestiniert ist, optimiert zu werden. Der DB-Admin erinnert sich an jene Tage seines Studiums an der TU Darmstadt, als er in einer DKE Vorlesung ein Verfahren erlernt hatte, welches ermöglicht Relationen-Schemata algorithmisch zu zerlegen um damit höhere Normalformen zu erreichen. Die Tabelle um die es geht, hat folgendes Schema (ohne Angabe der Schlüssel): TicketID TransactionNr CustomerOp AccountMngrOp ItemTitle ItemID Zwecks Lesbarkeit vereinfachen wir das unübersichtliche Relationen-Schema zu der folgenden abstrahierte Form: A B C D E F Weiterhin sei bekannt, dass innerhalb der Tabelle folgende funktionale Abhängigkeiten existieren: AE BD B D CD A CE DF DFB CE Gehen Sie nun wie folgt vor, bestimmen Sie zunächst sämtliche Schlüsselkandidaten, welche für das gegebene Relationenschema in Frage kommen, sowie die höchste vorliegende Normalform (max. 3 NF). Wenden Sie anschließend das vereinfachte Syntheseverfahren mit Dummy-FD an, wie in Lösung zu Übung 4 beschrieben. Überlegen Sie sich, wozu die Dummy-FD gebraucht wird. Prüfen Sie im Anschluss daran, ob das Ergebnis die 3 NF erfüllt. Ist dies nicht der Fall, so geben Sie bitte an, weshalb nicht und wie sich dies reparieren lässt. Erklären Sie wie die Begriffe Aufspalten von Relationen, Ausgangsrelation sowie Informationsverlust miteinander zusammenhängen. Stand: 30.04.2015 16:20 2
Lösungsvorschlag: Schlüsselkandidaten Zunächst betrachten wir die transitive Hülle, um daraus herleiten zu können, welche Attributemengen als Schlüsselkandidaten in Frage kommen. Linke Seite Bestimmt Attribute AE A B D E B B D CD A C D CE A B C D E F BDF A B C D E F Triviale Abhängigkeiten sind in blau. Gegebene Abhängigkeiten sind rot, transitiv daraus abgeleitete grün. Es fällt auf das die Superschlüssel CE sowie BDF alle anderen Nichtschlüsselattributen funktional bestimmen. Da jedoch das Attribut D in BDF überflüssig ist, ergibt sich für die Menge der Schlüsselkandidaten SK insgesammt: SK = {{B, F}, {C, E}, {A, E, F}} Es stellt sich hier die jedoch Frage, warum D in BDF überflüssig ist? Hierfür müssen wir die Attributhülle von BF genauer betrachten: Die trivialen Abhängigkeiten sind: B und F. Über B erreichen wir D und können anschließend mit CD auch noch A erreichen, sowie über DFB auch E, sodass insgesamt sämtliche Nichtschlüsselattribute von BF ohne Zuhilfenahme von D bestimmt werden können: Linke Seite Bestimmt Attribute BF A B C D E F Damit kann D aus BDF entfernt werden. Als Abkürzung kann man hier auch sehen, dass D von B alleine bestimmt wird (FD B D) und somit D auf der linken Seite BDF überflüssig ist. Weiterhin ist AEF ein Schlüsselkandidat. AEF taucht zwar nirgends auf der linken Seite auf, dies ist jedoch keine Voraussetzung für einen Schlüsselkandidaten. Es stellt sich die Frage, wie man aus der Menge aller möglichen Kombinationen genau AEF findet: Ausgehend von AE ABDE fehlen für einen SK noch C und F. Nähme man C hinzu, erhielte man ACE, welcher aber nicht minimal ist (CE reicht aus). Nimmt man F hinzu, erhält man mit DFB CE das noch fehlende C. Für die anderen Attributmengen, die fast die gesamte Attributmenge bestimmen probiert man Ähnliches, erhält aber keine weiteren Schlüsselkandidaten. Normalform vorher Die höchste vorliegende Normalform ist in diesem Fall: 2 NF. Grund: Für die Wahl von {C, E} als Primärschlüssel hängen alle Attribute vollständig von vom Primärschlüssel ab. B ist transitiv von {C, E} abhängig. Syntheseverfahren Wähle Schlüsselkandidat: {C, E} Linke Seite Bestimmt Attribute AE A B D E B B D CD A C D CE A B C D E F BDF A B C D E F ABCDEF δ Stand: 30.04.2015 16:20 3
1. Entfernen überflüssiger Attribute In BDF ist D überflüssig (wurde bereits gezeigt). In ABCDEF ist ABDF überflüssig (weil wir {C,E} als Schlüssel gewählt haben). 2. Entfernen überflüssiger FDs Die einzige FD, die im gegebenen Szenario überflüssig ist lautet: AE D (wegen Transitivität AE B, B D). 3. Identische linke Seiten zusammenfassen CE δ, CE DF 4. Äquivalente linke Seiten zusammenfassen CE δ, CE DF, BF CE (CE DF, CD A, AE BD und BF CE) AE B B D CD A 5. Bilden der Relationenschemata R 1 = (BCDEF, {{B, F}, {C, E}} R 2 = (ABE, {{A, E}} R 3 = (BD, {{B}} R 4 = (ACD, { {C, D}} Frage: Wofür wird die Dummy-FD genau benötigt? Die Hinzunahme einer Dummy-FD ist im Grunde ein Trick, um die Verbundtreue wiederzustellen, welche bei dem vereinfachten Syntheseverfahren aufgelöst kann. Ist die Synthese abgeschlossen, kann die Dummy-FD wieder entfernt werden. Frage: Muss die Dummy-FD immer mitgeführt werden? Prinzipiell schadet es nie die Dummy-FD zu verwenden. Falls diese überflüssig ist, wird diese mit den FDs, die eine äquivalente linke Seite haben zusammengefasst und führt damit nicht zu der Bildung einer neuen Relation. Normalform nachher Für die Wahl von {B,F} als Primärschlüssel von R 1 ist die 2NF verletzt (da D nur partiell abhängig). Dann müsste man D aus R 1 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 R 1 gar nicht vorkommt. Es gibt mehr als einen Weg von CE zu D, was zu Inkonsistenzen führen kann. Man müsste R 1 weiter aufspalten, z.b. BF und D trennen. Erklären Sie wie die Begriffe Aufspalten von Relationen, Ausgangsrelation sowie Informationsverlust miteinander zusammenhängen. Beim Aufspalten von Relationen ist es natürlich wichtig, dass die Transformation verlustlos verläuft, d.h. dass die Ausgangsrelation durch eine Anfrage wiederhergestellt werden kann, sodass kein Informationsverlust entsteht. Stand: 30.04.2015 16:20 4
Aufgabe T-5.3: Vereinfachtes Syntheseverfahren und Normalformen Sei R = ABCDEFGH eine Relation und F = {AB CD, DE AB, AC F, BF EG, E C, G H, H BF} eine Menge FDs über dieser Relation. Bestimmen Sie die höchste vorliegende Normalform und wenden Sie das vereinfachte Syntheseverfahren mit Dummy-FD an. Überprüfen Sie nochmals, ob das Ergebnis die 3NF erfüllt. Falls nein, wie müssen die Relationenschemata verändert werden um die 3NF zu erfüllen? Hinweis: Diese Aufgabe ist komplex und soll das Verständnis vertiefen. Es wird empfohlen, diese Aufgabe erst zu bearbeiten, wenn Sie das Syntheseverfahren prinzipiell verstanden haben. Lösungsvorschlag: Schlüsselkandidaten: AB CD, AC F, BF EG, E C, G H, H BF AB ABCDEFGH DE AB, AB CD, AC F, BF EG, E C, G H, H BF DE ABCDEFGH AC F AC ACF BF EG, E C, G H, H BF BF BCEFGH E C E EC G H, H BF, BF EG, E C G BCEFGH H BF, BF EG, E C H BCEFGH Schlüsselkandidaten SK = {{A, B}, {D, E}, {A, G}, {A, H}, {B, D, F}, {D, G}, {D, H}} Höchste vorliegende Normalform: 1. NF: Nur atomare Attribute erfüllt 2. NF: C und H sind nur partiell von einigen Schlüsselkandidaten abhängig aber: mit AB als Primärschlüssel gibt es keine partiellen Abhängigkeiten vom Primärschlüssel 2. NF erfüllt 3. NF: mehrere transitive Abhängigkeiten bei allen Schlüsselkandidaten (siehe letzte Folie) 3. NF nicht erfüllt Stand: 30.04.2015 16:20 5
Vereinfachte Syntheseverfahren mit Dummy-FD FD-Menge F erweitert mit der Dummy-FD: F = {AB CD, DE AB, AC F, BF EG, E C, G H, H BF, ABCDEFGH δ} 1. überflüssige Attribute entfernen: CDEFGH in ABCDEFGH δ (mehrere Möglichkeiten: statt AB könnte auch ein anderer Schlüsselkandidat übrig bleiben) 2. überflüssige FDs entfernen: keine 3. FDs mit identischer linker Seite zusammenfassen: AB CD, AB δ DE AB AC F BF EG E C G H H BF 4. Äquivalente linke Seiten zusammenfassen: AB CD, AB δ, DE AB AC F BF EG, G H, H BF E C 5. Relationen bilden: R 1 : (ABCDE, {{A, B}, {D, E}}) R 2 : (ACF, {{A, C}}) R 3 : (BEFGH, {{B, F}, {G}, {H}}) R 4 : (EC, {{E}}) 3. Normalform erfüllt? Für die Wahl von {A, B} als Primärschlüssel ist die 3. NF in R 1 verletzt, da in C transitiv vom Primärschlüssel abhängt (über E) [Für die Wahl von {D, E} ist schon die 2. NF verletzt]. Lösung: C aus R 1 entfernen (kein Informationsverlust, da C durch E aus R 4 bestimmt werden kann) außerdem verletzt R 3 die 3. NF. Lösung: H aus R 3 entfernen und R 5 : (GH, {{G}}) erstellen. (dies entspräche dem Ergebnis des vollständigen Syntheseverfahrens) Stand: 30.04.2015 16:20 6