Relational Algebra & Relational Calculus

Relational Algebra & Relational Calculus

This week… . Recap: Relational Algebra (RA)….a formal query language CS 2451 • SQL based off RA: “direct” translation between SQL and RA Database Systems: . Relational Calculus (RC)…today • Set theory and predicate logic formulae Relational Algebra & • RA and RC exercises . Intro to SQL – Data Definition Language component Relational Calculus • Define schemas and populate tables: Use MySQL • Next class/lab http://www.seas.gwu.edu/~bhagiweb/cs2541 . In-Class exercises…work on team at table: turn in Spring 2020 worksheet for grading Instructor: Dr. Bhagi Narahari Based on slides © Ramakrishnan&Gerhke, Navathe&ElMasri, Narahari Review: Relational Algebra Operators How to write a RA query ? . Basic operations: . Find out which tables you need to access • Selection ( ) Selects a subset of rows from relation. • Compute of these tables • Projection ( ) Deletes unwanted columns from relation. . What are the conditions/predicates you need to apply ? • Cross-product ( ) Allows us to combine two relations. • Determines what select σ operators you need to apply • Set-difference ( ) Tuples in relation 1, but not in relation 2. . What attributes/columns are needed in result • Union ( ) Tuples in relation. 1 or in relation. 2. • Determines what project π operators you need • Rename. ρX(C,D) (R (A,B)) • Create a ”copy” of relation R with name X . Additional operations: Project ( Select ( Product)) • Intersection, join, assignment, division, renaming: Not essential, but (very!) useful. π(attribute list) (σ(predicate conditions) (R1 ×R2 …)) . Since each operation returns a relation, operations can be composed! (Algebra is “closed”.) • Predicate conditions should include the join conditions . Relational algebra operates on relation • which are sets, therefore no duplicates! 1 Modifying the Database Modifying Database . Need to insert, delete, update tuples in the database . Delete all course enrollments of student with sid=3 . What is insert ? • Takes ← Takes – (tuples of sid=3) • Add a new tuple to existing set = Union • Takes ← Takes – (σ(sid=3)(Takes)) . What is delete ? • Remove a tuple from existing set = Set difference . Insert new student tuple (5, Kevin) . How to update attribute to new value ? • Student ← Student (5, Kevin) • Need new operator: δ . Update: δA←E(R) • Update attribute A to E for tuples in relation R •δexp-grade←’A’(Takes) : updates grade • Can also specify selection condition on Takest Update grade only for student with sid=5 and cid=500 Views: Important Concept Next…. Relational Model, using SQL, allows definition of a view . Relational Calculus • View is a virtual relation . Writing queries using RA and Rel. Calc. • Executed each time it is referenced • More when we get to SQL 2 Relational Calculus: An Equivalent, But Very Relational Calculus Different, Formalism . Codd invented a relational calculus that he proved was . Comes in two flavors: Tuple relational calculus (TRC) and equivalent in expressiveness Domain relational calculus (DRC). • Based on a subset of first-order logic – declarative, without an implicit . Calculus has variables, constants, comparison ops, logical order of evaluation connectives and quantifiers. Tuple relational calculus • TRC: Variables range over (i.e., get bound to) tuples. Domain relational calculus • DRC: Variables range over domain elements (= field values). • More convenient for describing certain things, and for certain kinds of • Both TRC and DRC are simple subsets of first-order logic. manipulations . The DBMS uses the relational algebra internally, but query . Expressions in the calculus are called formulas. languages (e.g., SQL) use concepts from the relational . An answer tuple is an assignment of values to variables calculus that make the formula evaluate to true. Relational Calculus Tuple Relational Calculus (RC) . A tuple variable is a variable whose values can be tuples from a relational schema Is predicate true for this tuple (in Takes) DB (5, A, 500) . Formula/Query in RC is expressed as: { t | P(t) } • t is a tuple variable Formula • P(t) is property of tuple t; it is a predicate formula that describes properties of the tuple variable Result Thereby defining the possible values of t F • Result is set of all tuples where predicate P is true F (sid, grade, cid) . Formula is recursively defined: start with simple atomic formulas F (5, A, 500) If TRUE (get tuples from relations or make comparisons of values) i.e., in DB build bigger formulas using logical connectives. 3 Data Instance for Mini-Banner Example . Find (tuples) students with name “Jill” STUDENT COURSE Takes . “syntax” is set theory notations sid name sid exp-grade cid cid subj sem 1 Jill 1 A 550-0103 550-0103 DB F03 2Matt 1 A 700-1003 700-1003 Math S03 { t | t ∈ Students ∧ t[name] = ‘Jill’} 3Jack 3 A 700-1003 501-0103 Arch F03 4Maury 3 C 500-0103 4 C 500-0103 PROFESSOR Teaches fid name fid cid 1 Narahari 1 550-0103 2 Youssef 2 700-1003 8Choi 8 501-0103 Tuple Relational Calculus (RC) – more syntax Alternate syntax . A tuple variable is a variable whose values can be tuples of . Find all students with name Kevin a relational schema { (t.sid, t.name) | Student(t) ∧ t[name] = “Kevin”} . Formula/Query in RC is expressed as: { (t[att1], t[att2],..) | R(t) AND P(t) } Note: We will use set theory notations (to continue with what • t is a tuple variable in relation R you learnt in CS1311!) • t[att1] is value of attribute 1 in tuple t • P(t) is property of tuple t; it is a predicate formula that describes properties of the tuple variable Thereby defining the possible values of t • Result is set of all tuples for which predicate P is true 4 Domain Relational Calculus (DRC) Domain Relational Calculus . Define domain of each attribute in result set and the type Queries have form: . Find name, sid for students whose name is Lily domain variables { <b,a> | <b,a> ∈ Student ∧ a=‘Lily’ } {<x ,x , …, x >| p} 1 2 n predicate answer tuples: what are all the values that b can take on? only values where the name field = ‘Lily’ . Predicate: boolean expression over x1,x2, …, xn . Answer includes all tuples that make the formula true. The variables come from the domain of the attributes in the relation schema • in contrast to the tuple calculus where variables are tuples . we will be working with tuple relational calculus (TRC) More definitions of formulas in RC RC Formulas . This is nothing but “discrete math on steroids”!! . Atomic formula: • t Rname , or X op Y, or X op constant op is one of ,,,,, . Formula: an atomic formula, or • p,,p q p q , where p and q are formulas, or • X (())p X , where variable X is free in p(X), or • • X (())p X , where variable X is free in p(X) . The use of quantifiers X and X is said to bind X. • A variable that is not bound is free. 5 Expressions and Formulas in RC Existential and Universal Quantifiers . Truth value of an atomic formula (atom) evaluates to either . Two special symbols can appear in formulas: TRUE or FALSE •∀ : universal quantifier . Formula is made up of one or more atoms connected via •∃ ∶existential quantifier logical operations AND, OR, NOT… . Informally: a tuple is bound if it is quantified- it appears in an universal or existential clause, otherwise it is free . If F is a formula, then so are ∃ and ∀ • The formula ∃ is true if the formula F evaluates to true for some (at least one) tuple assigned to free occurences of t in F; otherwise it is false. • The formula ∀ is true if the formula F evaluates to true for every tuple (in the universe) assigned to free occurrences of t in F; otherwise it is false. •∀is called universal “for all” quantifier because every tuple in the universe of tuples must make F true to make the formula true •∃is called existential or “there exists” quantifier because any tuple that exists may make F true to make formula true More Complex Predicates in Review….Existential and Universal Quantifiers Relational Calculus . Existential Quantifiers: for natural numbers Starting with these atomic predicates, build up new x. ( (x>2) (x<4)) evaluates to ? predicates by the following rules: • Logical connectives: If p and q are predicates, then . Universal Quantifier- (for natural numbers) x.(x>2) so are evaluates to ? p q, p q, p, and p q • (x>2) (x<4) = ? (True or false) • (x>2) (x>0) = ? . For domain of natural numbers, x y (y>x ) evaluates to ? • Existential quantification: If p is a predicate, then so is x.p • Universal quantification: If p is a predicate, then so is x.p 6 Logical Equivalences Free and Bound Variables . The use of quantifiers or in a formula is said to . Recall from discrete math cs1311 bind the variables . There are two logical equivalences that are heavily • A variable v is bound in a predicate p when p is of the form used: v… or v… •p q p q (Whenever p is true, q must also be true.) . A variable occurs free in p if it occurs in a position where it is not bound by an enclosing or • x. p(x) x. p(x) (p is true for all x) . Examples: . The second can be a lot easier to check! •xis free in x > 2 y is free and x is bound in x. x > y . Important restriction: the variable t that appear to the . Example: left of `|’ must be the only free variables in the formula • The highest course number offered P(t). • All other tuple variables must be bound using quantifier . Implication: the values that the free variables can legally take on are the results of the query! Safety of Operators Safety of Expressions . Query of the form ∃ t ∈ R ( Q(t)) • There exists tuple t in set/relation R such that predicate Q is true .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 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