Dr. Alexandra I. Cristea CS 319: Theory of Databases: C6.

Slides:



Advertisements
Similar presentations
TWO STEP EQUATIONS 1. SOLVE FOR X 2. DO THE ADDITION STEP FIRST
Advertisements

Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 5: Other Relational.
Copyright © 2011, Elsevier Inc. All rights reserved. Chapter 5 Author: Julia Richards and R. Scott Hawley.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Title Subtitle.
Determine Eligibility Chapter 4. Determine Eligibility 4-2 Objectives Search for Customer on database Enter application signed date and eligibility determination.
My Alphabet Book abcdefghijklm nopqrstuvwxyz.
0 - 0.
ALGEBRAIC EXPRESSIONS
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
ALGEBRAIC EXPRESSIONS
Relational data objects 1 Lecture 6. Relational data objects 2 Answer to last lectures activity.
Relational data integrity
Dr. Alexandra I. Cristea CS 253: Topics in Database Systems: XPath, NameSpaces.
CS 319: Theory of Databases
Dr. Alexandra I. Cristea CS 319: Theory of Databases.
Dr. Alexandra I. Cristea CS 319: Theory of Databases: C3.
Dr. A.I. Cristea CS 319: Theory of Databases: FDs.
Dr. Alexandra I. Cristea CS 252: Fundamentals of Relational Databases: SQL5.
CS 319: Theory of Databases: C4
Agents & Intelligent Systems Dr Liz Black
ZMQS ZMQS
How To Use OPAC.
ABC Technology Project
1 Undirected Breadth First Search F A BCG DE H 2 F A BCG DE H Queue: A get Undiscovered Fringe Finished Active 0 distance from A visit(A)
Numbers & Geometry Points and Distances. 6/3/2013 Numbers and Geometry 2 Distance d between numbers a and b d = Example: | = Points and Distances.
Quadratic Inequalities
1 Directed Depth First Search Adjacency Lists A: F G B: A H C: A D D: C F E: C D G F: E: G: : H: B: I: H: F A B C G D E H I.
Equations of Lines Equations of Lines
Relational Algebra Chapter 4, Part A
Constant, Linear and Non-Linear Constant, Linear and Non-Linear
Squares and Square Root WALK. Solve each problem REVIEW:
Introduction to Databases
1 Chapter 4 The while loop and boolean operators Samuel Marateck ©2010.
Relational Calculus and Datalog
Chapter 5 Test Review Sections 5-1 through 5-4.
GG Consulting, LLC I-SUITE. Source: TEA SHARS Frequently asked questions 2.
Addition 1’s to 20.
25 seconds left…...
Test B, 100 Subtraction Facts
Week 1.
We will resume in: 25 Minutes.
Dantzig-Wolfe Decomposition
1 Unit 1 Kinematics Chapter 1 Day
1 PART 1 ILLUSTRATION OF DOCUMENTS  Brief introduction to the documents contained in the envelope  Detailed clarification of the documents content.
How Cells Obtain Energy from Food
Dr. Alexandra I. Cristea CS 319: Theory of Databases: C6.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Relational Calculus Chapter 4, Part B.
Chapter 3 Tuple and Domain Relational Calculus. Tuple Relational Calculus.
1 541: Relational Calculus. 2 Relational Calculus  Comes in two flavours: Tuple relational calculus (TRC) and Domain relational calculus (DRC).  Calculus.
Relational Calculus Ameetinder Singh CS 157A. Tuple Relational Calculus  non-procedural query language as compared to relational algebra that is procedural.
Dr. Alexandra I. Cristea CS 319: Theory of Databases: C7.
SPRING 2004CENG 3521 E-R Diagram for the Banking Enterprise.
Dr. Alexandra I. Cristea CS 319: Theory of Databases: C6.
Rutgers University Relational Calculus 198:541 Rutgers University.
Relational Algebra Instructor: Mohamed Eltabakh 1.
Temple University – CIS Dept. CIS331– Principles of Database Systems V. Megalooikonomou Relational Model III (based on notes by Silberchatz,Korth, and.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Relational Calculus Chapter 4, Section 4.3.
Database Management Systems, R. Ramakrishnan1 Relational Calculus Chapter 4.
Dr. Alexandra I. Cristea CS 319: Theory of Databases: Exam preparation.
Database System Concepts, 5th Ed. Bin Mu at Tongji University Chapter 5: Other Relational Languages.
CSC 411/511: DBMS Design Dr. Nan WangCSC411_L5_Relational Calculus 1 Relational Calculus Chapter 4 – Part B.
Database Management Systems, R. Ramakrishnan1 Relational Calculus Chapter 4, Part B.
CS 480: Database Systems Lecture 16 February 20,2013.
Relational Calculus Chapter 4, Part B 7/1/2019.
Presentation transcript:

Dr. Alexandra I. Cristea CS 319: Theory of Databases: C6

2 … previous RA

3 Content 1.Generalities DB 2.Integrity constraints (FD revisited) 3.Relational Algebra (revisited) 4.Query optimisation 5.Tuple calculus 6.Domain calculus 7.Query equivalence 8.Temporal Data 9.The Askew Wall

4 Tuple Calculus non-procedural query language A query in TC is expressed as: {t|P(t)} where: t – set of tuples (also called free or range variable) P – predicate that is true for t (also called formula) Also: t[A] – value of tuple t on attribute A t r – means the tuple t is in relation r

5 Example TC language QUEL (used by INGRES DBMS) SQL (to some extent)

6 Examples TC 1.{t | t loan ^ t[amount] > 1200} 2.{t | s loan (t[loan-number] = s[loan-number] ^ s[amount] > 1200)}

7 Domain calculus Uses domain variables to take values from an attributes domain, instead of tuple values is related to QBE language An expression in DC is of the form: { | P(x1,x2,…,xn)} where: x1,…xn are domain variables P is a formula

8 Example DC language QBE Others: ILL, FQL, DEDUCE

9 Example DC 1.{ | loan ^ a > 1200} 2.{ | b,a ( loan ^ a > 1200)}

10 Satefy of expressions: Tuple Calculus (& DC) A TC expression {t | P(t)} may give an infinite relation, e.g., { t | (t loan) } Define dom(P) as the set of all values referenced by P (e.g. literals or relations) A TC expression {t | P(t)} is safe when all values appearing in the result are values from dom(P).

11 Queries in TC & DC Translate the following questions (for the bank database) to the tuple & domain calculus: 1.Give the name of customers that have a loan with a branch where they also have an account. 2.Give the name of customers who have a loan at a branch where they do not have an account. 3.Give the name of customers who have a loan at every branch where they have an account. 4.Give the name of customers who have loans only at branches where they have an account.

12 1. Give the name of customers that have a loan with a branch where they also have an account. TC: {t| b borrower(t[c_n]=b[c_n] ^ l loan(l[l_n]=b[l_n] ^ a account(a[b_n]=l[b_n] ^ d depositor(a[a_n]=d[a_n] ^ d[c_n]=b[c_n] ))))} DC: { | ln ( borrower ^ bn,a( loan ^ an,b( account ^ depositor)))}

13 2. Give the name of customers who have a loan at a branch where they do not have an account. TC: {t| b borrower(t[c_n]=b[c_n] ^ l loan(l[l_n]=b[l_n] ^ a account(a[b_n]=l[b_n] ^ d depositor(a[a_n]=d[a_n] ^ d[c_n]=b[c_n] ))))} DC: { | ln ( borrower ^ bn,a( loan ^ an,b( account ^ depositor)))}

14 3. Give the name of customers who have a loan at every branch where they have an account. TC: {t| d depositor(t[c_n]=d[c_n] ^ d2 depositor((d2[c_n]=d[c_n] ^ a account(a[a_n]=d2[a_n]) => ( l loan(l[b_n]=a[b_n] ^ b borrow(b[l_n]=l[l_n] ^ b[c_n]=d2[c_n]))))))} DC: { | an( depositor ^ an2 (( depositor ^ bn,b( account) => ( ln,a( loan ^ borrow)))))} This is necessary for the safety of the expression, to reduce the search space

15 4. Give the name of customers who have loans only at branches where they have an account. TC: {t| d borrow(t[c_n]=d[c_n] ^ d2 borrow((d2[c_n]=d[c_n] ^ a loan(a[l_n]=d2[l_n]) => ( l account(l[b_n]=a[b_n] ^ b depositor(b[a_n]=l[a_n] ^ b[c_n]=d2[c_n]))))))} DC: { | an( borrow ^ an2 (( borrow ^ bn,b( loan) => ( ln,a( account ^ depositor)))))}

16 4. Give the name of customers who have loans only at branches where they have an account. TC: {t| b borrow(t[c_n]=b[c_n] ^ b2 borrow((b2[c_n]=b[c_n] ^ l loan(l[l_n]=b2[l_n]) => ( a account(a[b_n]=l[b_n] ^ d depositor(d[a_n]=a[a_n] ^ d[c_n]=n2[c_n]))))))} DC: { | ln( borrow ^ ln2 (( borrow ^ bn,a( loan) => ( an,b( account ^ depositor)))))} With more intuitive attrs naming.

17 Library TC/DC questions 1.Give the name and department of borrowers, and the ISBN-number of the books of which they were the first borrower. 2.Give the name and department of borrowers who have never borrowed the most recently purchased copy of a book. 3.Give the title of books that are present in the library, reserved by someone, but not yet borrowed (by anyone).

18 1. Give the name and department of borrowers, and the ISBN-number of the books of which they were the first borrower. TC: {t | b borrow( t[name]=b[name] ^ t[department]=b[department] ^ c copy(b[barcode]=c[barcode] ^ t[ISBN]=c[ISBN] ^ c2 copy(c2[ISBN]=c[ISBN] ^ b2 borrow(b2[barcode]=c2[barcode] ^ b2[from]<b[from])))) } DC: { | b,f,t( borrow ^ Y,p,d1( copy ^ b2,d2,Y2,p2( copy ^ n2,f2,t2,d3( borrow ^ f2<f)))) }

19 2. Give the name and department of borrowers who have never borrowed the most recently purchased copy of a book. TC {t | b borrow( t[name]=b[name] ^ t[department]=b[department] ^ b2 borrow((b2[name]=b[name] ^ b2[department]=b[department] ^ c2 copy (c2[barcode]=b2[barcode])) => ( c3 copy(c3[ISBN]=c2[ISBN] ^ c3[cpYear]>c2[cpYear] ^ b2[from] c3[cpYear])))} DC { | b,f,t ( borrow ^ b2,f2,t2(( borrow ^ ISBN,d2,Y2,p2( copy]) => ( b3,d3,Y3,p3( copy ^ Y3>Y2 ^ f2 Y3)))))}

20 3. Give the title of books that are present in the library, reserved by someone, but not yet borrowed (by anyone). TC: {t| b book(t[title]=b[title] ^ r reservation(r[ISBN]=b[ISBN] ^ c copy(c[ISBN]=b[ISBN] ^ c[present] = true ^ c2 copy(c2[ISBN]=c[ISBN] ^ b borrow(b[barcode]=c2[barcode])))))} DC: { | ISBN,p,y( book ^ n,d,date,c( reservation ^ b2,d2,Y2,p2( copy ^ p2 = true ^ b3,d3,Y3,p3( copy ^ n4,d4,f4,t4( borrow)))))}

21 Beer Database visits(drinker, bar) serves(bar, beer) likes(drinker, beer).

22 Beer questions with a difference 1.Give all drinkers that visit bars that dont serve any beer they like 2.Give all drinkers that only visit bars that serve a beer they like 3.Give all drinkers that only visit bars that serve no beer they like 4.Give all drinkers that only visit bars that serve all beers they like (and maybe other beers as well) 5.Give all drinkers that only visit bars that only serve beers they like (and thus serve nothing else)

23 Summary We have learned TC & DC We have learned to perform simple and more complex queries in TC & DC

24 … to follow Query equivalence