Relational Database Identities of Relational Algebra Example of Query

Reviews
Shared by: Shame Ona
Stats
views:
56
rating:
not rated
reviews:
0
posted:
2/11/2009
language:
English
pages:
0
Relational Database: Identities of Relational Algebra; Example of Query Optimization Greg Plaxton Theory in Programming Practice, Fall 2005 Department of Computer Science University of Texas at Austin Selection Splitting • For any database relation R and predicates p, q, we have σp∧q (R) = σp(σq (R)) • A corollary is that selection is commutative, that is, σp(σq (R)) = σq (σp(R)) Theory in Programming Practice, Plaxton, Fall 2005 Projection Refinement • For any subsets a and b of a database relation R such that a ⊆ b, we have πa(R) = πa(πb(R)) Theory in Programming Practice, Plaxton, Fall 2005 Commutativity of Selection and Projection • For any subset a of the attributes of a database relation R, and any predicate p that names only attributes in a, we have πa(σp(R)) = σp(πa(R)) Theory in Programming Practice, Plaxton, Fall 2005 Commutativity and Associativity of Union, Cross Product, Join • Union and cross product are commutative and associative • Join is commutative • For any database relations R, S, and T such that (1) R and S have at least one common attribute, (2) S and T have at least one common attribute, and (3) no attribute is common to R, S, and T , we have (R S) T =R (S T) Theory in Programming Practice, Plaxton, Fall 2005 Selection Pushing • For any database relations R and S, any predicate p, and any operator in the set {∪, ∩, −}, we have σp(R S) = σp(R) σp(S) • For any database relations R and S, any predicate p that depends only on attributes of R, and any operator in the set {×, }, we have σp(R S) = σp(R) S Theory in Programming Practice, Plaxton, Fall 2005 Projection Pushing • For any database relations R and S, and any set of attributes a, we have πa(R ∪ S) = πa(R) ∪ πa(S) Theory in Programming Practice, Plaxton, Fall 2005 Distributivity of Projection over Join • For any database relations R and S with associated sets of attributes r and s, respectively, and any sets of attributes a, b, and c such that a ⊆ r ∪ s, b = (a ∩ r) ∪ d, and c = (a ∩ s) ∪ d where d = r ∩ s, we have πa(R S) = πa(πb(R) πc(S)) Theory in Programming Practice, Plaxton, Fall 2005 Query Optimization • We are given a query in the form of a relational algebra expression α • We could evaluate α directly • Instead, it might be more efficient to use identities such as the ones presented earlier to obtain an equivalent expression β for which a direct evaluation is more efficient Theory in Programming Practice, Plaxton, Fall 2005 An Example of Query Optimization • We consider an abstraction of the movie example discussed in the course packet • For the sake of brevity, we use the letters A through I to refer to the nine attributes of the example: A for Title, B for Actor, C for Director, D for Genre, E for Year, F for Theatre, G for Time, H for Rating, I for Address • We have three database relations R, S, and T with attributes {A, B, C, D, E}, {A, F, G, H}, and {F, I}, respectively • Let p (resp., q) denote a predicate asserting that attribute B (resp., G) has a particular given value • We wish to evaluate πI (σp∧q (R S T )) Theory in Programming Practice, Plaxton, Fall 2005 Example: High Level • We wish to evaluate πI (σp∧q (R S T )) • We will prove that this expression is equivalent to πI (πF [πA(σp(R)) πA,F (σq (S))] T) • Why is the latter expression likely to be more efficient to evaluate directly? • In what follows we will give a step-by-step proof of the equivalence of the two preceding formulae Theory in Programming Practice, Plaxton, Fall 2005 Step One • Claim: πI (σp∧q (R S T )) = πI (σp∧q [(R S) T ]) • This claim follows from the associativity of preconditions for applying this rule are met: , since the necessary – R and S have at least one common attribute (A is common) – S and T have at least one common attribute (F is common) – no attribute is common to R, S, and T Theory in Programming Practice, Plaxton, Fall 2005 Step Two • Claim: πI (σp∧q [(R S) T ]) = πI (σp∧q (R S) T) • This claim follows from selection pushing over join, since the necessary precondition for applying this rule is met – The predicate p ∧ q names only the attributes B and G, both of which are attributes of R S Theory in Programming Practice, Plaxton, Fall 2005 Lemma 1 • For any database relations R and S, and any predicates p and q such that p depends only on attributes of R and q depends only on attributes of S, we have σp∧q (R S) = σp(R) σq (S) • Proof: – By selection splitting and commutativity of join, σp∧q (R S) = σp(σq (S R)) – By selection pushing over join and commutativity of join, σp(σq (S R)) = σp(R σq (S)) – By selection pushing over join, σp(R σq (S)) = σp(R) σq (S) Theory in Programming Practice, Plaxton, Fall 2005 Step Three • Claim: πI (σp∧q (R S) T ) = πI ([σp(R) σq (S)] T) • This claim follows from Lemma 1 since p only involves attribute B and q only involves attribute G – Note that B is an attribute of R and G is an attribute of S Theory in Programming Practice, Plaxton, Fall 2005 Step Four • Claim: πI ([σp(R) σq (S)] T ) = πI (πF [σp(R) σq (S)] πF,I (T )) • This claim follows from distributivity of projection over join, since the necessary preconditions for applying this rule are met, with – r = {A, B, C, D, E, F, G, H} as the set of attributes of σp(R) σq (S) – s = {F, I} as the set of attributes of T – d = r ∩ s = {F } – a = {I} ⊆ r ∪ s – b = (a ∩ r) ∪ d = {F } – c = (a ∩ s) ∪ d = {F, I} Theory in Programming Practice, Plaxton, Fall 2005 Step Five • Claim: πI (πF [σp(R) σq (S)] πF,I (T )) = πI (πF [σp(R) σq (S)] T) • This claim follows from the observation that πF,I (T ) = T , since {F, I} is the set of attributes of T Theory in Programming Practice, Plaxton, Fall 2005 Lemma 2 • Claim: πF (σp(R) σq (S)) = πF (πA(σp(R)) πA,F (σq (S))) • This claim follows from distributivity of projection over join, since the necessary preconditions for applying this rule are met, with – r = {A, B, C, D, E} as the set of attributes of σp(R) – s = {A, F, G, H} as the set of attributes of σq (S) – d = r ∩ s = {A} – a = {F } ⊆ r ∪ s – b = (a ∩ r) ∪ d = {A} – c = (a ∩ s) ∪ d = {A, F } Theory in Programming Practice, Plaxton, Fall 2005 Step Six • Claim: πI (πF [σp(R) σq (S)] T ) = πI (πF [πA(σp(R)) πA,F (σq (S))] T) • This claim follows from Lemma 2 Theory in Programming Practice, Plaxton, Fall 2005

Related docs
Relational Algebra
Views: 34  |  Downloads: 3
relational algebra
Views: 468  |  Downloads: 21
Relational Algebra
Views: 3  |  Downloads: 0
Relational Algebra in DBMS
Views: 1266  |  Downloads: 69
RELATIONAL-ALGEBRA
Views: 10  |  Downloads: 0
Relational Algebra and SQL 1
Views: 1  |  Downloads: 0
Other docs by Shame Ona
Transcript of McCulloch v Maryland 1819
Views: 219  |  Downloads: 1
Commitments Subject to Rescission by Borrowers
Views: 133  |  Downloads: 0
Security Agreement for Borrowing Money
Views: 441  |  Downloads: 14
Contract to Purchase Building
Views: 227  |  Downloads: 6
From mortgaged premises
Views: 432  |  Downloads: 0
Place of business facilities and equipment
Views: 204  |  Downloads: 1
STOCK DIVIDEND RESOLUTIONS
Views: 298  |  Downloads: 6
Transcript of Marbury v Madison 1803
Views: 151  |  Downloads: 2
Authorization to Release Information
Views: 222  |  Downloads: 1
GettingaBuzzoutofJudaism
Views: 130  |  Downloads: 0
Boys_Night_Out_Permission_Slip1
Views: 152  |  Downloads: 1