SlideShare a Scribd company logo
Database System Concepts, 6th
Ed.
©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Chapter 6: Formal Relational Query
Chapter 6: Formal Relational Query
Languages
Languages
©Silberschatz, Korth and Sudarshan
6.2
Database System Concepts - 6th
Edition
Outline
Outline
 Relational Algebra
 Tuple Relational Calculus
 Domain Relational Calculus
©Silberschatz, Korth and Sudarshan
6.3
Database System Concepts - 6th
Edition
Relational Algebra
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 Sudarshan
6.4
Database System Concepts - 6th
Edition
Select Operation
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:
<attribute> op <attribute> or <constant>
where op is one of: =, , >, . <. 
 Example of selection:
 dept_name=“Physics”(instructor)
©Silberschatz, Korth and Sudarshan
6.5
Database System Concepts - 6th
Edition
Project Operation
Project Operation
 Notation:
where A1, A2 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)
)
(
,
,
2
,
1
r
k
A
A
A 

©Silberschatz, Korth and Sudarshan
6.6
Database System Concepts - 6th
Edition
Union Operation
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: 2nd
column
of r deals with the same type of values as does the 2nd
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 Sudarshan
6.7
Database System Concepts - 6th
Edition
Set Difference Operation
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 Sudarshan
6.8
Database System Concepts - 6th
Edition
Set-Intersection Operation
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 Sudarshan
6.9
Database System Concepts - 6th
Edition
Cartesian-Product Operation
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 Sudarshan
6.10
Database System Concepts - 6th
Edition
Rename Operation
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 A1 , A2 , …., An .
)
(
)
,...,
2
,
1
( E
n
A
A
A
x

©Silberschatz, Korth and Sudarshan
6.11
Database System Concepts - 6th
Edition
Formal Definition
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 E1 and E2 be relational-algebra expressions; the following are all relational-
algebra expressions:
 E1  E2
 E1 – E2
 E1 x E2
 p (E1), P is a predicate on attributes in E1
 s(E1), S is a list consisting of some of the attributes in E1
  x (E1), x is the new name for the result of E1
©Silberschatz, Korth and Sudarshan
6.12
Database System Concepts - 6th
Edition
Tuple Relational Calculus
Tuple Relational Calculus
©Silberschatz, Korth and Sudarshan
6.13
Database System Concepts - 6th
Edition
Tuple Relational Calculus
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
6.14
Database System Concepts - 6th
Edition
Predicate Calculus Formula
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
6.15
Database System Concepts - 6th
Edition
Example Queries
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
6.16
Database System Concepts - 6th
Edition
Example Queries
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
6.17
Database System Concepts - 6th
Edition
Example Queries
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
6.18
Database System Concepts - 6th
Edition
Universal Quantification
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
6.19
Database System Concepts - 6th
Edition
Safety of Expressions
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
6.20
Database System Concepts - 6th
Edition
Safety of Expressions (Cont.)
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
6.21
Database System Concepts - 6th
Edition
Domain Relational Calculus
Domain Relational Calculus
©Silberschatz, Korth and Sudarshan
6.22
Database System Concepts - 6th
Edition
Domain Relational Calculus
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
6.23
Database System Concepts - 6th
Edition
Example Queries
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
6.24
Database System Concepts - 6th
Edition
Example Queries
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
6.25
Database System Concepts - 6th
Edition
Safety of Expressions
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
6.26
Database System Concepts - 6th
Edition
Universal Quantification
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, 6th
Ed.
©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
End of Chapter 6
End of Chapter 6

More Related Content

PPT
ch6.ppt
PPT
Ch6 formal relational query languages
DOCX
Database System Concepts, 6th Ed.©Silberschatz, Korth and .docx
PPT
Relational Algebra and relational queries .ppt
PDF
DBMS Formal Relational Query Languages Relational Calculus.pdf
PPT
2.relational-model gygugugugugugu4rgdfdtdd.ppt
PPT
Intro to Relational Model in database system
PPT
ch2.ppt ch2.pptch2.pptch2.pptch2.pptch2.pptch2.ppt
ch6.ppt
Ch6 formal relational query languages
Database System Concepts, 6th Ed.©Silberschatz, Korth and .docx
Relational Algebra and relational queries .ppt
DBMS Formal Relational Query Languages Relational Calculus.pdf
2.relational-model gygugugugugugu4rgdfdtdd.ppt
Intro to Relational Model in database system
ch2.ppt ch2.pptch2.pptch2.pptch2.pptch2.pptch2.ppt

Similar to RELATIONAL ALGEBRA IN DATABASE MANAGEMENT SYSTEM (20)

PPT
ch2.pptbbnnnhgggbbbbbhhhhhhhhhhhhhhhhhhhh
PPT
chapter tow database system concepts seven edition
PPT
2.relational-model of Database management system.ppt
PDF
PPTX
ch3.pptx SQL in DBMS all Chapter with details
PDF
PPT
ch3.ppt
PPT
ch3.ppt
PPT
ch3.ppt
PPT
Introduction to SQL
PPT
DBMS _Relational model
PPTX
Intro to Relational Model
PPT
ch3.ppt
PPT
Formal- Relational- Query- Languages.ppt
PPT
Formal-Relational-Query-Languages.ppt for education
PPTX
ch2.pptx introduction to relational; model
PDF
Intro to relational model. Database Systems
PPT
The SQL data-definition language (DDL) allows the specification of informatio...
PPT
SQL manages and queries database data.ppt
ch2.pptbbnnnhgggbbbbbhhhhhhhhhhhhhhhhhhhh
chapter tow database system concepts seven edition
2.relational-model of Database management system.ppt
ch3.pptx SQL in DBMS all Chapter with details
ch3.ppt
ch3.ppt
ch3.ppt
Introduction to SQL
DBMS _Relational model
Intro to Relational Model
ch3.ppt
Formal- Relational- Query- Languages.ppt
Formal-Relational-Query-Languages.ppt for education
ch2.pptx introduction to relational; model
Intro to relational model. Database Systems
The SQL data-definition language (DDL) allows the specification of informatio...
SQL manages and queries database data.ppt
Ad

Recently uploaded (20)

PPTX
Institutional Correction lecture only . . .
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
TR - Agricultural Crops Production NC III.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
Basic Mud Logging Guide for educational purpose
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
Pre independence Education in Inndia.pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
Cell Types and Its function , kingdom of life
PDF
Classroom Observation Tools for Teachers
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Computing-Curriculum for Schools in Ghana
PPTX
Cell Structure & Organelles in detailed.
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Institutional Correction lecture only . . .
Pharmacology of Heart Failure /Pharmacotherapy of CHF
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
102 student loan defaulters named and shamed – Is someone you know on the list?
TR - Agricultural Crops Production NC III.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
GDM (1) (1).pptx small presentation for students
Module 4: Burden of Disease Tutorial Slides S2 2025
Basic Mud Logging Guide for educational purpose
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Pre independence Education in Inndia.pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Cell Types and Its function , kingdom of life
Classroom Observation Tools for Teachers
Final Presentation General Medicine 03-08-2024.pptx
PPH.pptx obstetrics and gynecology in nursing
Computing-Curriculum for Schools in Ghana
Cell Structure & Organelles in detailed.
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Ad

RELATIONAL ALGEBRA IN DATABASE MANAGEMENT SYSTEM

  • 1. Database System Concepts, 6th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use Chapter 6: Formal Relational Query Chapter 6: Formal Relational Query Languages Languages
  • 2. ©Silberschatz, Korth and Sudarshan 6.2 Database System Concepts - 6th Edition Outline Outline  Relational Algebra  Tuple Relational Calculus  Domain Relational Calculus
  • 3. ©Silberschatz, Korth and Sudarshan 6.3 Database System Concepts - 6th Edition Relational Algebra 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.
  • 4. ©Silberschatz, Korth and Sudarshan 6.4 Database System Concepts - 6th Edition Select Operation 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: <attribute> op <attribute> or <constant> where op is one of: =, , >, . <.   Example of selection:  dept_name=“Physics”(instructor)
  • 5. ©Silberschatz, Korth and Sudarshan 6.5 Database System Concepts - 6th Edition Project Operation Project Operation  Notation: where A1, A2 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) ) ( , , 2 , 1 r k A A A  
  • 6. ©Silberschatz, Korth and Sudarshan 6.6 Database System Concepts - 6th Edition Union Operation 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: 2nd column of r deals with the same type of values as does the 2nd 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))
  • 7. ©Silberschatz, Korth and Sudarshan 6.7 Database System Concepts - 6th Edition Set Difference Operation 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))
  • 8. ©Silberschatz, Korth and Sudarshan 6.8 Database System Concepts - 6th Edition Set-Intersection Operation 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)
  • 9. ©Silberschatz, Korth and Sudarshan 6.9 Database System Concepts - 6th Edition Cartesian-Product Operation 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.
  • 10. ©Silberschatz, Korth and Sudarshan 6.10 Database System Concepts - 6th Edition Rename Operation 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 A1 , A2 , …., An . ) ( ) ,..., 2 , 1 ( E n A A A x 
  • 11. ©Silberschatz, Korth and Sudarshan 6.11 Database System Concepts - 6th Edition Formal Definition 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 E1 and E2 be relational-algebra expressions; the following are all relational- algebra expressions:  E1  E2  E1 – E2  E1 x E2  p (E1), P is a predicate on attributes in E1  s(E1), S is a list consisting of some of the attributes in E1   x (E1), x is the new name for the result of E1
  • 12. ©Silberschatz, Korth and Sudarshan 6.12 Database System Concepts - 6th Edition Tuple Relational Calculus Tuple Relational Calculus
  • 13. ©Silberschatz, Korth and Sudarshan 6.13 Database System Concepts - 6th Edition Tuple Relational Calculus 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
  • 14. ©Silberschatz, Korth and Sudarshan 6.14 Database System Concepts - 6th Edition Predicate Calculus Formula 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
  • 15. ©Silberschatz, Korth and Sudarshan 6.15 Database System Concepts - 6th Edition Example Queries 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
  • 16. ©Silberschatz, Korth and Sudarshan 6.16 Database System Concepts - 6th Edition Example Queries 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” ))}
  • 17. ©Silberschatz, Korth and Sudarshan 6.17 Database System Concepts - 6th Edition Example Queries 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
  • 18. ©Silberschatz, Korth and Sudarshan 6.18 Database System Concepts - 6th Edition Universal Quantification 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]))}
  • 19. ©Silberschatz, Korth and Sudarshan 6.19 Database System Concepts - 6th Edition Safety of Expressions 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.
  • 20. ©Silberschatz, Korth and Sudarshan 6.20 Database System Concepts - 6th Edition Safety of Expressions (Cont.) 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.
  • 21. ©Silberschatz, Korth and Sudarshan 6.21 Database System Concepts - 6th Edition Domain Relational Calculus Domain Relational Calculus
  • 22. ©Silberschatz, Korth and Sudarshan 6.22 Database System Concepts - 6th Edition Domain Relational Calculus 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
  • 23. ©Silberschatz, Korth and Sudarshan 6.23 Database System Concepts - 6th Edition Example Queries 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” ))}
  • 24. ©Silberschatz, Korth and Sudarshan 6.24 Database System Concepts - 6th Edition Example Queries 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)}
  • 25. ©Silberschatz, Korth and Sudarshan 6.25 Database System Concepts - 6th Edition Safety of Expressions 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).
  • 26. ©Silberschatz, Korth and Sudarshan 6.26 Database System Concepts - 6th Edition Universal Quantification 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.
  • 27. Database System Concepts, 6th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use End of Chapter 6 End of Chapter 6