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



Hasonló dokumentumok
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

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

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

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

Indexek és SQL hangolás

Adatbázisok elmélete

SELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP

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

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

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

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

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

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

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

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 lekérdezések optimalizációja. Adatbázisok használata

Lekérdezések optimalizálása

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

LEKÉRDEZÉSEK OPTIMALIZÁLÁSA

Adatbáziskezelés. Indexek, normalizálás NZS 1

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

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

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

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

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

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

Adatbázis rendszerek. dr. Siki Zoltán

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

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.

Adatmodellezés. 1. Fogalmi modell

Indexek, tömörítés és más állatfajták

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

Sárecz Lajos Oracle Hungary kft. Oracle Adatbázisok Optimalizálása

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Adatbázisok II. rész

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

Betekintés az SQL hangolásba Oracle környezetben

Informatikai alapismeretek Földtudományi BSC számára

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

Adatbázis, adatbázis-kezelő

Adatbázisok elmélete

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

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

Adatbázis-kezelés. alapfogalmak

Adatbázisok elmélete

Adatbázismodellek. 1. ábra Hierarchikus modell

Az adatbázisrendszerek világa

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

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

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

Csima Judit szeptember 6.

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

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

Bevezetés: az SQL-be

30 MB INFORMATIKAI PROJEKTELLENŐR ADATBÁZISOK MEGVALÓSÍTÁSA (ADATBÁZISOK, ADATBÁZISKEZELŐK, ADATBÁZISOK FELÉPÍTÉSE, ADATBÁZISOK TERVEZÉSE)

A TANTÁRGY ADATLAPJA

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

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

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

Adatbázis Rendszerek

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

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése

Adatbáziskezelés alapjai. jegyzet

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázisok 1. Kósa Balázs gyakorlata alapján Készítette: Nagy Krisztián. 1. gyakorlat

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

Adatbázisok tavaszi félév Vizsgatételsor

Adatbázisok gyakorlat

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

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

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Adatmodellek. 2. rész

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Adatbázis-kezelés Access XP-vel. Tanmenet

INDEXSTRUKTÚRÁK III.

Microsoft Access alapok

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

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

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

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

Genetikus algoritmusok

Alapvető fizikai tárolási szerkezetek, indexek, B-fák

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

Access gyakorlati feladatok lépésről lépésre

Bevezetés: Relációs adatmodell

Többtáblás lekérdezések megjelenítése

ADATBÁZISKEZELÉS ADATBÁZIS

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

ADATBÁZIS RENDSZEREK. Adatbázisok története, alapfogalmak, adatmodellek. Krausz Nikol, Medve András, Molnár Bence

Adatbázis alapú rendszerek (2015 tavaszi félév) Előadás

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

Bevezetés: Relációs adatmodell

Átírás:

és lekérdezésoptimalizálás Nagyméretű adathalmazok kezelése Kazi Sándor 2010. február 24. Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 1 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 2 / 39

Relációs algebrai alapműveletek Descartes-szorzat: R S Illesztések: R S, R Θ S, R S, R S Projekció: π L (R) Szelekció: σ Θ (R) Ismétlődések szűrése: δ(r) Csoportosítás: γ L (R) Rendezés: τ L (R) Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 3 / 39

Mire optimalizálunk és hogyan? Általában válaszidőre: I/O költség CPU használat Memóriahasználat A három közül (mágneslemezek esetén) jellemzően az I/O költség a legnagyobb, így a legjellemzőbb. Alapos tervezéssel: Adatbázisszerkezet Statisztikák Heurisztikák Korábbi tapasztalatok Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 4 / 39

Elemzőfa Bevezetés Az elemzőfa egy szemléltetési módja a végső tervnek és kialakulásának: Levelei a relációk Belső csomópontjai a műveletek Gyökere az "eredmény" Az adatok a relációk felől a gyökér felé "áramlanak" A végrehajtási tervnek megfelelő elemzési fát az eredeti fa átrendezésével kaphatjuk meg. Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 5 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 6 / 39

Optimalizálni nehéz Tétel: A kérdés, hogy néhány reláció illesztésének van-e sora, NP-teljes. Bizonyítás: NP-beli a tanú-tétel szerint, mert egy sor az illesztés eredményéből egy polinom időben ellenőrizhető tanú. Emellett JOIN 3SZÍN. Vegyük a G gráfot, amelyről tudni szeretnénk, hogy 3-színezhető-e, minden éléhez vegyünk fel egy kétattribútumú relációt, az attribútum legyen a két végpont azonosítója, amelyhez az él tartozik. Ezután az összes relációba vegyük fel a C1-C2, C1-C3, C2-C1, C2-C3, C3-C1, C3-C2 sorokat. A G gráf így pontosan akkor 3-színezhető, ha a relációk természetes illesztésének van sora (és az meg is határoz egy színezést). Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 7 / 39

Lekérdezésfeldolgozás Általános séma 1 Elemző Lekérdezés fordítása Logikai végrehajtási terv készítése 2 Optimalizáló Fizikai végrehajtási terv készítése Illesztési mód kiválasztása Táblahozzáférési mód kiválasztása 3 Sorfordító Fizikai terv leképzése I/O műveletekre 4 Végrehajtó I/O műveletsor végrehajtása Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 8 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 9 / 39

Oracle Server lekérdezésfeldolgozása 1 Elemző 2 Optimalizáló 1 Lekérdezésátalakító 2 Becslő (és adatszótár) 3 Tervkészítő 3 Sorfordító 4 Végrehajtó A tervkészítő által készített terv is bekerül az adatszótárba a becslőn keresztül. Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 10 / 39

Elemző és lekérdezésátalakító Ha az elemző feladata a logikai terv kialakítása, akkor mire való a lekérdezésátalakító? Elemző Logikai terv készítése Kiválasztás műveletek lefelé mozgatása az elemzőfában Vetítések felfelé mozgatása Illesztések struktúrája és sorrendje (O(n!) lehetőség) Szelekciós feltételek szétvágása/cseréje Lekérdezésátalakító Nézetek befésülése (nem mindig optimális) Feltételek lefelé tolása az elemzőfában Allekérdezések felemelése Lekérdezések újraírása materializált nézetekre Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 11 / 39

Becslő és tervkészítő Becslő Kapcsolat az adatszótárral Statisztikák használata Oszlopérték-hisztogramok telítettsége Dinamikus mintavételezés Statisztikák nélkül nagyon rossz terv is születhet. Tervkészítő RBO Rule Based Optimizer: Szabályalapú optimalizáló CBO Cost Based Optimizer: Költségalapú optimalizáló Az optimalizáló befolyásolása: deklarálásával SQL hintek használatával Lekérdezés átírásával Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 12 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 13 / 39

1 Triviális terv elkészítése Egyszerűbb lekérdezésekre Szabály alapú 2 3 fázisú optimalizáló Nem készíthető triviális terv Statisztikák alapján Az optimalizáló befolyásolása: deklarálásával SQL hintek használatával Lekérdezés átírásával Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 14 / 39

Háromfázisú optimalizáló 0 fázis Egyszerű átalakítások Cost < 0.2 KÉSZ 1 fázis Kibővített átalakítások Cost < 1 KÉSZ 2 fázis Párhuzamosíthatóság vizsgálata Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 15 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 16 / 39

elvégzési módjai Fokozatok a feladat "nehézsége" szerint: 1 Egymenetes algoritmusok 2 Kétmenetes algoritmusok 3 Adatok méretétől független módszerek Módszerek alapja szerint: 1 Rendezésen alapuló módszerek 2 Tördelésen alapuló módszerek 3 Index alapú módszerek Operátorok szerint: 1 Soronkénti, unáris műveletek 2 Unáris, teljes relációs műveletek 3 Bináris, teljes relációs műveletek Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 17 / 39

elvégzési módjai Fokozatok a feladat "nehézsége" szerint 1 Egymenetes algoritmusok Egyszer kell végigolvasni a táblát Általában csak akkor, ha az egyik tábla elfér a memóriában 2 Kétmenetes algoritmusok "Kétszer" kell beolvasni: műveletvégzésre, összefésülésre Nagyobb táblákra is működik 3 Adatok méretétől független módszerek Három vagy több menet A kétmenetes algoritmusok általánosításai Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 18 / 39

Egymenetes algoritmusok 1 Soronkénti műveletek (π, σ) Soronkénti olvasás, módosítás, kiírás 2 Unáris, teljes relációs műveletek (δ, γ) Olvasás - Hasonlítások, számlálások - Írás 3 Bináris, teljes relációs műveletek Az egyik tábla megfelelően kicsi kell, hogy legyen A kisebbik tábla alapján struktúrát építünk A nagyobbik táblát a struktúra segítségével kezeljük Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 19 / 39

Táblaillesztési módok Oracle és MS SQL Oracle / MS SQL join operátorok 1 Nested loops join / Nested loops illesztés kettős ciklusba szervezve ha a külső tábla "kicsi" Nyalábolt adatokon (O(Blokkok(R) Blokkok(S))) Nem nyalábolt adatokon (O(Sorok(R) Sorok(S))) 2 Hash join költsége a kisebb tábla segítségével a memóriában hash-struktúra a struktúra alapján a nagyobb tábla illesztés (O(_(R) + _(S))) 3 Sort merge join rendezés, majd illesztés jobb mint a hash-join, ha rendezett a struktúra, vagy nincs rendezésre szükség (O(_(R) + _(S))) Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 20 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 21 / 39

pro és kontra Indexeljünk / Ne indexeljünk, mert: + Gyorsabban érhetjük el az adatokat + Egyediséget biztosíthatunk Diszk területet használ Többletmunkát igényel Túl sok index használata nem gyorsít, hanem lassít Indexelendő / Nem indexelendő oszlopok: + Elsődleges és idegen kulcsok (join) + Gyakori adattartomány keresés + Rendezett elérés Ritkán használt Kevés különböző értékkel rendelkező oszlopok BLOB Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 22 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 23 / 39

Oracle indexek 1 Bevezetés 1 B-fa indexek Egyszerű és összetett indexek Függvények használata nem támogatot Sok különböző értéket felvevő oszlopra érdemes felvenni 2 Függvény alapú indexek Matematikai függvény és determinisztikus Oracle függvények Értékek előre kiszámolva 3 Bittérkép (bitmap) indexek Kis doménnel rendelkező oszlopokra 0-1 értékek Több oszlopra felvett bitmax indexek együtt hatékonyak Feldolgozás: "Bitmapped index merge" 4 Fordított kulcsú (reverse key) indexek Oszlopon belül a bájtok sorrendje fordítva Gyorsan és párhuzamosan számítható Közeli értékek egymástól távol Nincs tartománykeresés Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 24 / 39

Oracle indexek 2 Bevezetés 5 Alkalmazás-specifikus (application domain) indexek 6 Csoport (Cluster) indexek Gyakran összekapcsolt táblák esetén Két tábla fizikailag egymáshoz közel Nélküle nem érhető el a hozzá tartozó tábla Indexelt szervezésű táblák Adatok tárolása az indexszel együtt B-fában Csak elsődleges kulccsal rendelkező táblára Az index ilyenkor nem az index szegmensben jön létre Célszerű, ha legtöbbször az elsődleges kulcs szerint keresünk Gyors tartománykeresés az elsődleges kulcsra Helyet spórolunk meg Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 25 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 26 / 39

Bevezetés 1 Egyszerű index Egy attribútumértéket és blokkcímeket tartalmaz 2 Összetett index Több attribútumértéket és címeket tartalmaz 1 Csoportosított (Clustered) index Az adatok az index szerint tárolva Egy táblán csak egy lehet, de több táblán lehet ugyanaz Gyakran összeillesztett táblák tárolhatók az illesztés szerint Elsődleges kulcs mentén létrejön 2 Nem csoportosított (Nonclustered) index Cover index Az indexbe felvett plusz attribútumok Nem a tábla gyors elérését szolgálják Cél, hogy ezek az adatok gyorsan elérhetőek legyenek Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 27 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 28 / 39

A legalapvetőbb táblaelérési módok Teljes végigolvasás (Full Table Scan) Nyalábolt esetben O(Blokkok(R)) Nem nyalábolt esetben O(Sorok(R)) Index szerinti végigolvasás (Index Scan) Rendezési költség + A σ (szelekció) operátor megvalósítása Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 29 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 30 / 39

1 1 Full table scan Nincs index a táblán Várhatóan sok rekord kell Kicsi a tábla és egyszerűbb beolvasni 2 Rowid scan Indexből nyert sorazonosító szerinti olvasás 3 Unique index scan Elsődleges kulcs használata Ha az index összes oszlopára szűrünk Preferált 4 Index range scan Index alapú szűrés =, <, >, LIKE Index szerint rendezett eredményhalmaz 5 Full index scan Index szerint a teljes tábla kiolvasása Kulcs szerint rendezett eredményhalmaz Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 31 / 39

2 6 Fast full index scan Ha csak az indexben szereplő attribútumok kellenek A táblát nem is éri el 7 Index join Ha az attribútumok több indexben elosztva összekapcsolásával (általában hash alapon) 8 Bitmap index scan Bitmap index alapú Boole-kifejezés kiértékelése Bitmapped index merge Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 32 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 33 / 39

1 Table scan Csak ha nincs semmilyen index a táblán Szűrési feltételt is kiértékeli 2 Clustered index scan Van clustered index: adatblokkok az index szerint rendezve Nyalábolt adatolvasás Preferált a Table scannel szemben 3 Nonclustered index scan Elsősorban = operátor kiértékelésére 4 Clustered index seek <, BETWEEN, > operátorok kiértékelésére 5 Nonclustered index seek <, BETWEEN, > operátorok kiértékelésére Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 34 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 35 / 39

Egyszerű és összetett lekérdezések Lekérdezések altípusai: Egyszerű lekérdezések Allekérdezést alkalmazó lekérdezések Nem korrelatív: Az allekérdezés független a fő kérdéstől Korrelatív: Az allekérdezés nem független a fő kérdéstől Nézetet tartalmazó lekérdezések Nem korrelatív lekérdezések jól optimalizálhatók, míg a korrelatívak nehezen. Törekedjünk nem korrelatív allekérdezések megfogalmazására. Az allekérdezésekben használt nézeteket általában külön optimalizálják az adatbáziskezelők, és a tárolt tervet használják fel. Lehetőleg ne használjunk nézeteket allekérdezésként, főleg ne kapcsoljuk őket össze. Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 36 / 39

és függvények Egy táblán egy lekérdezés általában csak egyet tud használni, ezt többnyire a join műveletre meg is teszi. Ha a kulcs kifejezésben szerepel már nem tudjuk az indexet használni (ID + 0). Függvények Select listában használva nem befolyásolja a végrehajtási tervet. Where feltételben lehetőleg ne alkalmazzuk mert: Minden rekordra le kell futtatni Nehezen mozgatható a fában Kimenetére nem készül statisztika, ezért nehéz optimalizálni Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 37 / 39

1 Bevezetés 2 3 4 5 6 7 Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 38 / 39

Bevezetés 1 Gajdos Sándor: Lekérdezés optimalizálás (egyetemi jegyzet 2008) 2 Garcia-Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása 3 Kovács Ferenc: Adatbáziskezelő rendszerek, (egyetemi jegyzet 2005-2008) 4 www.dba-oracle.com Kazi Sándor (kazi@cs.bme.hu) és lekérdezésoptimalizálás 39 / 39