SlideShare a Scribd company logo
1 of 19
Download to read offline
Database System Concepts, 7th Ed.
©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Chapter 27: Formal-Relational Query
Languages
©Silberschatz, Korth and Sudarshan
27.2
Database System Concepts - 7th Edition
Outline
 Tuple Relational Calculus
 Domain Relational Calculus
 Datalog
©Silberschatz, Korth and Sudarshan
27.3
Database System Concepts - 7th Edition
Tuple Relational Calculus
©Silberschatz, Korth and Sudarshan
27.4
Database System Concepts - 7th 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 Sudarshan
27.5
Database System Concepts - 7th 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 Sudarshan
27.6
Database System Concepts - 7th 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 Sudarshan
27.7
Database System Concepts - 7th 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 Sudarshan
27.8
Database System Concepts - 7th 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 Sudarshan
27.9
Database System Concepts - 7th 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 Sudarshan
27.10
Database System Concepts - 7th 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 Sudarshan
27.11
Database System Concepts - 7th 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 Sudarshan
27.12
Database System Concepts - 7th Edition
Domain Relational Calculus
©Silberschatz, Korth and Sudarshan
27.13
Database System Concepts - 7th Edition
Domain Relational Calculus
 A nonprocedural query language equivalent in power to the tuple
relational calculus
 Each query is an expression of the form:
{ < x1, x2, …, xn > | P (x1, x2, …, xn)}
• x1, x2, …, xn represent domain variables
• P represents a formula similar to that of the predicate calculus
©Silberschatz, Korth and Sudarshan
27.14
Database System Concepts - 7th Edition
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” ))}
©Silberschatz, Korth and Sudarshan
27.15
Database System Concepts - 7th Edition
Example Queries
{<c> | ∃ a, s, y, b, r, t ( <c, a, s, y, b, r, t > ∈ section ∧
s = “Fall” ∧ y = 2009 )
v ∃ a, s, y, b, r, t ( <c, 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
{<c> | ∃ a, s, y, b, r, t ( <c, 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
{<c> | ∃ a, s, y, b, r, t ( <c, a, s, y, b, r, t > ∈ section ∧
s = “Fall” ∧ y = 2009 )
∧ ∃ a, s, y, b, r, t ( <c, a, s, y, b, r, t > ∈ section ] ∧
s = “Spring” ∧ y = 2010)}
©Silberschatz, Korth and Sudarshan
27.16
Database System Concepts - 7th Edition
Safety of Expressions
The expression:
{ < x1, x2, …, xn > | P (x1, x2, …, xn )}
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 (P1(x )), the
subformula is true if and only if there is a value of x in dom (P1)
such that P1(x ) is true.
3. For every “for all” subformula of the form ∀x (P1 (x )), the subformula
is true if and only if P1(x ) is true for all values x from dom (P1).
©Silberschatz, Korth and Sudarshan
27.17
Database System Concepts - 7th Edition
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.
©Silberschatz, Korth and Sudarshan
27.18
Database System Concepts - 7th Edition
Datalog
©Silberschatz, Korth and Sudarshan
27.19
Database System Concepts - 7th Edition
End of Chapter 27

More Related Content

Similar to DBMS Formal Relational Query Languages Relational Calculus.pdf

jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybbjhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
WrushabhShirsat3
 
Database System Concepts, 6th Ed.©Silberschatz, Korth and .docx
Database System Concepts, 6th Ed.©Silberschatz, Korth and .docxDatabase System Concepts, 6th Ed.©Silberschatz, Korth and .docx
Database System Concepts, 6th Ed.©Silberschatz, Korth and .docx
randyburney60861
 

Similar to DBMS Formal Relational Query Languages Relational Calculus.pdf (20)

ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
Ch 3.pdf
Ch 3.pdfCh 3.pdf
Ch 3.pdf
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
DBMS _Relational model
DBMS _Relational modelDBMS _Relational model
DBMS _Relational model
 
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybbjhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
 
ch2.ppt
ch2.pptch2.ppt
ch2.ppt
 
DBMS_INTRODUCTION OF SQL
DBMS_INTRODUCTION OF SQLDBMS_INTRODUCTION OF SQL
DBMS_INTRODUCTION OF SQL
 
Ch3
Ch3Ch3
Ch3
 
part1.ppt
part1.pptpart1.ppt
part1.ppt
 
Relational algebra.pptx
Relational algebra.pptxRelational algebra.pptx
Relational algebra.pptx
 
ch5
ch5ch5
ch5
 
L4_SQL.pdf
L4_SQL.pdfL4_SQL.pdf
L4_SQL.pdf
 
Sql.pptx
Sql.pptxSql.pptx
Sql.pptx
 
Database System Concepts, 6th Ed.©Silberschatz, Korth and .docx
Database System Concepts, 6th Ed.©Silberschatz, Korth and .docxDatabase System Concepts, 6th Ed.©Silberschatz, Korth and .docx
Database System Concepts, 6th Ed.©Silberschatz, Korth and .docx
 
Cs501 trc drc
Cs501 trc drcCs501 trc drc
Cs501 trc drc
 
Ch14
Ch14Ch14
Ch14
 
Ch3 a
Ch3 aCh3 a
Ch3 a
 
Ch3
Ch3Ch3
Ch3
 

Recently uploaded

Paint shop management system project report.pdf
Paint shop management system project report.pdfPaint shop management system project report.pdf
Paint shop management system project report.pdf
Kamal Acharya
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
Kamal Acharya
 
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdfONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
Kamal Acharya
 
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Lovely Professional University
 
Teachers record management system project report..pdf
Teachers record management system project report..pdfTeachers record management system project report..pdf
Teachers record management system project report..pdf
Kamal Acharya
 

Recently uploaded (20)

Research Methodolgy & Intellectual Property Rights Series 1
Research Methodolgy & Intellectual Property Rights Series 1Research Methodolgy & Intellectual Property Rights Series 1
Research Methodolgy & Intellectual Property Rights Series 1
 
Paint shop management system project report.pdf
Paint shop management system project report.pdfPaint shop management system project report.pdf
Paint shop management system project report.pdf
 
ONLINE CAR SERVICING SYSTEM PROJECT REPORT.pdf
ONLINE CAR SERVICING SYSTEM PROJECT REPORT.pdfONLINE CAR SERVICING SYSTEM PROJECT REPORT.pdf
ONLINE CAR SERVICING SYSTEM PROJECT REPORT.pdf
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
 
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdfONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
ONLINE VEHICLE RENTAL SYSTEM PROJECT REPORT.pdf
 
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
Activity Planning: Objectives, Project Schedule, Network Planning Model. Time...
 
Teachers record management system project report..pdf
Teachers record management system project report..pdfTeachers record management system project report..pdf
Teachers record management system project report..pdf
 
Dairy management system project report..pdf
Dairy management system project report..pdfDairy management system project report..pdf
Dairy management system project report..pdf
 
Peek implant persentation - Copy (1).pdf
Peek implant persentation - Copy (1).pdfPeek implant persentation - Copy (1).pdf
Peek implant persentation - Copy (1).pdf
 
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...Software Engineering - Modelling Concepts + Class Modelling + Building the An...
Software Engineering - Modelling Concepts + Class Modelling + Building the An...
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineLow rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
 
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical EngineeringIntroduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
Introduction to Machine Learning Unit-4 Notes for II-II Mechanical Engineering
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
 
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdfRESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
 
E-Commerce Shopping for developing a shopping ecommerce site
E-Commerce Shopping for developing a shopping ecommerce siteE-Commerce Shopping for developing a shopping ecommerce site
E-Commerce Shopping for developing a shopping ecommerce site
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
 
Electrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineElectrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission line
 

DBMS Formal Relational Query Languages Relational Calculus.pdf

  • 1. Database System Concepts, 7th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Chapter 27: Formal-Relational Query Languages
  • 2. ©Silberschatz, Korth and Sudarshan 27.2 Database System Concepts - 7th Edition Outline  Tuple Relational Calculus  Domain Relational Calculus  Datalog
  • 3. ©Silberschatz, Korth and Sudarshan 27.3 Database System Concepts - 7th Edition Tuple Relational Calculus
  • 4. ©Silberschatz, Korth and Sudarshan 27.4 Database System Concepts - 7th 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
  • 5. ©Silberschatz, Korth and Sudarshan 27.5 Database System Concepts - 7th 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
  • 6. ©Silberschatz, Korth and Sudarshan 27.6 Database System Concepts - 7th 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
  • 7. ©Silberschatz, Korth and Sudarshan 27.7 Database System Concepts - 7th 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” ))}
  • 8. ©Silberschatz, Korth and Sudarshan 27.8 Database System Concepts - 7th 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
  • 9. ©Silberschatz, Korth and Sudarshan 27.9 Database System Concepts - 7th 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]))}
  • 10. ©Silberschatz, Korth and Sudarshan 27.10 Database System Concepts - 7th 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.
  • 11. ©Silberschatz, Korth and Sudarshan 27.11 Database System Concepts - 7th 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.
  • 12. ©Silberschatz, Korth and Sudarshan 27.12 Database System Concepts - 7th Edition Domain Relational Calculus
  • 13. ©Silberschatz, Korth and Sudarshan 27.13 Database System Concepts - 7th Edition Domain Relational Calculus  A nonprocedural query language equivalent in power to the tuple relational calculus  Each query is an expression of the form: { < x1, x2, …, xn > | P (x1, x2, …, xn)} • x1, x2, …, xn represent domain variables • P represents a formula similar to that of the predicate calculus
  • 14. ©Silberschatz, Korth and Sudarshan 27.14 Database System Concepts - 7th Edition 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” ))}
  • 15. ©Silberschatz, Korth and Sudarshan 27.15 Database System Concepts - 7th Edition Example Queries {<c> | ∃ a, s, y, b, r, t ( <c, a, s, y, b, r, t > ∈ section ∧ s = “Fall” ∧ y = 2009 ) v ∃ a, s, y, b, r, t ( <c, 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 {<c> | ∃ a, s, y, b, r, t ( <c, 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 {<c> | ∃ a, s, y, b, r, t ( <c, a, s, y, b, r, t > ∈ section ∧ s = “Fall” ∧ y = 2009 ) ∧ ∃ a, s, y, b, r, t ( <c, a, s, y, b, r, t > ∈ section ] ∧ s = “Spring” ∧ y = 2010)}
  • 16. ©Silberschatz, Korth and Sudarshan 27.16 Database System Concepts - 7th Edition Safety of Expressions The expression: { < x1, x2, …, xn > | P (x1, x2, …, xn )} 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 (P1(x )), the subformula is true if and only if there is a value of x in dom (P1) such that P1(x ) is true. 3. For every “for all” subformula of the form ∀x (P1 (x )), the subformula is true if and only if P1(x ) is true for all values x from dom (P1).
  • 17. ©Silberschatz, Korth and Sudarshan 27.17 Database System Concepts - 7th Edition 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.
  • 18. ©Silberschatz, Korth and Sudarshan 27.18 Database System Concepts - 7th Edition Datalog
  • 19. ©Silberschatz, Korth and Sudarshan 27.19 Database System Concepts - 7th Edition End of Chapter 27