Relationentheorie AIFB SS Zerlegung Zerlegung (1|6) 1.Die funktionalen Abhängigkeiten müssen erhalten bleiben („fA-erhaltend“). 2.Die Zerlegung muß „verlustfrei“ sein (d.h. beim Join dürfen keine unerwünschte Tupel entstehen). Kriterien zur Zerlegung von Relationsschemata
Relationentheorie AIFB SS Zerlegung Zerlegung (2|6) Definition: (Zerlegung, fA-erhaltend, verlustfrei) Geg: Relation r: (U | F); Datenbank D:({r i : (A i | F i ) | i=1, …, n} | Ø) (1)D ist eine Zerlegung von r : A i = U und F i F + Sei D eine Zerlegung von r: ii (2)D ist „fA-erhaltend“ : ( F i + ) + = F + Anmerkung: wegen ( F i + ) + = ( F i ) + gilt insbesondere: F i = F D fA-erhaltend i i i i (3)D ist „verlustfrei“ (auch: „verbundtreu“) : r.A 1 *r.A 2 *... r.A n = r Anmerkung: r.A i ist vom Typ (U i | F i )
Relationentheorie AIFB SS Zerlegung Zerlegung (3|6) Beispiel 1-16: Beispiel für eine Zerlegung: betrachte: r: (abcd | a b, b d, c d) (1) r 1 : (abd | a b); r 2 : (cd | c d) rabcd r.abdabd dcr.cd Zerlegung: ja nicht fA-erhaltend: b d {a b, c d} + nicht verlustfrei: Und: 0010 r.abd r.cd, r
Relationentheorie AIFB SS Zerlegung Zerlegung (4|6) (2)r 1 : (abd | a b, b d); r 2 : (cd | c d) Zerlegung: ja fA-erhaltend: ja nicht verlustfrei Beispiel 1-16 (Fort.) betrachte: r: (abcd | a b, b d, c d)
Relationentheorie AIFB SS Zerlegung Zerlegung (5|6) (3)r: (abcd| a b, b d, c d) r 1 : (ab | a b); r 2 : (acd | c d) Zerlegung: ja nicht fA-erhaltend: s. (1) verlustfrei ? = ‘ !! a b(r) ‘‘ z = z‘.acd, z‘ r: ‘‘ ‘‘ y = y‘.ab, y‘ r : z r.acd y r.ab dcba x r.ab r.acd d.h. z‘=x r ja Beispiel 1-16 (Fort.) zu zeigen: x r.ab r.acd x r betrachte: r: (abcd | a b, b d, c d)
Relationentheorie AIFB SS Zerlegung Zerlegung (6|6) (4)r 1 : (abd|a b,b d) r 2 : (abc|c d) Zerlegung: ja fA-erhaltend: ja verlustfrei: siehe (3) Ergebnis: Es sind alle Kombinationen fA-erhaltend (ja|nein) / verlustfrei (ja|nein) möglich! Beispiel 1-16 (Fort.) betrachte: r: (abcd | a b, b d, c d)