70 likes | 190 Views
1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (2|8). Synthese Ausgangspunkt: Menge U von Attributen Menge F von fA‘s. Prinzipielle Vorgehensweise : Schrittweises Zusammenfassen von Attributen und fA‘s zu Relationsschemata unter Berücksichtigung der 3NF-Eigenschaft.
E N D
1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (2|8) • Synthese • Ausgangspunkt: Menge U von Attributen Menge F von fA‘s • Prinzipielle Vorgehensweise: • Schrittweises Zusammenfassen von Attributen und fA‘s zu Relationsschemata unter Berücksichtigung der 3NF-Eigenschaft. Relationentheorie Ó AIFB
1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (3|8) Zur Synthese gibt es einen Algorithmus „Synthese-Algorithmus“nach Bernstein 1976, Biskup, Dayal, Bernstein 1979 • Dieser erzeugt 3NF-Relationen (sogar BCNF). • Bei großem F aufwendig, da redundante fA‘s entfernt werden müssen: • „Membership-Problem“ Geg.: G ( F+), g G Frage: g (G \ {g})+ ?Hierzu mehrfach Berechnung von F+ bzw. andererMengen von fA’s notwendig. Relationentheorie Ó AIFB
1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (4|8) • Synthesealgorithmus (grob)Gegeben: U, F (U);Relation r:(U | F); K (bel.) Schlüssel [A] Wandle F um zu H mitH ~ F und H „möglichst einfach“:H: L1R1; L2 R2; ...; LkRko.B.d.A.: ij Li Lj; Li Ri = Ø (i, j = 1, ..., k) [B] Mache aus jedem Li Ri eine Relationri :(LiRi | Li Ri) (i = 1, ..., k)Ist (r1, r2, ..., rk ) eine Zerlegung von r? (vgl. 1.6.2, Def. S.2/7)(Z1) Attribute: Es gilt i (LiRi) = U‘ U, aber ist möglich! (1)(Z2) fA‘s: i {Li Ri} = H ~ F und somit F+, sogar H+ = F+. (2) [C] falls i: Li U F+: (r1, r2, ..., rk ) (3)falls nein: (r0, r1, r2, ..., rk ) mit r0:(K | Ø) (4) ist verlustfreie fA-erhaltende Zerlegung von rin BCNF-Relationen Relationentheorie Ó AIFB
1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (5|8) Anmerkungen zu „Synthesealgorithmus (grob)“: • Sei S:= U \ U‘; dann gilt: a S: a ist Attribut jedes Schlüssels in r! • Falls „Zerlegung“ (s. (Z1)), dann fA-erhaltend! • In diesem Fall kann es keine “isolierten“ Attribute a geben –d.h. S = Ø! – somit „Zerlegung“. • In diesem Fall sind alle isolierten Attribute in K – d.h. S K! (wg. (1)) – somit wieder „Zerlegung“. • (3&4) In beiden Fällen: Zerlegung enthält Schlüssel, somit verlustfrei! Relationentheorie Ó AIFB zurück
1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (6|8) Synthesalgorithmus (ausführlich): Gegeben: U, F F(U); Relation r:(U | F); K (bel.) Schlüsselo.B.d.A.: F enthält keine trivialen fA‘s • [A] „Wandle F um zu H mit H ~ F und H ‚möglichst einfach‘ “: • 1. Schritt: Mache alle f F einfachErgebnis: F‘; F‘ ~ F • 2. Schritt: Entferne überflüssige Attribute der linken Seiten der fA‘s Ergebnis: G; G ~ F; alle f G sind elementar • 3. Schritt: Finde nicht redundante Überdeckung in G, Ergebnis: H; H ~ G Relationentheorie Ó AIFB
1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (7|8) • [B]Mache aus jedem Li Ri eine Relation ri :(LiRi | Li Ri) 4. Schritt: Fasse funktionale Abhängigkeitenmit gleicher linker Seite Lizu einer Klasse zusammen. Ergebnis: Hi = {Li b | Li b H} (i =1, …, m) Setze: Ri = {b | Li b Hi} (i =1, …, m) 5. Schritt: Konstruiere Relationsschemata:- := {ri: (Li Ri | Hi) | i =1, …, m} (es gilt dabei natürlich auch: - := {ri: (Li Ri | Li Ri) | i =1, …, m} ) Relationentheorie Ó AIFB
1.6.4 Algorithmen zur Bildung von 3NF-Relationsschemata (8|8) • [C] • 6. Schritt: Prüfe, ob irgendeine Attributmenge Li Ri bereits einen Schlüssel von r enthält. • Falls Li U F+ für ein i, dann := - sonst := - {r0 : (K | Ø)} • Ergebnis: ist • Zerlegung von r • verlustfrei • fA-erhaltend • in 3NF (sogar in BCNF). Relationentheorie Ó AIFB