CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

32
CPS216: Advanced Database Systems Notes 02:Query Processing (Overview) Shivnath Babu

description

CPS216: Advanced Database Systems Notes 02:Query Processing (Overview). Shivnath Babu. Query Processing. Declarative SQL Query  Query Plan. - PowerPoint PPT Presentation

Transcript of CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Page 1: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

CPS216: Advanced Database Systems

Notes 02:Query Processing (Overview)Shivnath Babu

Page 2: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Query Processing

Declarative SQL Query Query Plan

Focus: Relational System (i.e., data is organized as tables, or relations)

NOTE: You will not be tested on how well you know SQL. Understanding the SQL introduced in class will be sufficient (a primer follows). SQL is described in Chapter 6, GMUW.

Page 3: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

SQL Primer

Select <attribute list>

From <relation list>

Where <condition list>

Example Filter Query over R(A,B,C):

Select B

From R

Where R.A = “c” R.C > 10

We will focus on SPJ, or Select-Project-Join Queries

Page 4: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

SQL Primer (contd.)

Select <attribute list>

From <relation list>

Where <condition list>

Example Join Query over R(A,B,C) and S(C,D,E):

Select B, D

From R, S

Where R.A = “c” S.E = 2 R.C = S.C

We will focus on SPJ, or Select-Project-Join-Queries

Page 5: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

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

Answer B D2 x

Select B,D

From R,S

Where R.A = “c” S.E = 2 R.C=S.C

Page 6: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

• How do we execute this query?

- Do Cartesian product- Select tuples- Do projection

One idea

Select B,D

From R,S

Where R.A = “c” S.E = 2 R.C=S.C

Page 7: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

R X S R.A R.B R.C S.C S.D S.E

a 1 10 10 x 2

a 1 10 20 y 2

. .

c 2 10 10 x 2 . .

Bingo!

Got one...

Select B,D

From R,S

Where R.A = “c” S.E

= 2 R.C=S.C

Page 8: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Relational Algebra - can be used to describe plans

Ex: Plan I

B,D

R.A=“c” S.E=2 R.C=S.C

X

R S

Page 9: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Relational Algebra Primer (Chapter 5, GMUW)

Select: R.A=“c” R.C=10

Project: B,D

Cartesian Product: R X S

Natural Join: R S

Page 10: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Relational Algebra - can be used to describe plans

Ex: Plan I

B,D

R.A=“c” S.E=2 R.C=S.C

X

R S

OR: B,D [ R.A=“c” S.E=2 R.C = S.C (RXS)]

Page 11: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Another idea:

B,D

R.A = “c” S.E = 2

R(A,B,C) S(C,D,E)

Plan II

natural join

Select B,D

From R,S

Where R.A = “c” S.E = 2 R.C=S.C

Page 12: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

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

Select B,D

From R,S

Where R.A = “c” S.E = 2 R.C=S.C

Page 13: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Plan III

Use R.A and S.C Indexes

(1) Use R.A index to select R tuples with R.A = “c”

(2) For each R.C value found, use S.C index to find matching tuples

(3) Eliminate S tuples S.E 2

(4) Join matching R,S tuples, project

B,D attributes, and place in result

Page 14: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

R S

A B C 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

c 7 15

A CI1 I2

=“c”

<c,2,10> <10,x,2>

check=2?

output: <2,x>

next tuple:<c,7,15>

Page 15: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

parse

Query rewriting

Physical plan generation

execute

result

SQL query

parse tree

logical query planstatistics

physical query plan

QueryOptimization

Query Execution

Overview of Query

Processing

Page 16: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Example Query

Select B,D

From R,S

Where R.A = “c” R.C=S.C

Page 17: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Example: Parse Tree<Query>

<SFW>

SELECT <SelList> FROM <FromList> WHERE <Cond>

<Attribute> <SelList> <RelName> <FromList> <Cond> AND <Cond>

B <Attribute> R <RelName>

S<Attr> <Op> <Const>

<Attr> <Op> <Attr>

R.A = “c”

R.C S.C=

D

Select B,DFrom R,SWhere R.A = “c” R.C=S.C

Page 18: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Along with Parsing …

• Semantic checks– Do the projected attributes exist in the

relations in the From clause?– Ambiguous attributes?– Type checking, ex: R.A > 17.5

• Expand views

Page 19: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

parse

Query rewriting

Physical plan generation

execute

result

SQL query

parse tree

logical query planstatistics

physical query plan

Initial logical plan

“Best” logical plan

Logical plan

Rewrite rules

Page 20: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Initial Logical Plan

Relational Algebra: B,D [ R.A=“c” R.C = S.C (RXS)]

Select B,DFrom R,SWhere R.A = “c” R.C=S.C

B,D

R.A = “c” Λ R.C = S.C

X

R S

Page 21: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Apply Rewrite Rule (1)

B,D [ R.C=S.C [R.A=“c”(R X S)]]

B,D

R.A = “c” Λ R.C = S.C

X

R S

B,D

R.A = “c”

X

R S

R.C = S.C

Page 22: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Apply Rewrite Rule (2)

B,D [ R.C=S.C [R.A=“c”(R)] X S]

B,D

R.A = “c”

X

R

S

R.C = S.C

B,D

R.A = “c”

X

R S

R.C = S.C

Page 23: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Apply Rewrite Rule (3)

B,D [[R.A=“c”(R)] S]

B,D

R.A = “c”

R

S

B,D

R.A = “c”

X

R

S

R.C = S.CNatural join

Page 24: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

parse

Query rewriting

Physical plan generation

execute

result

SQL query

parse tree

logical query planstatistics

physical query plan

Initial logical plan

“Best” logical plan

Logical plan

Rewrite rules

Page 25: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

parse

Query rewriting

Physical plan generation

execute

result

SQL query

parse tree

Best logical query planstatistics

Best physical query plan

Page 26: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Physical Plan Generation

B,D

R.A = “c”

R

S

Natural join

Best logical planR S

Index scan Table scan

Hash join

Project

Page 27: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

parse

Query rewriting

Physical plan generation

execute

result

SQL query

parse tree

Best logical query planstatistics

Best physical query plan

Enumerate possible physical plans

Find the cost of each plan

Pick plan with minimum cost

Page 28: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Physical Plan Generation

Logical Query Plan

P1 P2 …. Pn

C1 C2 …. Cn

Pick minimum cost one

Physical plans

Costs

Page 29: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Textbook outline

Chapter 15

15.1 Physical operators- Scan, Sort (Ch. 11.4), Indexes (Ch. 13)

15.2-15.6 Implementing operators +

estimating their cost

15.8 Buffer Management

15.9 Parallel Processing

Page 30: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Chapter 16

16.1 Parsing

16.2 Algebraic laws

16.3 Parse tree logical query plan

16.4 Estimating result sizes

16.5-16.7 Cost based optimization

Textbook outline (contd.)

Page 31: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

Chapter 5 Relational Algebra

Chapter 6 SQL

Background Material

Page 32: CPS216: Advanced Database Systems Notes 02:Query Processing (Overview)

parse

Query rewriting

Physical plan generation

execute

result

SQL query

parse tree

logical query planstatistics

physical query plan

Query Processing - In class order

2; 16.1

3; 16.2,16.3

1; 13, 15

4; 16.4—16.7