Marton József BME-TMIT. Adatbázisok VITMAB november 11.

Hasonló dokumentumok
RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Marton József november BME TMIT

RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Dr. Gajdos Sándor november BME TMIT

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Lekérdezések feldolgozása és optimalizálása

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

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

Relációs algebra 1.rész alapok

Lekérdezések optimalizálása

Adatbázisok elmélete

Lekérdezés-feldolgozás és optimalizálás

Adatbázisműveletek és lekérdezésoptimalizálás

Párhuzamosítás adatbáziskezelő rendszerekben

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

4. előadás. Relációalgebra és relációkalkulusok. Adatbázisrendszerek előadás október 10.

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Relációs adatmodell. Adatbázisok használata

Sor és oszlopkalkulus

Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Lekérdezések az SQL-ben 2.rész

Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázisrendszerek február 27.

Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: Szűcs Miklós - ME, ÁIT. 1.

Adatbázisok elmélete

Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Adatbázis Rendszerek

Nem klaszterezett index. Beágyazott oszlopok. Klaszterezett index. Indexek tulajdonságai. Index kitöltési faktor

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Programozás alapjai II. (7. ea) C++

ADATBÁZIS-KEZELÉS. Relációs modell

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

7. Gyakorlat A relációs adatmodell műveleti része

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok

Lekérdezések az SQL-ben 1.rész

Adatbázisok elmélete 9. előadás

Adatbázisok elmélete 9. előadás

Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok

Relációs algebra 2.rész példák

Genetikus algoritmusok

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Funkcionális függések lekérdezések feldolgozása, kifejezésfák

Adatbázisok elmélete

Lekérdezések az SQL-ben 1.rész

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

A TANTÁRGY ADATLAPJA

3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Csima Judit szeptember 6.

17. A 2-3 fák és B-fák. 2-3 fák

Adatbázis-kezelés. alapfogalmak

Információ menedzsment eladások I. rész: Döntéstámogatás. Gajdos Sándor, TMIT sz

Adatbázisok elmélete 4. előadás

Indexek és SQL hangolás

Adatbázisok elmélete 9. előadás

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

TABLE ACCESS FULL HASH CLUSTER BY INDEX ROWID BY USER ROWID BY GLOBAL INDEX ROWID BY LOCAL INDEX ROWID

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Az adatbázisrendszerek világa

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Számítógépes döntéstámogatás. Genetikus algoritmusok

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

Matematika A1a Analízis

Programok értelmezése

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Adatbázis, adatbázis-kezelő

ADATBÁZIS RENDSZEREK. Attributum típusok, normalizálsá, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Adatbázisok elmélete

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

Csima Judit szeptember 6.

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Több tábla összekapcsolásán alapuló lekérdezések

Adatbázisok elmélete 10. előadás

Adatszerkezetek 7a. Dr. IványiPéter

Magas szintű adatmodellek Egyed/kapcsolat modell I.

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázisok elmélete 4. előadás

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

Adatbázis rendszerek Gy: DQL Lekérdezések

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

Relációs algebra 1.rész

1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében?

Bevezetés: Relációs adatmodell

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF. Adatbázisrendszerek előadás november 7.

ADATBÁZIS RENDSZEREK. Attributum típusok, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Több tábla összekapcsolásán alapuló lekérdezések. Copyright 2004, Oracle. All rights reserved.

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

Indexek és Teljesítményoptimalizálás

Átírás:

Marton József BME-TMIT Gajdos Sándor diasorának felhasználásával Adatbázisok VITMAB00 2016. november 11.

A lekérdezés-feldolgozás folyamata I. Cél: az adatok adatbázisból való kinyerése Mivel: egyértelmű, deklaratív megfogalmazás Hogyan: lássuk...

A lekérdezés-feldolgozás folyamata II. 1. Elemzés (szintaktikus), fordítás helyesség-vizsgálat valamilyen belső reprezentációba hozzuk 2. Költségoptimalizálás Egyértelmű a lekérdezés, ill. a belső reprezentáció a kiértékelés módját és a lépések sorrjét tekintve? Formális módszerekkel ekvivalens alakok készítése Hogyan kell kiértékelni? Jobb-e egyik mint a másik (optimális)? Mi szerint optimális? Összefoglalva: optimalizációs stratégiák alapján végrehajtási terveket kell készíteni, amelyeket előbb értékelni kell, majd közülük a legjobbat kiválasztani 3. Kiértékelés

Példa I. SQL és relációalgebra Employee (employee id, last name, first name, birth date,... ) Project (project id, p name,... ) Works on (project id, employee id) select last_name from employee, works_on, project where employee.birth_date > 1957.12.31 and works_on.project_id = project.project_id and works_on.employee_id = employee.employee_id and project.p_name = Aquarius π last name ( (σbirth date> 1957.12.31 (E)) W ( σ p name= Aquarius (P)))

Példa II. Egy lehetséges relációalgebrai fa σ birth date= 1957.12.31 π last name works on σ p name= Aquarius project employee

A lekérdezés-feldolgozás folyamata III. 1. Példa: SQL, relációs algebrai fa 2. Elemi műveletek (kiértékelési primitívek). Relációs algebrai belső reprezentáció esetén ezek,,sorrje (egymásra épülése) a relációs algebrai fa. 3. Hogyan kell az egyes műveleteket: egy szelekciót végrehajtani? (lineáris, bináris, index?) És a join? 4. Hogyan kell a műveletek összességét kiértékelni? Materializáció/pipelining (workflow) 5. A végrehajtási terv: 5.1 műveletek és,,sorrjük (relációs algebrai fa) 5.2 algoritmus-hozzárelés 5.3 workflow-választás

Egy operandusú műveletek azonosságai 1. Szelekció kaszkádosítása: σ θ1 θ 2 (E) = σ θ1 (σ θ2 (E)) 2. A szelekció kommutativitása: σ θ1 (σ θ2 (E)) = σ θ2 (σ θ1 (E)) 3. Projekció kaszkádosítása: π L1 (π L2 (... π Ln (E)...)) = π L1 (E)

Illesztés-jellegű műveletek azonosságai 4. A Θ-illesztés és a Descartes-szorzat kapcsolata: 5. A Θ-illesztés kommutativitása: σ θ (E 1 E 2 ) = E 1 E 2 θ ) σ θ1 (E 1 E 2 = E 1 E 2 θ 2 θ 1 θ 2 E 1 θ E 2 = E 2 θ 6. A természetes illesztés asszociativitása (Descartes-szorzat hasonlóan): E 1 (E 1 E 2 ) E 3 = E 1 (E 2 E 3 )

Illesztés-jellegű műveletek azonosságai folytatás 7. A szelekció művelet disztributivitása a Θ-illesztés felett, ha a θ 0 csak E 1 -beli attribútumokat tartalmaz: σ θ0 (E 1 θ E 2 ) = σ θ0 (E 1 ) θ 8. A projekció disztributív a Θ-illesztés felett, ha L 1 és L 2 E 1, illetve E 2 -beli attribútumokat tartalmaz, és az illesztés feltételében csak L 1 L 2 -beli attribútumok vannak: π L1 L 2 (E 1 θ E 2 ) = (π L1 (E 1 )) θ E 2 (π L2 (E 2 ))

Heurisztikus (szabály-alapú) optimalizálás Tapasztalatok alapján: Átalakítási lépések 1. kiindulás: kanonikus alak 2. szelekciók süllyesztése (kaszkádosítás után) 3. levelek átrezése (asszociativitás) 4. Θ-illesztés bevezetése 5. projekció süllyesztése (újak bevezetése) Algoritmus- és workflow-hozzárelés Relációalgebrai kifejezés kanonikus alakja: egyetlen projekció egyetlen szelekció Descartes-szorzatok

Példa I. SQL és relációalgebra Employee (employee id, last name, first name, birth date,... ) Project (project id, p name,... ) Works on (project id, employee id) select last_name from employee, works_on, project where employee.birth_date > 1957.12.31 and works_on.project_id = project.project_id and works_on.employee_id = employee.employee_id and project.p_name = Aquarius π last name ( (σbirth date> 1957.12.31 (E)) W ( σ p name= Aquarius (P)))

Kiindulás Kanonikus alak π last name σ birth date= 1957.12.31 p name= Aquarius W.p id=p.p id W.e id=e.e id project employee works on

Átalakítás Szelekciók süllyesztése kaszkádosítás után π last name σ W.p id=p.p id σ W.e id=e.e id σ p name= Aquarius project σ birth date= 1957.12.31 works on employee

Átalakítás Levelek átrezése π last name σ W.e id=e.e id σ W.p id=p.p id σ birth date= 1957.12.31 employee σ p name= Aquarius works on project

Átalakítás Θ-illesztés bevezetése π last name W.e id=e.e id W.p id=p.p id σ birth date= 1957.12.31 σ p name= Aquarius works on employee project

Átalakítás Projekció süllyesztése újak bevezetése π last name W.e id=e.e id π W.e id π E.e id,e.last name W.p id=p.p id σ birth date= 1957.12.31 π P.p id π W.e id,w.p id employee σ p name= Aquarius works on project

Költség-alapú optimalizálás Áttekintés 1. Szintaktikai elemzés, fordítás 2. Költségoptimalizálás 3. Kiértékelés Költség-mérték lehetne: válaszidő, CPU idő, más erőforrás-szükséglet legyen a költség a diszk blokkok olvasásának és írásának a száma azzal a további megszorítással, hogy az írásba csak a köztes blokkírások számát számítjuk bele, hiszen a végeredmény kíırása mindenképpen szükséges. E alg : az algoritmus becsült költsége

Katalógusinformáció A relációkról n r : az r reláció rekordszáma b r : az r relációt tartalmazó blokkok száma s r : az r reláció egy rekordjának nagysága bájtokban f r : mennyi rekord fér az r reláció egy blokkjába V(A, r): hány különböző értéke fordul elő az A attribútumnak az r relációban. V(A, r) = π A (r). Speciálisan, ha az A kulcs, akkor V(A, r) = n r. SC(A, r): az A attribútumra egyenlőségi feltételt kielégítő rekordok átlagos száma, ha legalább egy rekord kielégíti ezt az egyenlőségi feltételt. Ha A szuperkulcs: SC(A, r) = 1. Általánosságban: SC(A, r) = nr V(A,r).

Katalógusinformáció Az indexekről f i : az átlagos pointer-szám a fa struktúrájú indexek csomópontjaiban, mint pl. a B* fáknál, azaz a csomópontokból induló ágak átlagos száma. HT i : az i index szintjeinek a száma, azaz az index magassága (Height of Tree). Az r relációt tartalmazó heap-szervezésű állományra épített B* fa esetén HT i = log fi b r, ill. hash-állománynál HTi = 1. LB i : az i index legalsó szintű blokkjainak a száma, azaz a levélszintű indexblokkok száma (Lowest level index Block).

Műveletek és algoritmusok szelekció egyenlőségi feltételre alap: lineáris, bináris indexelt: elsődleges index kulcson, elsődleges index nem kulcson, másodlagos index join típusai:, Θ-illesztés, külső illesztések algoritmusok: jön... egyéb műveletek rezés ismétlődések szűrése, projekció unió, metszet, különbség aggregáció

Szelekciós algoritmusok Egyenlőségi feltételre A1: Lineáris keresés: E A1 = b r A2: Bináris keresés: E A2 = log 2 b r + SC(A,r) f r 1 A3: Elsődleges index használatával, egyenlőségi feltételt a kulcson vizsgálunk: E A3 = HT i + 1 A4: Elsődleges index használatával egyenlőségi feltétel nem a kulcson: E A4 = HT i + SC(A,r) f r A5: Másodlagos index használatával: E A5 = HT i + SC(A, r) Ha az A egyediséget biztosít, akkor E A5 = HT i + 1.

Szelekciós algoritmusok Összehasonĺıtás-alapú szelekció σ A v (r) alakú lekérdezés becsült rekordszáma (c): Ha v értékét nem ismerjük: nr 2 ( Ha v ismert, és egyenletes az eloszlás: n r A6: Elsődleges index használatával: E A6 = HT i + br 2 Ha v ismert: E A6 = HT i + c fr A7: Másodlagos index használatával: E A7 = HT i + LB i 2 + nr 2 v min(a,r) max(a,r) min(a,r) )

Join-algoritmusok A nested loop join-algoritmus I. for minden t r r rekordra do for minden t s s rekordra do if a (t r, t s ) pár kielégíti az illesztés θ feltételét then a t r t s rekordot az eredményhez adjuk Költsége:,,worst-case : b r + n r b s ha s elfér a memóriában: b r + b s

Join-algoritmusok A block nested loop join-algoritmus for minden b r r blokkra do for minden b s s blokkra do for minden t r b r rekordra do for minden t s b s rekordra do if a (t r, t s ) pár kielégíti az illesztés θ feltételét then a t r t s rekordot az eredményhez adjuk,,worst-case költsége: b r + b r b s ha s elfér a memóriában: b r + b s

Join-algoritmusok A nested loop join-algoritmus család for minden t r r rekordra do for minden t s s rekordra do if a (t r, t s ) pár kielégíti az illesztés θ feltételét then a t r t s rekordot az eredményhez adjuk

Join-algoritmusok A nested loop join-algoritmus család for minden t r r rekordra do for minden t s s rekordra do if a (t r, t s ) pár kielégíti az illesztés θ feltételét then a t r t s rekordot az eredményhez adjuk for minden t r r rekordra do Lineáris keresés t r szerint: minden t s s rekordra

Join-algoritmusok A nested loop join-algoritmus család for minden t r r rekordra do for minden t s s rekordra do if a (t r, t s ) pár kielégíti az illesztés θ feltételét then a t r t s rekordot az eredményhez adjuk for minden t r r rekordra do Lineáris keresés t r szerint: minden t s s rekordra A nested loop join-algoritmus család: indexelt nested loop: indexelt keresés s-ben hash join: hash-keresés s-ben

Join-algoritmusok A merge join 1. r és s rezése a join attribútum szerint 2. a két reláció blokkjainak párhuzamos olvasása, találatok kíırása Költsége: b r + b s + a rezés költsége

Kifejezéskiértékelés módjai 1. Materializáció egyszerre egy művelet eredményének teljes kiszámítása részeredmény tárolása (,,költség-hátrány ) előnye: egyszerű implementálni 2. Pipelining egymásra épülő műveletek szimultán kiértékelése nem számítja ki előre a részeredményeket: igény- vagy termelőirányított előnye: kiküszöböli a materializáció,,költség-hátrányát hátránya: nem minden algoritmus ill. művelet támogatja

Végrehajtási terv (rezzük, hogy a másodpéldányokat kiejtsük) (merge join) πügyfél név betétes (hash join) (csővezeték) (csővezeték) σ fiók település = Bázel σ egyenleg < 1000 (1. index használatával) (lineáris olvasás használatával) fiók számla

Költség-alapú optimalizálás Végszó Egyszerre jó és rossz: minden ekvivalens alak vizsgálata optimális terv túl sok munka n reláció illesztése általános esetben: (2 (n 1))! (n 1)! n = 3: 6; n = 7: 665 280; n = 10: több mint 17,6 milliárd Megoldás: heurisztikus költség-alapú optimalizálás emberi optimalizálás: a konkrét szemantika ismerete alapján nagyobb szabadságfok a módszerek körében szélsőséges helyzetekre jobban felkészíthető statikus