Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-usewww.db-book.com Module A: Formal Relational.

Slides:



Advertisements
Similar presentations
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 5: Other Relational.
Advertisements

Relational Calculus and Datalog
Chapter 3 Tuple and Domain Relational Calculus. Tuple Relational Calculus.
1 CHAPTER 4 RELATIONAL ALGEBRA AND CALCULUS. 2 Introduction - We discuss here two mathematical formalisms which can be used as the basis for stating and.
Formal Relational Query Languages Chapter 6
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended.
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Tuple Relational.
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Relational.
SPRING 2004CENG 3521 E-R Diagram for the Banking Enterprise.
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Relational.
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Calculus Objectives  Tuple Calculus  Domain Calculus  QBE & SQL  Related Examples.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 6: Formal Relational.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: Introduction.
Temple University – CIS Dept. CIS331– Principles of Database Systems V. Megalooikonomou Relational Model III (based on notes by Silberchatz,Korth, and.
The Relational Model: Relational Calculus
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Intro to Relational.
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Relational.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Intro to Relational.
Chapter 2 Adapted from Silberschatz, et al. CHECK SLIDE 16.
Chapter 6: Formal Relational Query Languages. 6.2 Chapter 6: Formal Relational Query Languages Relational Algebra Tuple Relational Calculus Domain Relational.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 6: Formal Relational.
©Silberschatz, Korth and Sudarshan1Database System Concepts - 6 th Edition E-R Diagram for a University Enterprise.
ICOM 5016 – Introduction to Database Systems Lecture 5b Dr. Manuel Rodriguez Department of Electrical and Computer Engineering University of Puerto Rico,
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Relational.
CIS552Relational Model1 Structure of Relational Database Relational Algebra Extended Relational-Algebra-Operations Modification of the Database.
Query Processing: Relational Algebra
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com ICOM 5016 – Introduction.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 3: Introduction.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com ICOM 5016 – Introduction.
©Silberschatz, Korth and Sudarshan5.1Database System Concepts Chapter 5: Other Relational Query Languages Tuple Relational Calculus Domain Relational Calculus.
The Relational Algebra and Calculus
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Intro to Relational.
Chapter 2: Relational Model II Relational Algebra basics Relational Algebra basics.
Computing & Information Sciences Kansas State University Friday, 26 Jan 2008CIS 560: Database System Concepts Lecture 2 of 42 Friday, 29 August 2008 William.
2.1 Chapter 2: Relational Model. 2.2 Chapter 2: Relational Model Structure of Relational Databases Fundamental Relational-Algebra-Operations Additional.
Chapter 2 Introduction to Relational Model. Example of a Relation attributes (or columns) tuples (or rows) Introduction to Relational Model 2.
©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended.
Chapter 2: Intro to Relational Model. 2.2 Example of a Relation attributes (or columns) tuples (or rows)
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Introduction.
Database System Concepts, 5th Ed. Bin Mu at Tongji University Chapter 5: Other Relational Languages.
ICOM 5016 – Introduction to Database Systems Lecture 6 Dr. Manuel Rodriguez Department of Electrical and Computer Engineering University of Puerto Rico,
Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Relational.
IS 230Lecture 7Slide 1 Relational Algebra Lecture 8 Text Book – Chapter.
Database System Concepts, 6 th Ed. Chapter 6: Formal Relational Query Languages.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 6: Formal Relational.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 6: Formal Relational.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Intro to Relational.
PMIT-6102 Advanced Database Systems By- Jesmin Akhter Assistant Professor, IIT, Jahangirnagar University.
Query Languages Language in which user requests information from the database. Categories of languages Procedural Non-procedural, or declarative “Pure”
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 2: Intro to Relational.
©Silberschatz, Korth and Sudarshan2.1Database System Concepts - 6 th Edition Chapter 8: Relational Algebra.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 6: Formal Relational.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 6: Formal Relational.
Module 2: Intro to Relational Model
Chapter 3 Introduction to SQL(3)
Chapter 6: Formal Relational Query Languages
Chapter 2: Intro to Relational Model
Chapter 2: Intro to Relational Model
Session 3 Welcome: To session 3-the second learning sequence
Chapter 6: Formal Relational Query Languages
Chapter 2: Intro to Relational Model
Chapter 2: Intro to Relational Model
Chapter 2: Intro to Relational Model
Chapter 6: Formal Relational Query Languages
Example of a Relation attributes (or columns) tuples (or rows)
Chapter 2: Intro to Relational Model
Relational Model B.Ramamurthy 5/28/2019 B.Ramamurthy.
Chapter 27: Formal-Relational Query Languages
Lecture 2 Relational Database
Presentation transcript:

Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Module A: Formal Relational Query Languages

©Silberschatz, Korth and SudarshanA.2Database System Concepts - 6 th Edition Outline Relational Algebra Tuple Relational Calculus Domain Relational Calculus

©Silberschatz, Korth and SudarshanA.3Database System Concepts - 6 th Edition Relational Algebra Procedural language Six basic operators select:  project:  union:  set difference: – Cartesian product: x rename:  The operators take one or two relations as inputs and produce a new relation as a result.

©Silberschatz, Korth and SudarshanA.4Database System Concepts - 6 th Edition Select Operation Notation:  p (r) p is called the selection predicate Defined as:  p (r) = {t | t  r and p(t)} Where p is a formula in propositional calculus consisting of terms connected by :  (and),  (or),  (not) Each term is one of: op or where op is one of: =, , >, . <.  Example of selection:  dept_name=“Physics” (instructor)

©Silberschatz, Korth and SudarshanA.5Database System Concepts - 6 th Edition Project Operation Notation: where A 1, A 2 are attribute names and r is a relation name. The result is defined as the relation of k columns obtained by erasing the columns that are not listed Duplicate rows removed from result, since relations are sets Example: To eliminate the dept_name attribute of instructor  ID, name, salary ( instructor )

©Silberschatz, Korth and SudarshanA.6Database System Concepts - 6 th Edition Union Operation Notation: r  s Defined as: r  s = {t | t  r or t  s} For r  s to be valid. 1. r, s must have the same arity (same number of attributes) 2. The attribute domains must be compatible (example: 2 nd column of r deals with the same type of values as does the 2 nd column of s) Example: to find all courses taught in the Fall 2009 semester, or in the Spring 2010 semester, or in both  course_id (  semester=“Fall” Λ year=2009 (section))   course_id (  semester=“Spring” Λ year=2010 (section))

©Silberschatz, Korth and SudarshanA.7Database System Concepts - 6 th Edition Set Difference Operation Notation r – s Defined as: r – s = {t | t  r and t  s} Set differences must be taken between compatible relations. r and s must have the same arity attribute domains of r and s must be compatible Example: to find all courses taught in the Fall 2009 semester, but not in the Spring 2010 semester  course_id (  semester=“Fall” Λ year=2009 (section)) −  course_id (  semester=“Spring” Λ year=2010 (section))

©Silberschatz, Korth and SudarshanA.8Database System Concepts - 6 th Edition Set-Intersection Operation Notation: r  s Defined as: r  s = { t | t  r and t  s } Assume: r, s have the same arity attributes of r and s are compatible Note: r  s = r – (r – s)

©Silberschatz, Korth and SudarshanA.9Database System Concepts - 6 th Edition Cartesian-Product Operation Notation r x s Defined as: r x s = {t q | t  r and q  s} Assume that attributes of r(R) and s(S) are disjoint. (That is, R  S =  ). If attributes of r(R) and s(S) are not disjoint, then renaming must be used.

©Silberschatz, Korth and SudarshanA.10Database System Concepts - 6 th Edition Rename Operation Allows us to name, and therefore to refer to, the results of relational- algebra expressions. Allows us to refer to a relation by more than one name. Example:  x (E) returns the expression E under the name X If a relational-algebra expression E has arity n, then returns the result of expression E under the name X, and with the attributes renamed to A 1, A 2, …., A n.

©Silberschatz, Korth and SudarshanA.11Database System Concepts - 6 th Edition Formal Definition A basic expression in the relational algebra consists of either one of the following: A relation in the database A constant relation Let E 1 and E 2 be relational-algebra expressions; the following are all relational-algebra expressions: E 1  E 2 E 1 – E 2 E 1 x E 2  p (E 1 ), P is a predicate on attributes in E 1  s (E 1 ), S is a list consisting of some of the attributes in E 1  x (E 1 ), x is the new name for the result of E 1

©Silberschatz, Korth and SudarshanA.12Database System Concepts - 6 th Edition Tuple Relational Calculus

©Silberschatz, Korth and SudarshanA.13Database System Concepts - 6 th Edition Tuple Relational Calculus A nonprocedural query language, where each query is of the form {t | P (t ) } It is the set of all tuples t such that predicate P is true for t t is a tuple variable, t [A ] denotes the value of tuple t on attribute A t  r denotes that tuple t is in relation r P is a formula similar to that of the predicate calculus

©Silberschatz, Korth and SudarshanA.14Database System Concepts - 6 th Edition Predicate Calculus Formula 1.Set of attributes and constants 2.Set of comparison operators: (e.g., , , , , ,  ) 3.Set of connectives: and (  ), or (v)‚ not (  ) 4.Implication (  ): x  y, if x if true, then y is true x  y  x v y 5.Set of quantifiers:   t  r (Q (t ))  ”there exists” a tuple in t in relation r such that predicate Q (t ) is true   t  r (Q (t ))  Q is true “for all” tuples t in relation r

©Silberschatz, Korth and SudarshanA.15Database System Concepts - 6 th Edition Example Queries Find the ID, name, dept_name, salary for instructors whose salary is greater than $80,000 As in the previous query, but output only the ID attribute value {t |  s  instructor (t [ID ] = s [ID ]  s [salary ]  80000)} {t | t  instructor  t [salary ]  80000} Notice that a relation on schema (ID) is implicitly defined by the query Notice that a relation on schema (ID, name, dept_name, salary) is implicitly defined by the query

©Silberschatz, Korth and SudarshanA.16Database System Concepts - 6 th Edition Example Queries Find the names of all instructors whose department is in the Watson building {t |  s  section (t [course_id ] = s [course_id ]  s [semester] = “Fall”  s [year] = 2009 v  u  section (t [course_id ] = u [course_id ]  u [semester] = “Spring”  u [year] = 2010 )} Find the set of all courses taught in the Fall 2009 semester, or in the Spring 2010 semester, or both {t |  s  instructor (t [name ] = s [name ]   u  department (u [dept_name ] = s[dept_name] “  u [building] = “Watson” ))}

©Silberschatz, Korth and SudarshanA.17Database System Concepts - 6 th Edition Example Queries {t |  s  section (t [course_id ] = s [course_id ]  s [semester] = “Fall”  s [year] = 2009   u  section (t [course_id ] = u [course_id ]  u [semester] = “Spring”  u [year] = 2010 )} Find the set of all courses taught in the Fall 2009 semester, and in the Spring 2010 semester {t |  s  section (t [course_id ] = s [course_id ]  s [semester] = “Fall”  s [year] = 2009    u  section (t [course_id ] = u [course_id ]  u [semester] = “Spring”  u [year] = 2010 )} Find the set of all courses taught in the Fall 2009 semester, but not in the Spring 2010 semester

©Silberschatz, Korth and SudarshanA.18Database System Concepts - 6 th Edition Universal Quantification Find all students who have taken all courses offered in the Biology department {t |  r  student (t [ID] = r [ID])  (  u  course (u [dept_name]=“Biology”   s  takes (t [ID] = s [ID ]  s [course_id] = u [course_id]))}

©Silberschatz, Korth and SudarshanA.19Database System Concepts - 6 th Edition Safety of Expressions It is possible to write tuple calculus expressions that generate infinite relations. For example, { t |  t  r } results in an infinite relation if the domain of any attribute of relation r is infinite To guard against the problem, we restrict the set of allowable expressions to safe expressions. An expression {t | P (t )} in the tuple relational calculus is safe if every component of t appears in one of the relations, tuples, or constants that appear in P NOTE: this is more than just a syntax condition.  E.g. { t | t [A] = 5  true } is not safe --- it defines an infinite set with attribute values that do not appear in any relation or tuples or constants in P.

©Silberschatz, Korth and SudarshanA.20Database System Concepts - 6 th Edition Safety of Expressions (Cont.) Consider again that query to find all students who have taken all courses offered in the Biology department {t |  r  student (t [ID] = r [ID])  (  u  course (u [dept_name]=“Biology”   s  takes (t [ID] = s [ID ]  s [course_id] = u [course_id]))} Without the existential quantification on student, the above query would be unsafe if the Biology department has not offered any courses.

©Silberschatz, Korth and SudarshanA.21Database System Concepts - 6 th Edition Domain Relational Calculus

©Silberschatz, Korth and SudarshanA.22Database System Concepts - 6 th Edition Domain Relational Calculus A nonprocedural query language equivalent in power to the tuple relational calculus Each query is an expression of the form: {  x 1, x 2, …, x n  | P (x 1, x 2, …, x n )} x 1, x 2, …, x n represent domain variables P represents a formula similar to that of the predicate calculus

©Silberschatz, Korth and SudarshanA.23Database System Concepts - 6 th Edition Example Queries Find the ID, name, dept_name, salary for instructors whose salary is greater than $80,000 { |  instructor  s  80000} As in the previous query, but output only the ID attribute value { |  instructor  s  80000} Find the names of all instructors whose department is in the Watson building { |  i, d, s (  instructor   b, a (  department  b = “Watson” ))}

©Silberschatz, Korth and SudarshanA.24Database System Concepts - 6 th Edition Example Queries { |  a, s, y, b, r, t (  section  s = “Fall”  y = 2009 ) v  a, s, y, b, r, t (  section ]  s = “Spring”  y = 2010)} Find the set of all courses taught in the Fall 2009 semester, or in the Spring 2010 semester, or both This case can also be written as { |  a, s, y, b, r, t (  section  ( (s = “Fall”  y = 2009 ) v (s = “Spring”  y = 2010))} Find the set of all courses taught in the Fall 2009 semester, and in the Spring 2010 semester { |  a, s, y, b, r, t (  section  s = “Fall”  y = 2009 )   a, s, y, b, r, t (  section ]  s = “Spring”  y = 2010)}

©Silberschatz, Korth and SudarshanA.25Database System Concepts - 6 th Edition Safety of Expressions The expression: {  x 1, x 2, …, x n  | P (x 1, x 2, …, x n )} is safe if all of the following hold: 1. All values that appear in tuples of the expression are values from dom (P ) (that is, the values appear either in P or in a tuple of a relation mentioned in P ). 2. For every “there exists” subformula of the form  x (P 1 (x )), the subformula is true if and only if there is a value of x in dom (P 1 ) such that P 1 (x ) is true. 3. For every “for all” subformula of the form  x (P 1 (x )), the subformula is true if and only if P 1 (x ) is true for all values x from dom (P 1 ).

©Silberschatz, Korth and SudarshanA.26Database System Concepts - 6 th Edition Universal Quantification Find all students who have taken all courses offered in the Biology department { |  n, d, tc (  student  (  ci, ti, dn, cr (  course  dn =“Biology”   si, se, y, g (  takes ))} Note that without the existential quantification on student, the above query would be unsafe if the Biology department has not offered any courses.

Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com End of Chapter 6

©Silberschatz, Korth and SudarshanA.28Database System Concepts - 6 th Edition Figure 6.01

©Silberschatz, Korth and SudarshanA.29Database System Concepts - 6 th Edition Figure 6.02

©Silberschatz, Korth and SudarshanA.30Database System Concepts - 6 th Edition Figure 6.03

©Silberschatz, Korth and SudarshanA.31Database System Concepts - 6 th Edition Figure 6.04

©Silberschatz, Korth and SudarshanA.32Database System Concepts - 6 th Edition Figure 6.05

©Silberschatz, Korth and SudarshanA.33Database System Concepts - 6 th Edition Figure 6.06

©Silberschatz, Korth and SudarshanA.34Database System Concepts - 6 th Edition Figure 6.07

©Silberschatz, Korth and SudarshanA.35Database System Concepts - 6 th Edition Figure 6.08

©Silberschatz, Korth and SudarshanA.36Database System Concepts - 6 th Edition Figure 6.09

©Silberschatz, Korth and SudarshanA.37Database System Concepts - 6 th Edition Figure 6.10

©Silberschatz, Korth and SudarshanA.38Database System Concepts - 6 th Edition Figure 6.11

©Silberschatz, Korth and SudarshanA.39Database System Concepts - 6 th Edition Figure 6.12

©Silberschatz, Korth and SudarshanA.40Database System Concepts - 6 th Edition Figure 6.13

©Silberschatz, Korth and SudarshanA.41Database System Concepts - 6 th Edition Figure 6.14

©Silberschatz, Korth and SudarshanA.42Database System Concepts - 6 th Edition Figure 6.15

©Silberschatz, Korth and SudarshanA.43Database System Concepts - 6 th Edition Figure 6.16

©Silberschatz, Korth and SudarshanA.44Database System Concepts - 6 th Edition Figure 6.17

©Silberschatz, Korth and SudarshanA.45Database System Concepts - 6 th Edition Figure 6.18

©Silberschatz, Korth and SudarshanA.46Database System Concepts - 6 th Edition Figure 6.19

©Silberschatz, Korth and SudarshanA.47Database System Concepts - 6 th Edition Figure 6.20

©Silberschatz, Korth and SudarshanA.48Database System Concepts - 6 th Edition Figure 6.21