70 likes | 208 Views
1.6.3 Test auf Verlustfreiheit (Verbundtreue) (4|10). (B) Allg. Fall: Zerlegung in n Relationen (n beliebig – n>=2) Dazu: „Tableau-Algorithmus“ Erläuterung zunächst am Beispiel. A 1 : sved;. s. f. v. d. i. k. A 3 : ifk;. e. A 4 : ög;. ö. g. h.
E N D
1.6.3 Test auf Verlustfreiheit (Verbundtreue) (4|10) • (B) Allg. Fall: Zerlegung in n Relationen • (n beliebig – n>=2) • Dazu: „Tableau-Algorithmus“ • Erläuterung zunächst am Beispiel Relationentheorie Ó AIFB
A1: sved; s f v d i k A3: ifk; e A4: ög; ö g h A5: gh ; ri = r.Ai (i=1,2,...) 1.6.3 Test auf Verlustfreiheit (Verbundtreu) (5|10) • Beispiel1-18: r:(U|F) • U={ s (*Student*), • v Vorlesung, • d Dozent[in], • e Semester, • i Institut, • f Fakultät, • k Sekretär[in], • g Gebäude, • h Hausmeister[in], • ö Hörsaal} F lässt sich vereinfachen zu: • F={sve difk, • ved ifk, • d ifk, • i fk, • ö gh, • g h} G={sve d, d i, i fk, Relationentheorie Ó AIFB ö g, g h} Zerlegung nach Augenmaß (3NF!) A2: di; xi r.Ai, x=x1x2... x5 ; Frage: ist xr ?
Attrib. 1s 2v 3d 4e 5i 6f 7k 8g 9h 10ö Zerleg. a0 xr ? a1 a2 a5 a7 a8 a3 a4 a6 a9 y1r a1 a2 a3 a4 b15 b16 b17 b18 b19 b10 b21 b22 a3 b24 a5 a6 a6 b26 b27 a7 a7 b28 b29 b20 y2r b31 b32 b33 b34 a5 a6 a7 b38 b39 b30 y3r b41 b42 b43 b44 b45 b46 b47 a8 b49 a0 y4r b51 b52 b53 b54 b55 b56 b57 a8 a9 b50 y5r 1.6.3 Test auf Verlustfreiheit (Verbundtreue) (6/10) Beispiel 1-18 (Forts.): r :(U|F) U={s,v,d,e,i,f,k,g,h,ö} G={sve d, d i, i fk, ö g, g h} Zerlegung: A1: sved; A2: di; A3: ifk; A4: ög; A5: gh ; Relationentheorie Ó AIFB xr.Ai x=x1.. x5 svde: x1 a5 di: x2 ifk: x3 ög: x4 a9 gh: x5
A6: sveö; Attrib. 1s 2v 3d 4e 5i 6f 7k 8g 9h 10ö Zerleg. a0 xr ? a1 a2 a5 a7 a8 a3 a4 a6 a9 y1r a1 a2 a3 a4 b15 b16 b17 b18 b19 b10 b21 b22 a3 b24 a5 a6 b26 a6 b27 a7 a7 b28 b29 b20 y2r b31 b32 b33 b34 a5 a6 a7 b38 b39 b30 y3r b41 b42 b43 b44 b45 b46 b47 b49 y4r a8 a0 b51 b52 b53 b54 b55 b56 b57 b50 y5r a8 a9 sveö x6 a1 a2 a4 a0 a3 b63 y6r b65 b66 b67 b68 b69 a5 a6 a7 a8 a9 1.6.3 Test auf Verlustfreiheit (Verbundtreue) (7/10) Beispiel 1-18 (Forts.):r:(U|F); F={sve difk, ved ifk, d ifk, i fk,ö gh, g h} s f i v d k e ö g h Zerlegung: A1: sved; A2: di; A3: ifk; A4: ög; A5: gh ; Relationentheorie Ó AIFB xr.Ai x=x1...x5x6 svde: x1 a5 di: x2 ifk: x3 ög: x4 a9 gh: x5
1.6.3 Test auf Verlustfreiheit (Verbundtreue) (8|10) Geg.: r: (U | F); D: ({ri: (Ái | Fi) | i=1, …, k} | Ø) Zerlegung von r U = {u1, u2, …, un} = A1 A2 … Ak Frage: Zerlegung verlustfrei? • Konstruiere Matrix MAT (Tabelle / „Tableau“) mit:k Zeilen (für Zerlegung A1, A2, …, Ak)n Spalten (für Attribute u1, u2, …, un); • besetze die Matrix mit Anfangswerten: aj, falls ujAi • MAT[i,j]= bij, sonst • (aj,bij – syntakt. Symbole) Relationentheorie Ó AIFB
1.6.3 Test auf Verlustfreiheit (Verbundtreue) (9|10) • Wiederhole: • Wähle ein X Y F; • suche die Zeilen von MAT, die in den X-Spalten übereinstimmen; • setze in diesen Zeilen die Y-Werte gleich • dabei: bevorzuge aj (vor bij) d.h. ist eines der gleich zu setzenden Zeichen gleich aj, so wähle als Ergebnis aj • bis: • sich MAT nicht mehr verändert oder • in MAT eine Zeile der Form (a1, a2, …, an) Relationentheorie Ó AIFB
1.6.3 Test auf Verlustfreiheit (Verbundtreue) (10|10) • Ergebnis: • Zerlegung verlustfrei in MAT eine Zeile der Form (a1, a2, …, an). Relationentheorie Ó AIFB