CH 27
CH 27
Languages
Database System Concepts - 7th Edition 27.2 ©Silberschatz, Korth and Sudarshan
Tuple Relational Calculus
Database System Concepts - 7th Edition 27.3 ©Silberschatz, Korth and Sudarshan
Tuple Relational Calculus
Database System Concepts - 7th Edition 27.4 ©Silberschatz, Korth and Sudarshan
Predicate Calculus Formula
Database System Concepts - 7th Edition 27.5 ©Silberschatz, Korth and Sudarshan
Example Queries
Database System Concepts - 7th Edition 27.6 ©Silberschatz, Korth and Sudarshan
Example Queries
Find the set of all courses taught in the Fall 2009 semester, or in
the Spring 2010 semester, or both
Database System Concepts - 7th Edition 27.7 ©Silberschatz, Korth and Sudarshan
Example Queries
Find the set of all courses taught in the Fall 2009 semester, and in
the Spring 2010 semester
Find the set of all courses taught in the Fall 2009 semester, but not in
the Spring 2010 semester
Database System Concepts - 7th Edition 27.8 ©Silberschatz, Korth and Sudarshan
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]))}
Database System Concepts - 7th Edition 27.9 ©Silberschatz, Korth and Sudarshan
Safety of Expressions
Database System Concepts - 7th Edition 27.10 ©Silberschatz, Korth and Sudarshan
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.
Database System Concepts - 7th Edition 27.11 ©Silberschatz, Korth and Sudarshan
Domain Relational Calculus
Database System Concepts - 7th Edition 27.12 ©Silberschatz, Korth and Sudarshan
Domain Relational Calculus
Database System Concepts - 7th Edition 27.13 ©Silberschatz, Korth and Sudarshan
Example Queries
Find the ID, name, dept_name, salary for instructors whose salary
is greater than $80,000
• {< i, n, d, s> | < i, n, d, s> ∈ instructor ∧ s > 80000}
As in the previous query, but output only the ID attribute value
• {< i> | < i, n, d, s> ∈ instructor ∧ s > 80000}
Find the names of all instructors whose department is in the
Watson building
{< n > | ∃ i, d, s (< i, n, d, s > ∈ instructor
∧ ∃ b, a (< d, b, a> ∈ department ∧ b = “Watson” ))}
Database System Concepts - 7th Edition 27.14 ©Silberschatz, Korth and Sudarshan
Example Queries
Find the set of all courses taught in the Fall 2009 semester, or in
the Spring 2010 semester, or both
Find the set of all courses taught in the Fall 2009 semester, and in
the Spring 2010 semester
Database System Concepts - 7th Edition 27.15 ©Silberschatz, Korth and Sudarshan
Safety of Expressions
The expression:
{ < x1, x2, …, xn > | P (x1, x2, …, xn )}
Database System Concepts - 7th Edition 27.16 ©Silberschatz, Korth and Sudarshan
Universal Quantification
Find all students who have taken all courses offered in the Biology
department
• {< i > | ∃ n, d, tc ( < i, n, d, tc > ∈ student ∧
(∀ ci, ti, dn, cr ( < ci, ti, dn, cr > ∈ course ∧ dn =“Biology”
⇒ ∃ si, se, y, g ( <i, ci, 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 - 7th Edition 27.17 ©Silberschatz, Korth and Sudarshan
Datalog
Database System Concepts - 7th Edition 27.18 ©Silberschatz, Korth and Sudarshan
End of Chapter 27
Database System Concepts - 7th Edition 27.19 ©Silberschatz, Korth and Sudarshan