TRC and DRC Acknowledgements Overview Relations Relations As

TRC and DRC Acknowledgements Overview Relations Relations As

Acknowledgements TRC and DRC • These slides were written by Richard T. Snodgrass (University of Arizona, SIGMOD chair), Christian S. Jensen (Aalborg University), and Curtis Dyreson (Utah State University). • Kristian Torp (Aalborg University) converted the slides from island presents to Powerpoint. CS 6800 Utah State University The Relational Model R-2 Overview Relations • Review he Relational Model (RM) and Algebra Definition : Given sets A1, A 2, ... , An a relation r is a • Tuple Relational Calculus (TRC) subset of their Cartesian product. ⊆ × × × • Domain Relational Calculus (DRC) r A1 A2 ... An ∈ • r is a set of n-tuples (a1, a 2, ... , an) where ai Ai Definition : R(A1, A 2, ..., An) is the schema of relation r. A1, A 2, ... , An are domains ; their names are attributes R is the name of the relation • Notation: r (R) is a relation on the relation schema R. The Relational Model R-3 The Relational Model R-4 Relations as Tables Tuples • Relations can be depicted as tables (approx.) Definition : An element t of a relation r is called a tuple . • ×(O,E) where O = {1,3} and E = {0,2} × • We refer to component values of a tuple t by t[Ai] = vi O E (the value of attribute A for tuple t). 1 0 i Alternatively, use ‘dot’ notation, e.g., t.A is the ith attribute 1 0 1 2 i 3 0 of tuple t 3 2 3 2 • t[Ai, ... , Ak] refers to the subtuple of t containing the • <(O,E) values of attributes Ai, ... , Ak respectively. • Table metaphor 1 0 < O E Tuple is a row 1 2 3 2 Attribute is a column The Relational Model R-5 The Relational Model R-6 Characteristics of Relations Characteristics of Relations (cont.) • Tuples in a relation are unorderd. • Attributes in a tuple/relation are ordered. • Example: The following two relations have the same But, we can change the order at will (to be shown in future). information content. Example: The following relations do not have the same information. Name Age Age Name Name Age Name Age Pat 1 1 Pat Pat 1 Sue 3 Fred 2 2 Fred Fred 2 Pam 4 Sue 3 3 Sue Sue 3 Fred 2 Pam 4 4 Pam Pam 4 Pat 1 The Relational Model R-7 The Relational Model R-8 Characteristics of Relations (cont.) Degree and Cardinality • Values in a tuple are atomic (indivisible). Ord CID Date Salesperson • A value cannot be a structure, record, or relation 102 42 860207 Johnson 103 39 860211 Strong Example : All atomic values (string or integer). 104 24 860228 Boggs Name Age 105 42 860303 Strong 107 34 860308 West Tuples (or records, rows) Pat 1 [Cardinality is # of them] 108 46 860308 Wset Fred 2 110 24 860312 Boggs 111 21 860318 Strong Example : The following is not a relation, Name is not atomic 112 29 860320 Clark Name Age degree/arity First Last 1 Joe Doe First Last 2 Sue Doe The Relational Model R-9 The Relational Model R-10 Relational Algebra Extended Relational Algebra • Five primary operators (complete) • Outer Joins σ Selection: Left: r L s Projection: π Right: r R s Union: ∪ Full: r N s Difference: – • Aggregation Cartesian Product: × (r) G agg 1, ..., agg k • Convenient derived operators (closed) Intersection: ∩ n n n Theta join θ, equijoin = , and natural join Semijoins: left l and right r Relational division: ÷ The Relational Model R-11 The Relational Model R-12 RA Operations Produce Relations Relational Completeness • All the operators can be expressed in terms of the five basic operators: σ, π, −−−,− ×××,× ∪∪∪ Name Age Name Age Name joe 4 sue 10 sue sue 10 sam 9 sam • This set is called a complete set of relational algebraic sam 9 operation1 operation2 operators. • Any query language that is at least as powerful as these operators is termed (query) relationally complete . Notation: operation2( operation1( R ) ) • The algebra is closed . The Relational Model R-13 The Relational Model R-14 Overview Relational Calculus • Relational Calculus • The relational algebra is procedural , specifying a Tuple relational calculus sequence of operations to derive the desired results. ◆ Safety • Relational calculus is based on first-order predicate Domain relational calculus calculus. ◆ Equivalence • Relational calculus is more declarative , specifying Completeness and expressiveness what is desired. • The expressive power of the two languages is identical. This implies that relational calculus is relationally complete. • Many commercial relational query languages are based on the relational calculus. • The implementations are based on the relational algebra. The Relational Model R-15 The Relational Model R-16 Relational Calculus, cont. Tuple Relational Calculus • Two forms of calculi • A tuple variable ranges over tuples of a particular relation. • Example: List the information about expensive films. { ∧ Tuple Relational Calculus (TRC) t | Film(t) t.RentalPrice > 4} • Film(t) specifies the range relation Film for the tuple variable t. Domain Relational Calculus (DRC) • Each tuple satisfying t.RentalPrice > 4 is retrieved. • The entire tuple is retrieved. • List the titles of expensive films. {t.Title | Film(t) ∧ t.RentalPrice > 4} The Relational Model R-17 The Relational Model R-18 Syntax of Tuple Relational Calculus Video Store Queries, cont. {t .A , t .A , ... , t .A | P (t , t , ... , t )} • List the outrageously priced films (over $4 or 1 1 2 2 j j 1 2 j under $1). • t , t , ... , t are tuple variables. 1 2 j {t | Film(t) ∧ (t.RentalPrice > 4 ∨ t.RentalPrice < 1)} • Each tk is an tuple of the relation over which it ranges. • List the ID numbers of the films that are expensive and have been reserved. • P is a predicate, which is made up of atoms, of the following types. {t.FilmID | Film(t) ∧ (t.RentalPrice > 4 R (tk) identifies R as the range of tk ∧ (∃r (Reserved(r) ∧ t.FilmID = r.FilmID ))} Atoms from predicate calculus: ∧∧∧, ∨∨∨, ¬¬¬,∀∀∀, ∃∃∃ The Relational Model R-19 The Relational Model R-20 Video Store Queries, cont. Video Store Queries, cont. • List the IDs of the expensive films that have not been • List the titles of all reserved films. reserved. {f.Title | ∃r (Film(f) ∧ Reserved(r) ∧ f.FilmID = r.FilmID )} {t.FilmID | Film(t) ∧ (t.RentalPrice > 4 ∧ ¬∃ r (Reserved(r) ∧ t.FilmID = r.FilmID ))} • List the customers who have reserved a film. {c.Name | ∃r (Customer(c) ∧ Reserved(r) ∧ c.CustomerID = r.CustomerID )} The Relational Model R-21 The Relational Model R-22 Video Store Queries, cont. Video Store Queries, cont. • List the customers who have reserved expensive films. • List the customers who have reserved all the foreign films. {c.Name | ∃r ∃f (Customer(c) ∧ Reserved(r) ∧ Film(f) ∧ f.RentalPrice > 4 ∧ c.CustomerID = r.CustomerID {c.Name | (Customer(c) ∧ r.FilmID = f.FilmID )} ∧ ∀f (Film(f) ∧ f.Kind = “F” ⇒ (∃r (Reserved(r) ∧ • List the streets of customers who have reserved foreign r.FilmID = f.FilmID ∧ films. r.CustomerID = c.CustomerID ))} {c.Street | ∃r ∃f (Customer(c) ∧ Reserved(r) ∧ Film(f) ∧ f.Kind = “F” ∧ c.CustomerID = r.CustomerID ∧ r.FilmID = f.FilmID )} a ⇒ b is shorthand for ¬a ∨ b. The Relational Model R-23 The Relational Model R-24 Video Store Queries, cont. Safety • Find the film(s) with the highest rental price. • It is possible to write tuple calculus expressions that • Alternative formulation: Find the film(s) with a rental generate infinite relations. ¬ ∈ price for which no other rental price is higher. • {t | t r} results in an infinite relation if the domain of any attribute of relation r is infinite. • We wish to ensure that an expression in relational calculus yields only a finite number of tuples. { ∧ ¬∃ f.FilmID | Film(f) f2 (Film(f2) • The domain of a tuple relational calculus expression is ∧ f2.RentalPrice > f.RentalPrice )} the set of all values that either appear as constant values in the expression or that exist in any tuple of the relations referenced in the expression. • An expression is safe if all values in its result are from the domain of the expression. The Relational Model R-25 The Relational Model R-26 Domain Relational Calculus Video Store Queries • Each query is an expression of the form • List the outrageously priced films (over $4 or under $1). { 〈x1, x 2, ... , xn〉 |P (x1, x 2, ... , xn)} • P is a formula similar to the formula in the predicate {〈T〉 | ∃F ∃R ∃K ( 〈F, T, R, K 〉 ∈ Film calculus. ∧ (R > 4 ∨ R < 1))} • List the information on the expensive films. • List the ID numbers of the films that are expensive and have been reserved. { 〈F, T, R, K 〉 | 〈F, T, R, K 〉 ∈ Film ∧ R > 4} • List the titles of the expensive films. {〈F〉 | ∃T ∃R ∃K (〈F, T, R, K 〉 ∈ Film ∧ R > 4 ∧ ∃I ∃D (〈 I, F, D 〉 ∈ Reserved ))} { 〈T〉 | ∃F ∃R ∃K ( 〈F, T, R, K 〉 ∈ Film ∧ R > 4)} The Relational Model R-27 The Relational Model R-28 Video Store Queries, cont. Video Store Queries, cont. • List the IDs of the expensive films that have not been • List the titles of all reserved films. reserved. {〈T〉 | ∃F,R,K (〈F, T, R, K 〉 ∈ Film ∧ ∃I,D (〈 I, F, D 〉 ∈ Reserved ))} {〈F〉 | ∃T,R,K (〈F, T, R, K 〉 ∈ Film ∧ R > 4 ∧ ¬∃ I ¬∃ D (〈 I, F, D 〉 ∈ Reserved ))} • List the customers who have reserved a film. {〈N〉 | ∃I,S,C,T (〈I, N, S, C, T 〉 ∈ Customer ∧ ∃F,D (〈I, F, D 〉 ∈ Reserved ))} The Relational Model R-29 The Relational Model R-30 Video Store Queries, cont. Video Store Queries, cont. • List the customers who have reserved expensive films. • List the customers who have reserved all the foreign films. {〈N〉 | ∃I,S,C,T (〈I, N, S, C, T 〉 ∈ Customer ∧ ∃F,D (〈I, F, D 〉 ∈ Reserved ∧ (( ∃T,R,K (〈F, T, R, K 〉 ∈ Film ∧ R > 4)))} { ∃ ∈ • List the streets of customers who have reserved foreign 〈N〉 | I,S,C,T (〈 I, N, S, C, T 〉 Customer ∧ ∀ ∃ ∈ films.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us