cs 4432query processing - lecture 131 cs4432: database systems ii lecture #13 query processing...

28
CS 4432 query processing - lectur e 13 1 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

Post on 20-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 1

CS4432: Database Systems IILecture #13

Query Processing

Professor Elke A. Rundensteiner

Page 2: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 2

Query in SQL Query Plan in Algebra (logical) Other Query Plan in Algebra (logical)

Page 3: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 3

Query plan 1 (in relational algebra)

B,D

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

XR S

Page 4: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 4

Query plan 2 (in relational algebra)

B,D

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

R S

natural join

Page 5: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 5

Relational algebra optimization

• What are transformation rules ?– preserve equivalence

• What are good transformations?– reduce query execution costs

Page 6: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 6

Rules: Natural joins & cross products & unionR S = S R(R S) T = R (S T)

Page 7: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 7

Note:

• Carry attribute names in results, soorder is not important

• Can also write as trees, e.g.:

T R

R S S T

Page 8: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 8

R x S = S x R(R x S) x T = R x (S x T)

R U S = S U RR U (S U T) = (R U S) U T

Rules: Natural joins & cross products & unionR S = S R(R S) T = R (S T)

Page 9: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 9

Rules: Selects

p1p2(R) =

p1vp2(R)

=

p1 [ p2 (R)]

[ p1 (R)] U [ p2 (R)]

Page 10: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 10

Bags vs. Sets

R = {a,a,b,b,b,c}S = {b,b,c,c,d}RUS = ?

• Option 1 SUMRUS = {a,a,b,b,b,b,b,c,c,c,d}

• Option 2 MAXRUS = {a,a,b,b,b,c,c,d}

Page 11: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 11

Option 2 (MAX) makes this rule work:

p1vp2 (R) = p1(R) U p2(R)

Example: 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}

Page 12: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 12

“Sum” option makes more sense:

Senators (……) Rep (……)

T1 = yr,state Senators; T2 = yr,state Reps

T1 Yr State T2 Yr State 97 CA 99 CA 99 CA 99 CA 98 AZ 98 CA

Union?

Page 13: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 13

Executive Decision

-> Use “SUM” option for bag unions-> Some rules cannot be used for

bags

Page 14: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 14

Rules: Project

Let: X = set of attributesY = set of attributesXY = X U Y

xy (R) = x [y (R)]

Page 15: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 15

Let p = predicate with only R attribs q = predicate with only S attribs m = predicate with only R,S attribs

p (R S) =

q (R S) =

Rules: combined

[p (R)] S

R [q (S)]

Page 16: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 16

Some Rules can be Derived:

pq (R S) =

pqm (R S) =

pvq (R S) =

Rules: combined (continued)

Page 17: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 17

Do one, others for homework:

pq (R S) = [p (R)] [q (S)]

pqm (R S) =

m [(p R) (q S)]pvq (R S) =

[(p R) S] U [R (q S)]

Page 18: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 18

--> Derivation for first one:

pq (R S) =

p [q (R S) ] =

p [ R q (S) ] =

[p (R)] [q (S)]

Page 19: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 19

Rules: combined

Let x = subset of R attributes z = attributes in predicate P

(subset of R attributes)

x[p (R) ] = {p [ x (R) ]} x xz

Page 20: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 20

Rules: combined

Let x = subset of R attributes y = subset of S attributes

z = intersection of R,S attributes

xy (R S) =

xy{[xz (R) ] [yz (S) ]}

Page 21: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 21

xy {p (R S)} =

xy {p [xz’ (R) yz’ (S)]}

z’ = z U {attributes used in P }

Page 22: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 22

Rules for combined with X

similar...

e.g., p (R X S) = ?

Page 23: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 23

p(R U S) = p(R) U p(S)

p(R - S) = p(R) - S = p(R) - p(S)

Rules U combined:

Page 24: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 24

p1p2 (R) p1 [p2 (R)]

p (R S) [p (R)] S

R S S R

x [p (R)] x {p [xz (R)]}

Which are “good” transformations?

Page 25: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 25

Conventional wisdom: do projects early

Example: R(A,B,C,D,E) x={E} P: (A=3) (B=“cat”)

x {p (R)} vs. E {p{ABE(R)}}

Page 26: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 26

What if we have A, B indexes?

B = “cat” A=3

Intersect pointers to get

pointers to matching tuples

But

Page 27: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 27

Bottom line:

• No transformation is always good• Usually good: early selections

Page 28: CS 4432query processing - lecture 131 CS4432: Database Systems II Lecture #13 Query Processing Professor Elke A. Rundensteiner

CS 4432 query processing - lecture 13 28

In textbook: more transformations

• Eliminate common sub-expressions• Other operations, such as,

duplicate elimination and others.