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

Slides:



Advertisements
Hasonló előadás
Egyszerű oszthatósági problémák
Advertisements

10. gyakorlat SQL SELECT.
Adatbázisrendszerek elméleti alapjai 2. előadás
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
A normalizálás az adatbázis-tervezés egyik módszere
Adatbázis rendszerek I Relációs kalkulus Általános Informatikai Tsz. Dr. Kovács László.
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
Azonosítók és képzési szabályaik
Többtáblás lekérdezések, allekérdezések Rózsa Győző
Matematikai logika A diasorozat az Analízis 1. (Mozaik Kiadó 2005.) c. könyvhöz készült. Készítette: Dr. Ábrahám István.
Operációkutatás szeptember 18 –október 2.
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
Adatbázis rendszerek II.
Halmazok, relációk, függvények
Adatbáziskezelés Horváth Ernő.
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
A Halmazelmélet elemei
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
SQL Server 2005 relációs adattárház technológiák
Adatbázisok elméleti alapjai
CISC - RISC processzor jellemzők
Lekérdezések végrehajtása
Lekérdezésfordító Adatbázisok 2.. Elemzés Lekérdezés Elemző Előfeldolgozó Logikai lekérdezéstervet generáló Lekérdezésátíró Jónak vélt logikai lekérdezésterv.
Lekérdezésfordító Adatbázisok tervezése, megvalósítása, menedzselése.
Algebrai műveleti gráf optimalizálása ● Mennyi könyvet készített az idén legtöbbet kinyomtató Budapesti könyvkiadó? ● kiado(kod,nev,cim) ● konyv ( kiado,cim,ar,ev.
Relációs algebra. A relációs adatbáziskezelő nyelvek lekérdező utasításai a relációs algebra műveleteit valósítják meg. A relációs algebra a relációkon.
SQL.
*** HALMAZOK *** A HALMAZ ÉS MEGADÁSA A HALMAZ FOGALMA
A számítógép teljesítménye
Boole-algebra (formális logika).
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 10. gyakorlat SQL SELECT, Összekapcsolás, Nézettáblák.
Adatbázis kezelés.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
Adatbázisok gyakorlat
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
Lekérdezések feldolgozása, kifejezésfák
Relációs algebra Relációs sémák tervezése
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
1 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben 2.2 Műveletek a.
Adatbázisok használata
1 Például, hogyan, milyen procedúrával értékeljük ki az alábbi SQL (deklaratív) lekérdezést? Legyen adott R(A,B,C) és S(C,D,E). Melyek azok az R.B és S.D.
1 Relációs kalkulusok Tartománykalkulus (DRC) Sorkalkulus (TRC) - deklaratív lekérdezőnyelvek - elsőrendű logikát használnak - relációs algebra kifejezhető.
Automatikus fizikai tervezési javaslatok XML adatbázisokhoz Balogh Bernadett Kresz Marcell Cseh Tamás.
Fájlszervezés Adatbázisok tervezése, megvalósítása és menedzselése.
1 Adatbázisok elméleti alapjai Dr. Kiss Attila people.inf.elte.hu/kiss D
Lekérdezések feldolgozása és optimalizálása. Haladó adatbázisokLekérdezések feldolgozása és optimalizálása2 Definíciók Lekérdezés feldolgozása –lekérdezés.
Adatbázisok használata
Adatbázisok 1. SQL (alkérdések). Az IN használata Emlékezzünk vissza: Az IN után szereplő multihalmaz elemei lekérdezéssel is megadhatók SELECT nev FROM.
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Lekérdezések Adott tulajdonságú adatok listázásának módja a lekérdezés. A lekérdezések segítségével az adatbázisból megjeleníthetjük, módosíthatjuk, törölhetjük.
SQL Több táblás lekérdezések. Halmazműveletek. Alkérdések
ABR ( Adatbázisrendszerek)
Adatbázisok tervezése, megvalósítása és menedzselése
Relációs algebra lekérdezések optimalizációja
Nulladrendű formulák átalakításai
Lekérdezésfordító Adatbázisok 2..
Adatbáziskezelés 12. alkalom.
Relációs adatmodell, normálformák
A évi kompetenciamérés FIT-jelentéseinek új elemei
Adatbázis-kezelés 2. Relációs adatbázisok.
Adatbázisok használata
Előadás 03 Algebrai optimalizáció Mi a NULL? Multihalmazok
Előadás másolata:

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

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.

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

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’.

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ó.

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}.

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.

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|}.

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|}.

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?

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))

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ö K

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).

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

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

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.

Π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ö σK.város=Moszkva K

Ö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.

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

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.

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 Kö σország=orosz Sz Kö K

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ö Πk_író,k_cím,ország K

Ö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.

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;

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

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

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

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.