adatbázisrendszerek elméleti alapjai 9. előadás

30
Osztott adatbázisok

Upload: liang

Post on 18-Jan-2016

25 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Adatbázisrendszerek elméleti alapjai 9. előadás

Osztott adatbázisok

Page 2: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 3: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 4: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 5: Adatbázisrendszerek elméleti alapjai 9. előadás

Á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

Page 6: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 7: Adatbázisrendszerek elméleti alapjai 9. előadás

Ö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

Page 8: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 9: Adatbázisrendszerek elméleti alapjai 9. előadás

Példa: 1. lépés: BF fül BCD-re nézve, levágjuk

9. előadás 9

Page 10: Adatbázisrendszerek elméleti alapjai 9. előadás

Példa: 2. lépés: ABC is fül BCD-re nézve, levágjuk

9. előadás 10

Page 11: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 12: Adatbázisrendszerek elméleti alapjai 9. előadás

Példa: 4. lépés: DEG mindvégig fül volt CDE-re nézve

9. előadás 12

Page 13: Adatbázisrendszerek elméleti alapjai 9. előadás

Példa: 5. lépés: CDE-t levágva kész a fa

9. előadás 13

Page 14: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 15: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 16: Adatbázisrendszerek elméleti alapjai 9. előadás

Elemző fa példára:AG(ABC ⋈ BF ⋈ BCD ⋈ CDE ⋈ DEG)

Teljesen redukált relációk:

9. előadás 16

Page 17: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 18: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 19: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 20: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 21: Adatbázisrendszerek elméleti alapjai 9. előadás

Elemző fa példára:AG(ABC ⋈ BF ⋈ BCD ⋈ CDE ⋈ DEG)

Végül vetítés: AG := AGABCDEG

9. előadás 21

Page 22: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 23: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 24: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 25: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 26: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 27: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 28: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 29: Adatbázisrendszerek elméleti alapjai 9. előadás

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

Page 30: Adatbázisrendszerek elméleti alapjai 9. előadás

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