adatbázisrendszerek elméleti alapjai 9. előadás
DESCRIPTION
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ó. - PowerPoint PPT PresentationTRANSCRIPT
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 2
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 3
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 4
Á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 5
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 6
Ö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 7
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 8
Példa: 1. lépés: BF fül BCD-re nézve, levágjuk
9. előadás 9
Példa: 2. lépés: ABC is fül BCD-re nézve, levágjuk
9. előadás 10
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 11
Példa: 4. lépés: DEG mindvégig fül volt CDE-re nézve
9. előadás 12
Példa: 5. lépés: CDE-t levágva kész a fa
9. előadás 13
Adott: R1, R2, …, Rk relációk, X attribútumhalmaz Cél: X(R1 ⋈ R2 ⋈ … ⋈ Rk) kiszámítása Megjegyzések, ötletek:
o Küldendő adatokat csökkenthetjük, ha csak a fontos attribútumokat küldjük (X attribútumai)
o Az összekapcsolásokhoz még szükséges adatok is kellenek
o Haladjunk az elemző fa mentén az összekapcsolásokkal
o Ha már nem kell több összekapcsoláshoz egy attribútum, akkor hagyjuk el
o Szükséges attribútomkhoz: elemző fa
9. előadás 14
Teljes redukálóval redukáljuk Ri-ket Elemző fát készítsük el Járjuk be a fát:
o Lentről felfeléo Csúcs sorra kerül => minden gyereke sorra kerülto 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:o P a gyökéro R az utolsó fülo P := X(P∪(X∩R)(R ⋈ P))o (Itt ∪, ∩ -t P, R attribútumaival csináljuk)
9. előadás 15
Elemző fa példára:AG(ABC ⋈ BF ⋈ BCD ⋈ CDE ⋈ DEG)
Teljesen redukált relációk:
9. előadás 16
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 17
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 18
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 19
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 20
Elemző fa példára:AG(ABC ⋈ BF ⋈ BCD ⋈ CDE ⋈ DEG)
Végül vetítés: AG := AGABCDEG
9. előadás 21
Lemma: a 3. lépés sose készít2 ⋅ I ⋅ U –nál nagyobb relációt
Bizonyítás: Adott:
o S csúcso X a vetítés attribútumaio C: S olyan gyereke, amiben már jártunko S1, S2, …, Sm : C-k leszármazottaio Y: Si-k X-beli attribútumai, amik nincsenek S-ben
=> Y = ∪i(Si ∩ X) \ S, Y ⊆ X, Y ∩ S = ∅o T := S ⋈ S1 ⋈ … ⋈ Sm
9. előadás 22
Lemma: a 3. lépés sose készít2 ⋅ I ⋅ U –nál nagyobb relációt
Bizonyítás: 1. pont, ekkor:
o S csúcs értékének alakja: S∪Y(S ⋈ S1 ⋈ … ⋈ Sm)(Biz.: csúcsok számával indukció)
o Mivel Y ∩ S = ∅: S∪YT ⊆ ST × YTo A 3. lépésben a relációk redukáltak: ST = So ST mérete = S mérete ≤ I
9. előadás 23
Lemma: a 3. lépés sose készít2 ⋅ I ⋅ U –nál nagyobb relációt
Bizonyítás: 2. pont, YT mérete ≤ I
o YT = Y(R1 ⋈ R2 ⋈ … ⋈ Rk)o Ri relációk redukáltako => T minden sora kapcsolható Ri-k legalább egy
soráhozo Y ⊆ X => Y(R1 ⋈ R2 ⋈ … ⋈ Rk) mérete ≤
≤ X(R1 ⋈ R2 ⋈ … ⋈ Rk) mérete = U
9. előadás 24
Lemma: a 3. lépés sose készít2 ⋅ I ⋅ U –nál nagyobb relációt
Bizonyítás: Összesítés:
o S∪YT ⊆ ST × YTo ST mérete ≤ I, YT mérete ≤ Uo Legyen t1, t2 ST és YT sorainak száma
m1, m2 ST és YT rekordméreteo ST × YT mérete = t1 ⋅ t2 ⋅ (m1 + m2) ≤
≤ 2 ⋅ (t1 ⋅ m1) ⋅ (t2 ⋅ m2) ≤ 2 ⋅ I ⋅ U
9. előadás 25
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 26
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|
o |hiperélek| = ko |csúcsok| ≤ I, ha nincs ürés élo Van üres él: O(k) alatt ellenőrizhetőo => O(k ⋅ I), elhanyagolható az alkalmazása mellett
9. előadás 27
Bizonyítás: Fa bejárása Átvitel költsége:
o k – 1 reláció továbbítása szülő feléo Előző lemma => minden reláció ≤ 2 ⋅ I ⋅ Uo => O(k ⋅ I ⋅ U)
Kiszámítás költsége:o Rendezéses összekapcsolásoko Egy összekapcsolás: O(I ⋅ U ⋅ log(I ⋅ U))o => O(k ⋅ I ⋅ U ⋅ log(I ⋅ U))
9. előadás 28
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 29
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 30