300 likes | 406 Views
Adatbázisrendszerek elméleti alapjai 9. előadás. Osztott adatbázisok. Osztott adatbázisok. Gyors ismétlés: teljes redukáló Teljes redukáló költsége Természetes összekapcsolások vetítése Természetes összekapcsolások vetítésének költsége. Gyors ismétlés: teljes redukáló.
E N D
Adatbázisrendszerek elméleti alapjai9. előadás Osztott adatbázisok
Osztott adatbázisok • Gyors ismétlés: teljes redukáló • Teljes redukáló költsége • Természetes összekapcsolások vetítése • Természetes összekapcsolások vetítésének költsége 9. előadás
Gyors ismétlés: teljes redukáló • Feladat: R1, R2, …, Rk relációk redukáltjai (R1, R2, …, Rk)– re nézve • R1 :=R1(R1 ⋈ R2 ⋈ … ⋈ Rk) • R2 :=R2(R1 ⋈ R2 ⋈ … ⋈ Rk) • … • Rk :=Rn(R1 ⋈ R2 ⋈ … ⋈ Rk) • ( vetítés) • Teljes redukáló: • Féligösszekapcsolásokkal (⋉, ⋊) operáló program • Előállítja az előző redukáltakat 9. előadás
Teljes redukáló költsége • Adottak: • R1, R2, …, Rk relációk • R1 ⋈ R2 ⋈ … ⋈ Rk –re füllevágások:G fix, aciklikus gráf (ciklikus NP nehéz) • Tudjuk: • 2(k – 1) ⋉ lépés • E fül F-re • Első menetben: F := F ⋉ E = F∩E(F) • => küldött halmaz: ≤|E| • Második menetben: előző menet részhalmazai • => küldés halmaz : ≤|E| 9. előadás
Teljes redukáló költsége • Átviteli költség ≤ 2 ⋅ I • I: input méret: inputrelációk méretösszege • Fix költség: c0 ⋅ 2 ⋅ (k - 1) • Helyi számítás költsége: • ⋉ költsége legfeljebb ⋈ költsége • TR = R táblája, n = TR + TS • Nemindexelt joinra: ≤ n ⋅ log(n) • Indexelt joinra: ≤ n • 2 ⋅ (k - 1) db ⋉ • összességében: O(k ⋅ I ⋅ log(I)) • fix G esetén: O(I ⋅ log(I)) 9. előadás
Összekapcsolás költsége • Kiszámoltuk a redukáltakat • Redukáltakat egy helyen összekapcsoljuk • Átviteli költség: ≤ I • Összekapcsolás költsége: • U: R1 ⋈ R2 ⋈ … ⋈ Rk sorainak száma • Füllevágási sorrend: R1, R2, …, Rk • Összekapcsolások visszafelé: Ri ⋈ (Ri+1 ⋈ … ⋈ Rk) 9. előadás
Összekapcsolás költsége • Összekapcsolás költsége (folytatás): • Garantáljuk, hogy ⋉-nál minden sorhoz min. 1 sor kapcsolható • Redukálásnál első menet után Rk nem módosul • =>|Rk-1 ⋈ Rk| ≤ U • =>|Rk| ≤ U • Indukcióval: |Ri| ≤ U |Ri+1 ⋈ … ⋈ Rk | ≤ U • => Tj ⋈ Tj+1 költsége: O(U ⋅ log(U)) • Teljes összekapcsolás költsége: O(k ⋅ U ⋅ log(U)) • Tétel: Aciklikus k reláció összekapcsolási költsége ≤ O(k ⋅ (I ⋅ log(I) + U ⋅ log(U))) ≤ O(k ⋅ (I + U)2) 9. előadás
Elemző fa • Fülletépések által készítjük el • E fül F alapján => F gyermeke E • Példa: 9. előadás
Elemző fa • Példa: 1. lépés: BF fül BCD-re nézve, levágjuk 9. előadás
Elemző fa • Példa: 2. lépés: ABC is fül BCD-re nézve, levágjuk 9. előadás
Elemző fa • Példa: 3. lépés: BF-et vagy ABC-t levágva már BCD fül CDE-re nézve 9. előadás
Elemző fa • Példa: 4. lépés: DEG mindvégig fül volt CDE-re nézve 9. előadás
Elemző fa • Példa: 5. lépés: CDE-t levágva kész a fa 9. előadás
Összekapcsolások vetítése • Adott: R1, R2, …, Rk relációk, X attribútumhalmaz • Cél: X(R1 ⋈ R2 ⋈ … ⋈ Rk) kiszámítása • Megjegyzések, ötletek: • Küldendő adatokat csökkenthetjük, ha csak a fontos attribútumokat küldjük (X attribútumai) • Az összekapcsolásokhoz még szükséges adatok is kellenek • Haladjunk az elemző fa mentén az összekapcsolásokkal • Ha már nem kell több összekapcsoláshoz egy attribútum, akkor hagyjuk el • Szükséges attribútomkhoz: elemző fa 9. előadás
Yannakakis algoritmus • Teljes redukálóval redukáljuk Ri-ket • Elemző fát készítsük el • Járjuk be a fát: • Lentről felfelé • Csúcs sorra kerül => minden gyereke sorra került • R fület levágjuk S miatt, akkor S := S∪(X∩R)(R ⋈ S) • Gyökérhez tartozó relációt vetítsük X-re az utolsó lépésnél: • P a gyökér • R az utolsó fül • P := X(P∪(X∩R)(R ⋈ P)) • (Itt ∪, ∩ -t P, R attribútumaival csináljuk) 9. előadás
Yannakakis algoritmus futásra példa • Elemző fa példára:AG(ABC⋈ BF ⋈ BCD⋈ CDE ⋈ DEG) • Teljesen redukált relációk: 9. előadás
Yannakakis algoritmus futásra példa • Elemző fa példára:AG(ABC⋈ BF ⋈ BCD⋈ CDE ⋈ DEG) • ABC összekapcsolása BCD-vel:ABCD := BCD∪(AG∩ABC)(ABC ⋈ BCD) (BCD∪(AG ∩ ABC) = ABCD) 9. előadás
Yannakakis algoritmus futásra példa • Elemző fa példára:AG(ABC⋈ BF ⋈ BCD⋈ CDE ⋈ DEG) • BF összekapcsolása ABCD -fel:ABCD := ABCD∪(AG∩GF)(ABCD ⋈ BF)(AG∩GF üres, ilyen összekapcsolások kihagyhatók) 9. előadás
Yannakakis algoritmus futásra példa • Elemző fa példára:AG(ABC⋈ BF ⋈ BCD⋈ CDE ⋈ DEG) • ABCD összekapcsolása CDE -vel:ACDE := CDE∪(AG∩ABCD)(ABCD ⋈ CDE) (CDE⋃(AG⋂ABCD) = ACDE) 9. előadás
Yannakakis algoritmus futásra példa • Elemző fa példára:AG(ABC⋈ BF ⋈ BCD⋈ CDE ⋈ DEG) • DEG összekapcsolása ACDE-vel:ACDEG := ACDE∪(AG∩DEG)(DEG ⋈ ACDE)(ACDE⋃(AG⋂DEG) = ACDEG) 9. előadás
Yannakakis algoritmus futásra példa • Elemző fa példára:AG(ABC⋈ BF ⋈ BCD⋈ CDE ⋈ DEG) • Végül vetítés: AG := AGABCDEG 9. előadás
3. lépés output mérete Lemma: a 3. lépés sose készít 2 ⋅ I ⋅ U –nál nagyobb relációt Bizonyítás: • Adott: • S csúcs • X a vetítés attribútumai • C: S olyan gyereke, amiben már jártunk • S1, S2, …, Sm : C-k leszármazottai • Y: Si-k X-beli attribútumai, amik nincsenek S-ben=> Y = ∪i(Si∩ X) \ S, Y ⊆ X, Y ∩ S = ∅ • T := S ⋈ S1 ⋈ … ⋈ Sm 9. előadás
3. lépés output mérete Lemma: a 3. lépés sose készít 2 ⋅ I ⋅ U –nál nagyobb relációt Bizonyítás: • 1. pont, ekkor: • S csúcs értékének alakja: S∪Y(S ⋈ S1 ⋈ … ⋈ Sm)(Biz.: csúcsok számával indukció) • Mivel Y ∩ S = ∅: S∪YT ⊆ ST × YT • A 3. lépésben a relációk redukáltak: ST = S • ST mérete = S mérete ≤ I 9. előadás
3. lépés output mérete Lemma: a 3. lépés sose készít 2 ⋅ I ⋅ U –nál nagyobb relációt Bizonyítás: • 2. pont, YT mérete ≤ I • YT = Y(R1 ⋈ R2 ⋈ … ⋈ Rk) • Ri relációk redukáltak • => T minden sora kapcsolható Ri-k legalább egy sorához • Y ⊆ X => Y(R1 ⋈ R2 ⋈ … ⋈ Rk) mérete ≤ ≤ X(R1 ⋈ R2 ⋈ … ⋈ Rk) mérete = U 9. előadás
3. lépés output mérete Lemma: a 3. lépés sose készít 2 ⋅ I ⋅ U –nál nagyobb relációt Bizonyítás: • Összesítés: • S∪YT ⊆ ST × YT • ST mérete ≤I, YT mérete ≤ U • Legyen t1, t2 ST és YT sorainak számam1, m2 ST és YT rekordmérete • ST × YT mérete = t1 ⋅ t2⋅ (m1 + m2) ≤ ≤ 2 ⋅ (t1 ⋅ m1) ⋅ (t2 ⋅ m2) ≤ 2 ⋅ I ⋅ U 9. előadás
Összekapcsolások vetítésének költsége Tétel: R1, R2, … , Rk relációk, aciklikusakX(R1 ⋈ R2 ⋈ … ⋈ Rk) átviteli költsége, futási ideje polinomiális I, U, k paraméterben (Itt: U = |X(R1 ⋈ R2 ⋈ … ⋈ Rk)|) Bizonyítás: Yannakakis algoritmus lépései Bizonyítás: Teljes redukáló alkalmazása • Átvitel költsége: O(I) • Kiszámítás költsége: O(k ⋅ (I ⋅ log(I) + U ⋅ log(U))) 9. előadás
Összekapcsolások vetítésének költsége Tétel: R1, R2, … , Rk relációk, aciklikusakX(R1 ⋈ R2 ⋈ … ⋈ Rk) átviteli költsége, futási ideje polinomiális I, U, k paraméterben Bizonyítás: Teljes redukáló / elemző fa megtalálása • Átvitel költsége: nincs • Kiszámítás költsége: ≤ |hiperélek| ⋅ |csúcsok| • |hiperélek| = k • |csúcsok| ≤ I, ha nincs ürés él • Van üres él: O(k) alatt ellenőrizhető • => O(k ⋅ I), elhanyagolható az alkalmazása mellett 9. előadás
Összekapcsolások vetítésének költsége Bizonyítás: Fa bejárása • Átvitel költsége: • k – 1 reláció továbbítása szülő felé • Előző lemma => minden reláció ≤ 2 ⋅ I ⋅ U • => O(k ⋅ I ⋅ U) • Kiszámítás költsége: • Rendezéses összekapcsolások • Egy összekapcsolás: O(I ⋅ U ⋅ log(I ⋅ U)) • => O(k ⋅ I ⋅ U ⋅ log(I ⋅ U)) 9. előadás
Összekapcsolások vetítésének költsége Tétel: R1, R2, … , Rk relációk, aciklikusakX(R1 ⋈ R2 ⋈ … ⋈ Rk) átviteli költsége, futási ideje polinomiális I, U, k paraméterben Bizonyítás: X-re vetítés • Átvitel költsége: nincs • Kiszámítás költsége: O(I ⋅ U) 9. előadás
Összekapcsolások vetítésének költsége Tétel: R1, R2, … , Rk relációk, aciklikusakX(R1 ⋈ R2 ⋈ … ⋈ Rk) átviteli költsége, futási ideje polinomiális I, U, k paraméterben Összefoglalás: domináló tagok • Átvitel költsége: Fa bejárása: O(k ⋅ I ⋅ U) • Kiszámítás költsége: Fa bejárása: O(k ⋅ I ⋅ U ⋅ log(I ⋅ U)) 9. előadás