CS 245: Database System Principles

Podobné dokumenty
Informační systémy ve zdravotnictví. 6. cvičení

Úvod do databázových systémů

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Databázové systémy Cvičení 5

Úvod do databázových systémů 1. cvičení

Databázové systémy Cvičení 5.3

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Databáze SQL SELECT. David Hoksza

Databáze I. Přednáška 2

Dotazování v relačním modelu a SQL

Databázové systémy. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 3) Základní relační operace Databázové systémy 1 / 37

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Databáze I. 1. přednáška. Helena Palovská

Vyhodnocování dotazů slajdy k přednášce NDBI001. Jaroslav Pokorný MFF UK, Praha

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

J. Zendulka: Databázové systémy 4 Relační model dat 1

Dotazovací jazyk pro řazená data

DATA CUBE. Mgr. Jiří Helmich

Kapitola 4: SQL. Základní struktura

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Analýza a modelování dat 3. přednáška. Helena Palovská

Architektury databázových

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Databázové systémy BIK-DBS

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

Analýza dat a modelování. Přednáška 3

6. blok část C Množinové operátory

Databázové systémy. Přirozené spojení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 4) Přirozené spojení Databázové systémy 1 / 41

Databázové systémy. Agregace, sumarizace, vnořené dotazy. Vilém Vychodil

Operátory ROLLUP a CUBE

Optimalizace dotazů a databázové transakce v Oracle

Vyhledávání podle klíčových slov v relačních databázích. Dotazovací jazyky I ZS 2010/11 Karel Poledna

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Michal Krátký, Miroslav Beneš

KIV/ZIS cvičení 5. Tomáš Potužák

Relační model dat (Codd 1970)

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Úvod do databázových systémů

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Databázové systémy I

Kapitola 6: Omezení integrity. Omezení domény

Základní pojmy teorie množin Vektorové prostory

Materializované pohledy

Úvod do databázových systémů

Integrace relačních a grafových databází funkcionálně

TimescaleDB. Pavel Stěhule 2018

04 - Databázové systémy

Databázové systémy Tomáš Skopal

Databázové systémy I. 1. přednáška

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

PG 9.5 novinky ve vývoji aplikací

Michal Valenta DBS Databázové modely 2. prosince / 35

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Databázové systémy. Cvičení 6: SQL

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

NORMALIZACE Část 2 1

5. blok Souhrnné a skupinové dotazy

Téma 10 Relační model dat a jazyk SQL

Databázové a informační systémy

DBS relační DB model, relační algebra

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

8.2 Používání a tvorba databází

Fyzické uložení dat a indexy

4. Základy relačních databází, logická úroveň návrhu

Čteme EXPLAIN. CSPUG, Praha. Tomáš Vondra Czech and Slovak PostgreSQL Users Group

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Informační systémy ve zdravotnictví. 10. cvičení

Databáze I. Přednáška 6

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Princip rozšíření a operace s fuzzy čísly

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Otázka č. 1 (bodů za otázku: 4)

KIV/ZIS - SELECT, opakování

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Databázové systémy. Integritní omezení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33

4. blok část A Logické operátory

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

3. přednáška z předmětu GIS1 atributové a prostorové dotazy

Databázové systémy trocha teorie

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Řešené příklady STUDENT(RČ, JMÉNO, SPECIALIZACE) PŘEDMĚT(KÓD, NÁZEV, SYLLABUS, GARANT) ZÁPIS(RČ, KÓD, SEMESTR, ZNÁMKA)

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Paralelní dotazy v PostgreSQL 9.6 (a 10.0)

Databázové systémy Cvičení 5.2

Optimalizace SQL dotazů

Analýza a modelování dat. Přednáška 8

Téma 9 Relační algebra a jazyk SQL

Tvorba informačních systémů

Transkript:

CS 245: Database System Principles Notes 6: Query Processing Hector Garcia-Molina CS 245 Notes 6 1

Vyhodnocení dotazu Dotaz Strom dotazu Logický plán Úpravy Fyzický plán Vyhodnocení CS 245 Notes 6 2

Příklad Select B,D From R,S Where R.A = c S.E = 2 R.C=S.C CS 245 Notes 6 3

R A B C S C D E a 1 10 10 x 2 b 1 20 20 y 2 c 2 10 30 z 2 d 2 35 40 x 1 e 3 45 50 y 3 Výsledek: B D 2 x CS 245 Notes 6 4

Jak vyhodnotit uvedený dotaz? 1. způsob - kartézský součin -výběr záznamů -projekce CS 245 Notes 6 5

RXS R.A R.B R.C S.C S.D S.E a 1 10 10 x 2 Bingo! Jeden máme... a 1 10 20 y 2.. C 2 10 10 x 2.. CS 245 Notes 6 6

Relační Algebra použití pro popis Př.: Plán I Π B,D plánů σ R.A = c S.E=2 R.C=S.C R X S Π B,D [ σ R.A= c S.E=2 R.C = S.C (RXS)] CS 245 Notes 6 7

Jiný způsob: Plán II Π B,D přirozené spojení σ R.A = c σ S.E = 2 R S CS 245 Notes 6 8

R S A B C σ (R) σ(s) C D E a 1 10 A B C C D E 10 x 2 b 1 20 c 2 10 10 x 2 20 y 2 c 2 10 20 y 2 30 z 2 d 2 35 30 z 2 40 x 1 e 3 45 50 y 3 CS 245 Notes 6 9

Plán III Použijeme indexy R.A a S.C (1) použijeme index R.A k nalezení záznamů R splňující R.A = c (2) Pro každou nalezenou hodnotu R.C použijeme index S.C pro nalezení odpovídajících záznamů (3) Vypustíme záznamy S, kde S.E 2 (4) Spojíme odpovídající záznamy R,S provedeme projekci na atributy B,D CS 245 Notes 6 10

R A B C I1 A= c S C D E a 1 10 10 x 2 <c,2,10> b 1 20 <10,x,2> 20 y 2 check=2? c 2 10 30 z 2 d 2 35 output: <2,x> 40 x 1 e 3 45 50 y 3 next tuple: <c,7,15> C I2 CS 245 Notes 6 11

Přehled optimalizace dotazů CS 245 Notes 6 12

Dotaz SQL parser Strom dotazu konverze logický plán dotazu Použití zákonů vylepšený l.p.d. Odhad velikostí l.q.p. +velikosti Porovnání fyzických plánů statistika {(P1,C1),(P2,C2)...} výsledek execute Pi výběr nejlepšího Odhad CGI {P1,P2,..} CS 245 Notes 6 13

Příklad: dotaz SQL SELECT title FROM StarsIn WHERE starname IN ( SELECT name FROM MovieStar WHERE birthdate LIKE %1960 ); (Find the movies with stars born in 1960) CS 245 Notes 6 14

Příklad: Strom dotazu <Query> <SFW> SELECT <SelList> FROM <FromList> WHERE <Condition> <Attribute> <RelName> <Tuple> IN <Query> title StarsIn <Attribute> ( <Query> ) starname <SFW> SELECT <SelList> FROM <FromList> WHERE <Condition> <Attribute> <RelName> <Attribute> LIKE <Pattern> name MovieStar birthdate %1960 CS 245 Notes 6 15

Příklad: Generování Relační Algebry Πtitle σ StarsIn <condition> <tuple> IN Πname <Attribute> σbirthdate LIKE %1960 starname MovieStar Fig. 7.15: An expression using a two-argument σ, midway between a parse tree and relational algebra CS 245 Notes 6 16

Příklad: Logický plán dotazu Πtitle σstarname=name StarsIn Πname σbirthdate LIKE %1960 MovieStar Fig. 7.18: Applying the rule for IN conditions CS 245 Notes 6 17

Příklad: Vylepšení logického plánu Πtitle starname=name Otázka: Posunout projekci na StarsIn? StarsIn Πname σbirthdate LIKE %1960 MovieStar Fig. 7.20: An improvement on fig. 7.18. CS 245 Notes 6 18

Příklad: Odhad velikostí výsledků odhad velikosti StarsIn Π σ MovieStar CS 245 Notes 6 19

Příklad: jeden fyzický plán Hash join Parametry: pořadí spojení, velikost paměti, projekce,... SEQ scan index scan Parametry: Výběr podmínky,... StarsIn MovieStar CS 245 Notes 6 20

Příklad: Odhad ceny L.Q.P P1 P2. Pn C1 C2. Cn Vyber nejlepšího! CS 245 Notes 6 21

Optimalizace dotazu Úroveň relační algebry Úroveň podrobného plánu dotazu Odhad ceny bezindexů sindexy Vytvoření a porovnání plánů CS 245 Notes 6 22

Optimalizace Transformační pravidla (zajištění ekvivalence) Jakétransformace? CS 245 Notes 6 23

pravidla: Přir. spojení & součin & sjednocení R S = S R (R S) T = R (S T) R x S = S x R (R x S) x T = R x (S x T) R U S = S U R R U (S U T) = (R U S) U T CS 245 Notes 6 24

pravidla: výběr σ p1 p2 (R) = σ p1vp2 (R) = σ p1 [ σ p2 (R)] [ σ p1 (R)] U [ σ p2 (R)] CS 245 Notes 6 25

Bags vs. Sets R = {a,a,b,b,b,c} S = {b,b,c,c,d} RUS =? Možnost1 SUM RUS = {a,a,b,b,b,b,b,c,c,c,d} Možnost2 MAX RUS = {a,a,b,b,b,c,c,d} CS 245 Notes 6 26

Možnost 2 (MAX) funguje: σp1vp2 (R) = σp1(r) U σp2(r) Příklad: R={a,a,b,b,b,c} P1 satisfied by a,b; P2 satisfied by b,c σp1vp2 (R) = {a,a,b,b,b,c} σp1(r) = {a,a,b,b,b} σp2(r) = {b,b,b,c} σp1(r) U σp2 (R) = {a,a,b,b,b,c} CS 245 Notes 6 27

Pragmatické rozhodnutí -> použití SUM pro sjednocení multimnožin -> některápravidlanemůžeme pro multimnožiny použít CS 245 Notes 6 28

pravidla: kombinace σ + Nechť p = výraz obsahující pouze atributy R q = výraz obsahující pouze atributy R m = výraz obsahující atributy R a S σ p (R S) = σ q (R S) = [σ p (R)] S R [σ q (S)] CS 245 Notes 6 29

pravidla: kombinace σ + σp q (R S) = [σp (R)] [σq (S)] σp q m (R S) = σm [(σp R) (σq S)] σpvq (R S) = [(σp R) S] U [R (σq S)] CS 245 Notes 6 30

Příklad odvození: σp q (R S) = σp [σq (R S) ] = σp [ R σq (S) ] = [σp (R)] [σq (S)] CS 245 Notes 6 31

pravidla: kombinace π,σ x = podmnožina atributů R z = atributy ve výrazu P (podmnožina atributů R) πxz πx[σp (R) ] = πx {σp [ πx (R) ]} CS 245 Notes 6 32

pravidla: kombinace π, x = podmnožina atributů R y = podmnožina atributů S z = průnik atributů R,S πxy (R S) = πxy{[πxz (R) ] [πyz (S) ]} CS 245 Notes 6 33

πxy {σp (R S)} = πxy {σp [πxz (R) πyz (S)]} z = z U {atributy použité v P } CS 245 Notes 6 34

pravidla kombinace σ, U: σp(r U S) = σp(r) U σp(s) σp(r - S) = σp(r) - S = σp(r) - σp(s) CS 245 Notes 6 35

Jaké transformace použít? σp1 p2 (R) σp1 [σp2 (R)] σp (R S) [σp (R)] S R S S R πx [σp (R)] πx {σp [πxz (R)]} CS 245 Notes 6 36

Obecné rada: projekci co nejdříve Příklad: R(A,B,C,D,E) x={e} P: (A=3) (B= cat ) πx {σp (R)} vs. πe {σp{πabe(r)}} CS 245 Notes 6 37

Ale Co když máme na A, B indexy? B = cat A=3 Průnik seznamu ukazatelů dává výsledek přímo CS 245 Notes 6 38

Obecná pravidla: bez transformací neuděláme chybu Většinou výhodné: brzký výběr eliminace společných podvýrazů CS 245 Notes 6 39

Outline - Query Processing Úroveň relační algebry transformační pravidla volba pravidel Úroveň podrobného plánu dotazu odhad ceny vytvoření a porovnání plánů CS 245 Notes 6 40

Odhad velikosti výsledku Statistika pro relaci R T(R) : # záznamů R S(R) : # bytů v každém záznamu R B(R): # bloků obsazených R V(R, A) : # různých hodnot R na atributech A CS 245 Notes 6 41

Příklad R A B C D cat 1 10 a cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d A: 20 byte string B: 4 byte integer C: 8 byte date D: 5 byte string T(R) = 5 S(R) = 37 V(R,A) = 3 V(R,C) = 5 V(R,B) = 1 V(R,D) = 4 CS 245 Notes 6 42

Odhad velikostí W = R1 x R2 T(W) = T(R1) T(R2) S(W) = S(R1) + S(R2) CS 245 Notes 6 43

Odhad velikostí W = σa=a (R) S(W) = S(R) T(W) =? CS 245 Notes 6 44

Příklad R A B C D cat 1 10 a cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d V(R,A)=3 V(R,B)=1 V(R,C)=5 V(R,D)=4 W = σz=val(r) T(W) = T(R) V(R,Z) CS 245 Notes 6 45

Předpoklad: Hodnoty ve výrazu výběru Z = val jsou rovnoměrně rozloženy mezi všechny různé hodnoty v R, kterých je V(R,Z). CS 245 Notes 6 46

Alternativní předpoklad: Hodnoty ve výrazu výběru Z = val jsou rovnoměrně rozloženy v oboru hodnot atributu Z: DOM(R,Z) CS 245 Notes 6 47

Příklad R A B C D cat 1 10 a cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d Alternativní předpoklad V(R,A)=3 DOM(R,A)=10 V(R,B)=1 DOM(R,B)=10 V(R,C)=5 DOM(R,C)=10 V(R,D)=4 DOM(R,D)=10 W = σz=val(r) T(W) =? CS 245 Notes 6 48

C=val T(W) = (1/10)1 + (1/10)1 +... = (5/10) = 0.5 B=val T(W)= (1/10)5 + 0 + 0 = 0.5 A=val T(W)= (1/10)2 + (1/10)2 + (1/10)1 = 0.5 CS 245 Notes 6 49

Příklad R A B C D cat 1 10 a cat 1 20 b dog 1 30 a dog 1 40 c bat 1 50 d Alternativní předpoklad V(R,A)=3 DOM(R,A)=10 V(R,B)=1 DOM(R,B)=10 V(R,C)=5 DOM(R,C)=10 V(R,D)=4 DOM(R,D)=10 W = σz=val(r) T(W) = T(R) DOM(R,Z) CS 245 Notes 6 50

Velikost výběru SC(R,A) = průměrný počet záznamů splňujících podmínku rovnosti na R.A SC(R,A) = T(R) V(R,A) T(R) DOM(R,A) CS 245 Notes 6 51

Co když W = σ z val (R)? T(W) =? Řešení # 1: T(W) = T(R)/2 Řešení # 2: T(W) = T(R)/3 CS 245 Notes 6 52

Řešení # 3: Odhad podle rozsahu Příklad R Z Min=1 V(R,Z)=10 Max=20 W= σ z 15 (R) f = 20-15+1 = 6 20-1+1 20 (fraction of range) T(W) = f T(R) CS 245 Notes 6 53

Analogicky: f V(R,Z) = fraction of distinct values T(W) = [f V(Z,R)] T(R) = f T(R) V(Z,R) CS 245 Notes 6 54

Odhad velikostí W = R1 R2 x = atributy z R1 y = atributy z R2 Případ 1 X Y = Stejné jako R1 x R2 CS 245 Notes 6 55

Případ 2 W = R1 R2 X Y = A R1 A B C R2 A D Předpoklad: V(R1,A) V(R2,A) každá hodnota A z R1 je i v R2 V(R2,A) V(R1,A) každá hodnota A z R2 je i v R1 CS 245 Notes 6 56

Výpočet T(W) pro V(R1,A) V(R2,A) R1 A B C R2 A D vezmi 1 záznam vyhledej 1 záznam R1 se spojí s T(R2) záznamy V(R2,A) tj. T(W) = T(R2) T(R1) V(R2, A) CS 245 Notes 6 57

V(R1,A) V(R2,A) T(W) = T(R2) T(R1) V(R2,A) V(R2,A) V(R1,A) T(W) = T(R2) T(R1) V(R1,A) [A je společný atribut] CS 245 Notes 6 58

Obecně W = R1 R2 T(W) = T(R2) T(R1) max{ V(R1,A), V(R2,A) } CS 245 Notes 6 59

Případ 2 Alternativní předpoklad Hodnoty jsou rovnoměrně rozděleny v doméně R1 A B C R2 A D tyto záznamy se spojí s T(R2)/DOM(R2,A) T(W) = T(R2) T(R1) = T(R2) T(R1) DOM(R2, A) DOM(R1, A) Předpokládáme stejné CS 245 Notes 6 60

Ve všech případech: S(W) = S(R1) + S(R2) - S(A) velikost atributu A CS 245 Notes 6 61

Poznámka: pro složitější výrazy potřebujeme velikosti mezivýsledků. W = [σa=a (R1) ] R2 bereme jako relaci U T(U) = T(R1)/V(R1,A) S(U) = S(R1) potřebujeme V (U, *)!! CS 245 Notes 6 62

Odhad V Př.: U = σa=a (R1) R1 má atributy A,B,C,D V(U, A) = V(U, B) = V(U, C) = V(U, D) = CS 245 Notes 6 63

Příklad R1 A B C D cat 1 10 10 cat 1 20 20 dog 1 30 10 dog 1 40 30 bat 1 50 10 V(R1,A)=3 V(R1,B)=1 V(R1,C)=5 V(R1,D)=3 U = σa=a (R1) V(U,A) =1 V(U,B) =1 V(U,C) = T(R1) V(R1,A) V(D,U)... něco mezi CS 245 Notes 6 64

Možné odhady U = σa=a (R) V(U,A) = 1 V(U,B) = V(R,B) CS 245 Notes 6 65

Pro spojení U = R1(A,B) R2(A,C) V(U,A) = min { V(R1, A), V(R2, A) } V(U,B) = V(R1, B) V(U,C) = V(R2, C) CS 245 Notes 6 66

Příklad: Z = R1(A,B) R2(B,C) R3(C,D) R1 R2 R3 T(R1) = 1000 V(R1,A)=50 V(R1,B)=100 T(R2) = 2000 V(R2,B)=200 V(R2,C)=300 T(R3) = 3000 V(R3,C)=90 V(R3,D)=500 CS 245 Notes 6 67

Mezivýsledek: U = R S T(U) = 1000 2000 V(U,A) = 50 200 V(U,B) = 100 V(U,C) = 300 CS 245 Notes 6 68

Z = U R3 T(Z) = 1000 2000 3000 V(Z,A) = 50 200 300 V(Z,B) = 100 V(Z,C) = 90 V(Z,D) = 500 CS 245 Notes 6 69

Souhrn Odhad velikosti výsledků je umění Nezapomeňte: Pro korektní odhad potřebujeme korektní statistiky nutnost udržovat při modifikacích tabulky CS 245 Notes 6 70

Přehled Odhad ceny plánu dotazu Odhad velikosti výsledku Máme Odhad počtu V/V operací Příště CS 245 Notes 6 71