relational algebra relational query languages
play

Relational Algebra Relational Query Languages Recall: Query = - PowerPoint PPT Presentation

Relational Algebra Relational Query Languages Recall: Query = Retrieval Program Language Examples: Theoretical: 1. Relational Algebra 2. Relational Calculus a. Tuple Relational Calculus (TRC) b. Domain Relational Calculus (DRC)


  1. Relational Algebra

  2. Relational Query Languages Recall: Query = “Retrieval Program” Language Examples: Theoretical: 1. Relational Algebra 2. Relational Calculus a. Tuple Relational Calculus (TRC) b. Domain Relational Calculus (DRC) Practical : 1. SQL (originally: SEQUEL from System R) 2. Quel (used in Ingres) 3. Datalog (Prolog-like – used in research lab systems)  Theoretical QLs give semantics to Practical QLs CSCI1270, Lecture 2

  3. Relational Algebra • Basic Operators 1. select ( σ ) 2. project ( p ) 3. union (  ) 4. set difference ( – ) 5. cartesian product (  ) 6. rename ( ρ ) • Closure Property Relation Relational Relation Relational Operator Operator Relation CSCI1270, Lecture 2

  4. Select ( σ ) Notation: σ predicate (Relation) Relation: Can be name of table or result of another query Predicate: 1. Simple • attribute 1 = attribute 2 • attribute = constant value (also: ≠, <, >, ≤, ≥) 2. Complex • predicate AND predicate • predicate OR predicate • NOT predicate Idea: Select rows from a relation based on a predicate CSCI1270, Lecture 2

  5. Bank Database Account Branch bname acct_no balance bname bcity assets Downtown A-101 500 Downtown Brooklyn 9M Mianus A-215 700 Redwood Palo Alto 2.1M Perry A-102 400 Perry Horseneck 1.7M R.H. A-305 350 Mianus Horseneck 0.4M Brighton A-201 900 R.H. Horseneck 8M Redwood A-222 700 Pownel Bennington 0.3M Brighton A-217 750 N. Town Rye 3.7M Brighton Brooklyn 7.1M Depositor Borrower cname acct_no cname lno Johnson A-101 Smith A-215 Hayes A-102 Jones L-17 Turner A-305 Smith L-23 Johnson A-201 Hayes L-15 Jones A-217 Jackson L-14 Lindsay A-222 Curry L-93 Smith L-11 Williams L-17 Adams L-16 Customer cname cstreet ccity Loan Jones Main Harrison Smith North Rye bname lno amt Hayes Main Harrison Curry North Rye Downtown L-17 1000 Lindsay Park Pittsfield Redwood L-23 2000 Turner Putnam Stanford Perry L-15 1500 Williams Nassau Princeton Downtown L-14 1500 Adams Spring Pittsfield Mianus L-93 500 Johnson Alma Palo Alto R.H. L-11 900 Glenn Sand Hill Woodside Perry L-16 1300 Brooks Senator Brooklyn Green Walnut Stanford CSCI1270, Lecture 2

  6. Select ( σ ) Notation: σ predicate ( Relation ) bname bcity assets σ bcity = “Brooklyn” (branch) = Downtown Brooklyn 9M Brighton Brooklyn 7.1M σ assets > $8M ( σ bcity = “Brooklyn” ( branch )) = bname bcity assets Downtown Brooklyn 9M CSCI1270, Lecture 2

  7. Project ( p ) Notation : p A1, …, An ( Relation ) • Relation: name of a table or result of another query • Each A i is an attribute • Idea: p selects columns (vs. σ which selects rows) p cstreet, ccity ( customer ) = cstreet ccity Main Harrison North Rye Park Pittsfield Putnam Stanford Nassau Princeton Spring Pittsfield Alma Palo Alto Sand Hill Woodside Senator Brooklyn Walnut Stanford CSCI1270, Lecture 2

  8. Project ( p ) p bcity ( σ assets > 5M ( branch ) ) = bcity Brooklyn Horseneck Question: Does the result of Project always have the same number of tuples as its input? CSCI1270, Lecture 2

  9. Union (  ) Notation: Relation 1  Relation 2 R  S valid only if: 1. R, S have same number of columns (arity) 2. R, S corresponding columns have same name and domain (compatibility) Example: cname ( p cname (depositor))  ( p cname (borrower)) = Johnson Smith Hayes Schema: Turner Jones Depositor Borrower Lindsay cname acct_no cname lno Jackson Curry Williams Adams CSCI1270, Lecture 2

  10. Set Difference ( – ) Notation: Relation 1 - Relation 2 R - S valid only if: 1. R, S have same number of columns (arity) 2. R, S corresponding columns have same domain (compatibility) Example: ( p bname ( σ amount ≥ 1000 (loan))) – ( p bname ( σ balance < 800 (account))) = bname lno amount bname acct_no balance bname Downtown L-17 1000 Mianus A-215 700 Downtown Redwood L-23 2000 Brighton A-201 900 Perry Perry L-15 1500 Redwood A-222 700 Downtown L-14 500 Brighton A-217 850 Perry L-16 300 CSCI1270, Lecture 2

  11. What About Intersection? Remember: R ⋂ S = R – (R – S) R – S R S

  12. Cartesian Product (  ) Notation: Relation 1  Relation 2 R  S like cross product for mathematical relations: • every tuple of R appended to every tuple of S • flattened!!! Example: depositor  borrower = depositor. acct_no borrower. lno cname cname Johnson A-101 Jones L-17 Johnson A-101 Smith L-23 How many tuples in Johnson A-101 Hayes L-15 the result? Johnson A-101 Jackson L-14 Johnson A-101 Curry L-93 Johnson A-101 Smith L-11 A: 56 Johnson A-101 Williams L-17 Johnson A-101 Adams L-16 Smith A-215 Jones L-17 … … … … CSCI1270, Lecture 2

  13. Rename ( ρ ) Notation: r identifier ( Relation ) renames a relation, or Notation: r identifier 0 (identifier 1 , …, identifier n ) ( Relation ) renames relation and columns of n-column relation Use: massage relations to make  , – valid, or  more readable CSCI1270, Lecture 2

  14. Rename ( ρ ) Notation: r identifier0 (identifier1 , …, identifier n) ( Relation ) Example: r result (dcname, acctno, bcname, lno) (depositor  borrower) = dccname acctno bcname lno result Johnson A-101 Jones L-17 Johnson A-101 Smith L-23 Johnson A-101 Hayes L-15 Johnson A-101 Jackson L-14 Johnson A-101 Curry L-93 Johnson A-101 Smith L-11 Johnson A-101 Williams L-17 Johnson A-101 Adams L-16 Smith A-215 Jones L-17 … … … … CSCI1270, Lecture 2

  15. Example Query in RA • Determine lno for loans that are for an amount that is larger than the amount of some other loan. (i.e. lno for all non-minimal loans) Can do in steps: Temp 1  … Temp 2  … Temp 1 … … CSCI1270, Fall 2008, Lecture 2

  16. Example Query in RA 1. Find the base data we need lno amt Temp 1  p lno,amt (loan) L-17 1000 L-23 2000 L-15 1500 L-14 1500 L-93 500 L-11 900 L-16 1300 2. Make a copy of (1) Temp 2  ρ Temp2 (lno2,amt2) (Temp 1 ) lno2 amt2 L-17 1000 L-23 2000 L-15 1500 L-14 1500 L-93 500 L-11 900 L-16 1300 CSCI1270, Lecture 2

  17. Example Query in RA 3. Take the cartesian product of 1 and 2 Temp 3  Temp 1  Temp 2 lno amt lno2 amt2 L-17 1000 L-17 1000 L-17 1000 L-23 2000 … … … … L-17 1000 L-16 1300 L-23 2000 L-17 1000 L-23 2000 L-23 2000 … … … … L-23 2000 L-16 1300 … … … … CSCI1270, Lecture 2

  18. Example Query in RA 4. Select non-minimal loans Temp 4  σ amt > amt2 (Temp 3 ) 5. Project on lno Result  p lno (Temp 4 ) … or, if you prefer… • p lno ( σ amt > amt2 ( p lno,amt (loan)  ( ρ Temp2 (lno2,amt2) ( p lno,amt (loan))))) CSCI1270, Fall 2008, Lecture 2

  19. Review Theoretical Query Languages Relational Algebra SELECT ( σ ) 1. PROJECT ( π ) 2. UNION (  ) 3. SET DIFFERENCE ( – ) 4. CARTESIAN PRODUCT (  ) 5. RENAME ( ρ ) 6. • Relational algebra gives semantics to practical query languages • Above set: minimal relational algebra  will now look at some redundant (but useful!) operators CSCI1270, Fall 2008, Lecture 2

  20. Review Express the following query in the RA: Find the names of customers who have both accounts and loans T 1  ρ T1 (cname2, lno) (borrower) T 2  depositor  T 1 T 3  σ cname = cname2 (T 2 ) Result  π cname (T 3 ) Above sequence of operators ( ρ ,  , σ ) very common. Motivates additional (redundant) RA operators. CSCI1270, Lecture 2

  21. Relational Algebra Additional Operators   1. Natural Join ( )  2. Division ( ) 3. Generalized Projection ( π ) 4. Aggregation 5. Outer Joins ( )       6. Update (  ) (we’ve already been using this) • 1&2 Redundant: Can be expressed in terms of minimal RA   e.g. depositor borrower = π …(σ…(depositor  ρ…(borrower))) • 3 – 6 Added for extra power CSCI1270, Lecture 2

  22. Natural Join   Notation: Relation 1 Relation 2 Idea: combines ρ ,  , σ A B C D E A B C D E B D α ‘a’ 1 + 10 α ‘a’ α 1 + 10 10 α ‘a’   2 - 10 = α ‘a’ α 2 - 10 20 α ‘a’ 2 - 20 α ‘b’ β 2 - 20 10 Β ‘b’ 3 + 10 β ‘c’ β 3 + 10 10 β ‘c’ 3 + 10 r s   depositor borrower ≡ π cname,acct_no,lno ( σ cname=cname2 (depositor  ρ t(cname2,lno) (borrower))) CSCI1270, Lecture 2

  23. Division  Notation: Relation 1 Relation 2 Idea: expresses “for all” queries r A B α 1 B s α 2 1 A  3 α 2 α = 1 β δ 1 γ 3 γ 4 γ 6 γ Query: Find values for A in r 1 δ which have corresponding B 2 δ values for all B values in s CSCI1270, Lecture 2

  24. Division   Another way to look at it: and 17  3 = 5 The largest value of i such that: i  3 ≤ 17 Relational Division r A B α 1 α s 2 B A t  3 α α 1 = 1 β δ 2 1 γ 3 γ 4 γ 6 γ The largest value of t such that: ( t  s  r ) 1 δ 2 δ CSCI1270, Lecture 2

  25. Division A More Complex Example r A B C D E α α a a 1 α γ a a 1 t  A B C D E s α γ = a b 1 α γ a β γ a a 1 γ γ a a 1 β γ a b 3 1 b γ γ a a 1 γ γ a b 1 γ β a b 1 ? CSCI1270, Lecture 2

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