Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Relációs algebra lekérdezések optimalizációja

Hasonló előadás


Az előadások a következő témára: "Relációs algebra lekérdezések optimalizációja"— Előadás másolata:

1 Relációs algebra lekérdezések optimalizációja
Adatbázisok használata

2 Mi a cél? Moore-törvénye: (Gordon Moore) szerint az integrált áramkörök sok jellemzőjének fejlődése exponenciális, ezek az értékek 18 havonta duplázódnak. Ilyenek például: (i) processzorok sebességének és árának aránya, (ii) lemez egy bitre eső ára és a lemezen tárolható bájtok száma. Más paraméterek azonban sokkal lassabban fejlődnek. Ilyenek például: (i) központi memóriában milyen gyorsan lehet az adatokat elérni, (ii) az a sebesség, amellyel a lemez mozog. Emiatt egy-egy nagy adathalmazzal dolgozó algoritmus optimalizációjánál az a lényeges szempont, hogy a feladatot minél kevesebb adatmozgatással tudjunk megoldani a háttértároló és a központi memória között.

3 Számítógép rendszer sematikus ábrája

4 Egy lehetséges megközelítés
Az adatbázisoknál az előbbiek nyilván úgy értendők, hogy szeretnénk minél kevesebb lemez olvasási és írási (I/O) műveletet végrehajtani egy-egy lekérdezés végrehajtása során. Az legegyszerűbb megközelítés, ha igyekszünk minél kisebb méretű relációkkal dolgozni. Az optimalizáció során relációs algebrai azonosságokat fogunk alkalmazni. Ezek segítségével egy lekérdezésből az eredetivel ekvivalens lekérdezést készítünk, amelynek kiszámítása az esetek többségében kevesebb I/O műveletet igényel majd. A q, q’ relációs algebrai lekérdezések (vagy tetszőleges lekérdezések) ekvivalensek, ha tetszőleges I előfordulás esetén q(I) = q’(I) fennáll. Jelben: q  q’.

5 Egy példa… A táblák legyenek: Film (cím, év, hossz) Szerepel (filmcím, év, színésznév) Ekkor a következő lekérdezés: cím(σcím=filmcímF.év=Sz.évszínésznév='Edus' (F  Sz)) ekvivalens a cím(σcím=filmcímF.év=Sz.év(F  (σszínésznév='Edus' (Sz)))) lekérdezéssel. Emellett az utóbbi valószínűleg gyorsabban végrehajtható.

6 Descartes-szorzat és összekapcsolások
Asszociativitás: (E1 Θ E2) Θ E3 ≡ E1 Θ (E2 Θ E3), ahol Θ{, |X|} és (E1 |X|F1 E2) |X|F2 E3 ≡ E1 |X|F1 (E2 |X|F2 E3), ha attr(F1)  attr(E1)  attr(E2) és attr(F2)  attr(E2)  attr(E3) Kommutativitás: E1 Θ E2 ≡ E2 Θ E1, ahol Θ{, |X|, |X|F}.

7 Projekció és szelekció
Projekció sorozat: ΠX(ΠY(E)) ≡ ΠX(E), ha X  Y. Kiválasztás és a feltételek konjunkciója: σF1F2 (E) ≡ σF1(σF2 (E)). Kiválasztás és a feltételek diszjunkciója: σF1F2 (E) ≡ σF1(E)  σF2(E). Kiválasztás elé projekció beillesztése: ΠX(σF (E)) ≡ ΠX(σF (ΠY(E))), ahol Y = attr(F)  X.

8 Kiválasztás és Descartes-szorzat/összekapcsolás
Kiválasztás és Descartes-szorzat, összekapcsolás felcserélése: σF (E1 Θ E2) ≡ σF (E1) Θ E2, ahol attr (F)  attr (E1) és Θ Є {, |X|}. Általánosabban: σF (E1 Θ E2) ≡ σF1 (E1) Θ σF2 (E2), ahol attr (Fi)  attr (Ei) (i = (1, 2)) F = F1  F2 és Θ Є {, |X|}. Ezekből levezethető: σ F (E1 Θ E2) ≡ σF2 (σF1 (E1) Θ E2), ahol attr (F1)  attr (E1), F = F1  F2, de attr (F2)  attr (Ei) nem teljesül (i = (1, 2)), Θ Є {, |X|}.

9 Projekció és Descartes-szorzat/összekapcsolás
Projekció és Descartes-szorzat, összekapcsolás felcserélése: ΠX(E1 Θ E2) ≡ ΠY(E1) Θ ΠZ(E2), ahol X = Y  Z, Y  attr (E1), Z  attr (E2) és Θ Є {, |X|}.

10 Projekció/kiválasztás és halmazműveletek
Kiválasztás és unió (különbség) felcserélése: σF (E1 Θ E2) ≡ σF (E1) Θ σF (E2), ahol Θ {, –}. Projekció unióval való felcserélése: ΠX(E1 E2) ≡ ΠX(E1)  ΠX(E2). Megjegyzés: nincs általános szabály a projekció különbséggel való felcserélésére. Kérdés: a metszettel mi a helyzet?

11 Példa optimalizálásra
A következő két feladathoz használt táblák: Személy (név, kor, város, ISBN) Könyv (cím, író, ISBN, ár) Kiad (k_cím, k_író, város, ország) Kik azok, akik 20 évesek, és moszkvai kiadású könyvet kölcsönöztek ki? ΠN(σSz.ISBN=Kö.ISBNcím=k_címíró=k_írókor=20K.város=Moszkva (Sz  Kö  K))

12 Lekérdezésfa Πnév σSz.ISBN=Kö.ISBNcím=k_címíró=k_írókor=20K.város=Moszkva Sz K

13 Kiválasztások "lejjebb csúsztatása"
Első lépésben a kiválasztások konjunkciós feltételeit daraboljuk szét elemi feltételekké a σF1F2 (E) ≡ σF1(σF2 (E)) szabály segítségével. Ezek után alkalmazzuk a kiválasztás halmazműveletekkel illetve Descartes-szorzattal és a természetes összekapcsolással való felcserélésének szabályait. Azaz: igyekszünk a kiválasztásokat minél hamarabb végrehajtani, hiszen azok jelentősen csökkenthetik a feldolgozandó köztes relációk méretét. A Théta-összekapcsolást itt jobb, ha egy Descartes-szorzatra és egy azt követő kiválasztásra bontjuk. R |X|F S  σF (R  S).

14 Darabolás Πnév σSz.ISBN=Kö.ISBN σcím=k_címíró=k_író σkor=20
σK.város=Moszkva Sz K

15 Letolás Πnév σSz.ISBN=Kö.ISBN  σcím=k_címíró=k_író σkor=20  Sz Kö
σK.város=Moszkva K

16 Projekciók "beírása" Ennél a lépésnél igyekszünk csak azokat az oszlopokat megtartani a (köztes) relációkban, amelyekre később szükség lesz. Általában itt nem olyan nagy a nyereség. A projekciók végrehajtása viszont időt igényel, ezért meg kell gondolni, hogy tényleg végre akarjuk-e hajtani a vetítést. Az átalakításoknál értelemszerűen a projekciókra vonatkozó szabályokat használjuk.

17 Πnév σSz.ISBN=Kö.ISBN Πnév, ISBN ΠKö.ISBN σkor=20 σcím=k_címíró=k_író Sz Πk_cim,k_író σK.város=Moszkva K

18 Összekapcsolások Az utolsó lépésben L(σC(R  S)), σC(R  S) kifejezéseket helyettesítjük természetes összekapcsolással, Théta-összekapcsolással úgy, hogy az eddigivel ekvivalens lekérdezést kapjunk.

19 Πnév |X| Πnév, ISBN ΠKö.ISBN σkor=20 |X|cím=k_címíró=k_író Πk_cim,k_író Sz σK.város=Moszkva K

20 Mi történik, ha a diszjunkció is megjelenik?
Kik azok, akik 1000 forintos könyvet vásároltak, és még nincsenek 40 évesek, vagy moszkvaiak, és orosz kiadású könyvet vettek? ΠN(σC((ár=1000kor<40)(Sz.város=Moszkvaország=orosz)) (Sz  Kö  K)). Itt C az Sz.ISBN = Kö.ISBN  Kö.cím = K.k_cím  Kö.író = K.k_író feltételt jelöli.

21 Megoldás I.  Πnév Πnév || || Πnév,ISBN Πnév,ISBN ΠISBN
|| cím=k_címíró=k_író σváros=Moszkva Πiró,cím σkor<40 σár=1000 Πk_író,k_cím Sz σország=orosz Sz K

22 Megoldás II. Πnév σ(kor<40ár=1000)(város=Moszkvaország=orosz)
|| σkor<40város=Moszkva || cím=k_címíró=k_író Sz Πk_író,k_cím,ország K

23 Összegzés Ha tehát a kiválasztások feltételei diszjunkciót is tartalmaznak, a helyzet bonyolultabbá válik, és nem adható olyan egyértelmű optimalizációs algoritmus, mint konjunkciók esetén.

24 Kiválasztások feljebb csúsztatása
A következő példa azt szemlélteti, amikor egy kiválasztást először felfelé kell csúsztatnunk, hogy aztán letolhassuk. A táblák: Film (cím, év, hossz) Szerepel (filmcím, év, színésznév) CREATE VIEW film04 AS (SELECT * FROM film WHERE év = 2004); SELECT színésznév FROM film04 f, Szerepel sz WHERE cím = filmcím AND f.év = sz.év;

25 Kezdeti lekérdezésfa színésznév σcím=filmcímF.év=Sz.év  σév=2004 Sz

26 Második lépés színésznév σcím=filmcímF.év=Sz.év σév=2004 F Sz

27 És az eredmény… színésznév σcím=filmcímF.év=Sz.év  σév=2004

28 Feladat A táblák legyenek: Film (cím, év, hossz)
Szerepel (filmcím, év, színésznév) Színész (név, kor, város) Adjuk meg, hogy a nem budapesti, negyven évesnél idősebb színészek milyen filmekben játszottak 1998-ban. A lekérdezést optimalizáljuk.


Letölteni ppt "Relációs algebra lekérdezések optimalizációja"

Hasonló előadás


Google Hirdetések