Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaῬαΧάβ Δυοβουνιώτης Megváltozta több, mint 5 éve
1
Adatbázisrendszerek elméleti alapjai 9. előadás
Osztott adatbázisok
2
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
3
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
4
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
5
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
6
Ö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
7
Ö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
8
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
9
Elemző fa Példa: 1. lépés: BF fül BCD-re nézve, levágjuk 9. előadás
10
Elemző fa Példa: 2. lépés: ABC is fül BCD-re nézve, levágjuk
9. előadás
11
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
12
Elemző fa Példa: 4. lépés: DEG mindvégig fül volt CDE-re nézve
9. előadás
13
Elemző fa Példa: 5. lépés: CDE-t levágva kész a fa 9. előadás
14
Ö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
15
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
16
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
17
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
18
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∩BF)(ABCD ⋈ BF) (AG∩BF üres, ilyen összekapcsolások kihagyhatók) 9. előadás
19
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
20
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
21
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
22
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
23
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
24
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
25
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áma m1, 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
26
Összekapcsolások vetítésének költsége
Tétel: R1, R2, … , Rk relációk, aciklikusak X(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
27
Összekapcsolások vetítésének költsége
Tétel: R1, R2, … , Rk relációk, aciklikusak X(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
28
Ö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
29
Összekapcsolások vetítésének költsége
Tétel: R1, R2, … , Rk relációk, aciklikusak X(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
30
Összekapcsolások vetítésének költsége
Tétel: R1, R2, … , Rk relációk, aciklikusak X(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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.