relational database identities of relational algebra
play

Relational Database: Identities of Relational Algebra; Example of - PowerPoint PPT Presentation

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


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. Example: High Level • We wish to evaluate π I ( σ p ∧ q ( R ⊲ ⊳ T )) ⊳ S ⊲ • 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

  12. Step One • Claim: π I ( σ p ∧ q ( R ⊲ ⊳ T )) = π I ( σ p ∧ q [( R ⊲ ⊳ S ) ⊲ ⊳ T ]) ⊳ S ⊲ • This claim follows from the associativity of ⊲ ⊳ , since the necessary preconditions for applying this rule are met: – 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend