Chapter 4
Relational Algebra and
Relational Calculus
Transparencies
Relational Algebra
Relational algebra and relational calculus are
formal languages associated with the relational
model.
The Relational Algebra is used to define the ways
in which relations (tables) can be operated to
manipulate their data.
It is used as the basis of SQL for relational
databases, and illustrates the basic operations
required of any DML.
2
3
Relational Algebra
Relational algebra operations work on one or
more relations to define another relation
without changing the original relations.
Both operands and results are relations, so
output from one operation can become input to
another operation.
Allows expressions to be nested, just as in
arithmetic. This property is called closure.
4
Relational algebra VS Relational Calculus
Informally, relational algebra is a (high-level)
procedural language and relational calculus a
non-procedural language. – Difference ??
However, formally both are equivalent to one
another.
A language that produces a relation that can be
derived using relational calculus is relationally
complete.
What & How
5
Relational Algebra
This Algebra is composed of Unary operations
(involving a single table) and Binary operations
(involving multiple tables).
Five basic operations in relational algebra:
Selection, Projection, Cartesian product,
Union, and Set Difference.
These perform most of the data retrieval
operations needed.
Also have Join, Intersection, and Division
operations, which can be expressed in terms of
5 basic operations.
6
Relational Algebra Operations
7
Relational Algebra Operations
8
Selection (or Restriction)
σpredicate (R)
– Works on a single relation R and defines a relation that
contains only those tuples (rows) of R that satisfy the
specified condition (predicate).
– Unary Operation
σ <condition> < tablename >
Conditions in Selection:
Simple Condition: (attribute)(comparison)(attribute)
(attribute)(comparison)(constant)
Comparison: =,≠,≤,≥,<,>
Select Operator Example
Name Age Weight
Harry 34 80
Sally 28 64
George 29 70
Helena 54 54
Peter 34 80
Name Age Weight
Harry 34 80
Helena 54 54
Peter 34 80
Person бAge≥34(Person)
Name Age Weight
Helena 54 54
бAge=Weight(Person)
10
Example - Selection (or Restriction)
List all staff with a salary greater than £10,000.
σsalary >10000 (Staff)
11
Projection
Πcol1, .. . ,coln(R)
– Works on a single relation R and defines a
relation that contains a vertical subset of R,
extracting the values of specified attributes and
eliminating duplicates.
π <columnlist > < tablename >
e.g., name of employees:
∏ name(Employee)
e.g., name of employees earning more than 80,000:
∏ name(бSalary>80,000(Employee))
Project Operator Example
Name Age Salary
Harry 34 80,000
Sally 28 90,000
George 29 70,000
Helena 54 54,280
Peter 34 40,000
Name
Harry
Sally
George
Helena
Peter
Employee
∏ name(Employee)
Project Operator Example
Name Age Salary
Harry 34 80,000
Sally 28 90,000
George 29 70,000
Helena 54 54,280
Peter 34 40,000
Name
Sally
Employee бSalary>80,000(Employee)
Name Age Salary
Sally 28 90,000
∏ name(бSalary>80,000(Employee))
14
Example - Projection
Produce a list of salaries for all staff, showing only
staffNo, fName, lName, and salary details.
ΠstaffNo, fName,lName, salary(Staff)
Union, Intersection, Set-Difference
All of these operations take two input relations, which
must be union-compatible:
– Same number of fields.
– `Corresponding’ fields have the same type.
15
16
Union
R ∪ S
– Union of two relations R and S defines a relation
that contains all the tuples of R, or S, or both R
and S, duplicate tuples being eliminated.
– R and S must be union-compatible.
If R and S have I and J tuples, respectively, union
is obtained by concatenating them into one relation
with a maximum of (I + J) tuples.
Union Operator Example
FN LN
Susan Yao
Ramesh Shah
Barbara Jones
Amy Ford
Jimmy Wang
FN LN
John Smith
Ricardo Brown
Susan Yao
Francis Johnson
Ramesh Shah
Student Professor
FN LN
Susan Yao
Ramesh Shah
Barbara Jones
Amy Ford
Jimmy Wang
John Smith
Ricardo Brown
Francis Johnson
Student U Professor
18
Example - Union
List all cities where there is either a branch office
or a property for rent.
Πcity(Branch) ∪ Πcity(PropertyForRent)
19
Set Difference
R – S
– Defines a relation consisting of the tuples that
are in relation R, but not in S.
– R and S must be union-compatible.
Set Difference Operator Example
FN LN
Susan Yao
Ramesh Shah
Barbara Jones
Amy Ford
Jimmy Wang
FN LN
John Smith
Ricardo Brown
Susan Yao
Francis Johnson
Ramesh Shah
Student
Professor
FN LN
Barbara Jones
Amy Ford
Jimmy Wang
Student - Professor
FN LN
John Smith
Ricardo Brown
Francis Johnson
Professor - Student
21
Example - Set Difference
List all cities where there is a branch office but no
properties for rent.
Πcity(Branch) – Πcity(PropertyForRent)
22
Intersection
R ∩ S
– Defines a relation consisting of the set of all
tuples that are in both R and S.
– R and S must be union-compatible.
Expressed using basic operations:
R ∩ S = R – (R – S)
Intersection Operator Example
FN LN
Susan Yao
Ramesh Shah
Barbara Jones
Amy Ford
Jimmy Wang
FN LN
John Smith
Ricardo Brown
Susan Yao
Francis Johnson
Ramesh Shah
Student Professor
FN LN
Susan Yao
Ramesh Shah
Student ∩ Professor
24
Example - Intersection
List all cities where there is both a branch office
and at least one property for rent.
Πcity(Branch) ∩ Πcity(PropertyForRent)
25
Cartesian product
R X S
– Defines a relation that is the concatenation of
every tuple of relation R with every tuple of
relation S.
26
Example - Cartesian product
List the names and comments of all clients who have
viewed a property for rent.
(ΠclientNo,fName,lName(Client)) X (ΠclientNo,propertyNo,comment(Viewing))
27
Example - Cartesian product and Selection
Use selection operation to extract those tuples where
Client.clientNo = Viewing.clientNo.
σClient.clientNo=Viewing.clientNo((∏clientNo,fName, lName(Client)) Χ (∏clientNo, propertyNo,
comment(Viewing)))
Cartesian product and Selection can be reduced to a single
operation called a Join.
28
Join Operations
Join is a derivative of Cartesian product.
Equivalent to performing a Selection, using join
predicate as selection formula, over Cartesian
product of the two operand relations.
One of the most difficult operations to implement
efficiently in an RDBMS and one reason why
RDBMSs have intrinsic performance problems.
29
Join Operations
Various forms of join operation
– Theta join
– Equijoin (a particular type of Theta join)
– Natural join
– Outer join
– Semijoin
30
Theta join (θ-join)
R FS
– Defines a relation that contains tuples
satisfying the predicate F from the Cartesian
product of R and S.
– The predicate F is of the form R.ai θ S.bi
where θ may be one of the comparison
operators (<, ≤, >, ≥, =, ≠).
31
Theta join (θ-join)
Can rewrite Theta join using basic Selection and
Cartesian product operations.
R FS = σF(R Χ S)
Degree of a Theta join is sum of degrees of the
operand relations R and S. If predicate F contains
only equality (=), the term Equijoin is used.
32
Example - Equijoin
List the names and comments of all clients who
have viewed a property for rent.
(ΠclientNo,fName, lName(Client)) Client.clientNo=Viewing.clientNo (ΠclientNo, propertyNo,
comment(Viewing))
33
Natural join
R S
– An Equijoin of the two relations R and S over all
common attributes x. One occurrence of each
common attribute is eliminated from the result.
34
Example - Natural join
List the names and comments of all clients who
have viewed a property for rent.
(ΠclientNo, fName,lName(Client))
(ΠclientNo,propertyNo, comment(Viewing))
35
Outer join
To display rows in the result that do not have
matching values in the join column, use Outer
join.
R S
– (Left) outer join is join in which tuples from
R that do not have matching values in
common columns of S are also included in
result relation.
36
Example - Left Outer join
Produce a status report on property viewings.
ΠpropertyNo, street, city(PropertyForRent)
Viewing
37
Semijoin
R FS
– Defines a relation that contains the tuples of R that
participate in the join of R with S.
– It performs a join on two relations and then project
Over the attributes of first operand.
Can rewrite Semijoin using Projection and Join:
R F S = ΠA(R F S)
38
Example - Semijoin
List complete details of all staff who work at the
branch in Glasgow.
Staff Staff.branchNo=Branch.branchNo(σcity=‘Glasgow’(Branch))
39
Division
R ÷ S
– Defines a relation over the attributes C that consists of
set of tuples from R that match combination of every
tuple in S.
Expressed using basic operations:
T1 ← ΠC(R)
T2 ← ΠC((S X T1) – R)
T ← T1 – T2
40
Example - Division
Identify all clients who have viewed all properties
with three rooms.
(ΠclientNo,propertyNo(Viewing)) ÷
(ΠpropertyNo(σrooms=3 (PropertyForRent)))
Relational DBMS
The following tables form part of a database held in a
relational DBMS:
Hotel (hotelNo, hotelName, city)
Room (roomNo, hotelNo, type, price)
Booking (hotelNo, guestNo, dateFrom, dateTo,
roomNo)
Guest (guestNo, guestName, guestAddress)
41
Exercise – Determine temporary relations
42
Exercise – Gererate Relational algebra
List all hotels.
List all single rooms with a price below £20 per night.
List the names and cities of all guests.
List the price and type of all rooms at the Grosvenor
Hotel.
List all guests currently staying at the Grosvenor Hotel.
List the details of all rooms at the Grosvenor Hotel,
including the name of the guest staying in the room, if
the room is occupied.
List the guest details (guestNo, guestName, and
guestAddress) of all guests staying at the Grosvenor
43
SQL
Structured Query Language (SQL)
– Standardised by ANSI
– Supported by modern RDBMSs
Commands fall into three groups
– Data Definition Language (DLL)
» Create tables, etc
– Data Manipulation Language (DML)
» Retrieve and modify data
– Data Control Language
» Control what users can do – grant and revoke privileges
44

More Related Content

PDF
Relational Algebra & Calculus
PPT
Relational algebra in dbms
PPTX
Distribution transparency and Distributed transaction
PPTX
Relational model
PPTX
The Relational Database Model
PPT
Elmasri Navathe DBMS Unit-1 ppt
PPTX
ER MODEL
PPTX
Architectural modeling chapter 5 of omd
Relational Algebra & Calculus
Relational algebra in dbms
Distribution transparency and Distributed transaction
Relational model
The Relational Database Model
Elmasri Navathe DBMS Unit-1 ppt
ER MODEL
Architectural modeling chapter 5 of omd

What's hot (20)

ODP
ER Model in DBMS
PPTX
Linked list
PPT
Advanced sql
PPTX
Logical database design and the relational model(database)
PPTX
ER model to Relational model mapping
PDF
Dbms 14: Relational Calculus
PPT
Database Chapter 3
PPTX
Relational Data Model Introduction
PPTX
Structure of dbms
PPTX
DATABASE CONSTRAINTS
PPTX
Chapter-7 Relational Calculus
PDF
Advanced data structures vol. 1
PPTX
04 Classification in Data Mining
PPTX
Object oriented database concepts
PPT
Data Structure and Algorithms
PDF
Data structure
PPT
Database Keys
PPT
Data Structure and Algorithms Hashing
PPTX
Data abstraction in DBMS
PPTX
Types of attributes (160210107054)
ER Model in DBMS
Linked list
Advanced sql
Logical database design and the relational model(database)
ER model to Relational model mapping
Dbms 14: Relational Calculus
Database Chapter 3
Relational Data Model Introduction
Structure of dbms
DATABASE CONSTRAINTS
Chapter-7 Relational Calculus
Advanced data structures vol. 1
04 Classification in Data Mining
Object oriented database concepts
Data Structure and Algorithms
Data structure
Database Keys
Data Structure and Algorithms Hashing
Data abstraction in DBMS
Types of attributes (160210107054)
Ad

Viewers also liked (20)

PPT
Relational Algebra-Database Systems
PPT
Presentation on dbms(relational calculus)
PPTX
Relational algebra calculus
PPT
Relational Algebra
PPT
Lecture 06 relational algebra and calculus
PPT
Relational algebra
PDF
Introduction to Relational Algebra
DOCX
DBMS FOR STUDENTS MUST DOWNLOAD AND READ
PDF
Database Lecture Notes
PDF
5 the relational algebra and calculus
PDF
Database Systems - Relational Data Model (Chapter 2)
PPTX
Stream classes in C++
PPTX
PPTX
Cursors, triggers, procedures
PPT
TRIGGERS
PDF
C++ Files and Streams
PDF
Sql ch 13 - sql-views
PPT
Dbms ii mca-ch11-recovery-2013
PPT
Orag. of lab services
PDF
Database recovery techniques
Relational Algebra-Database Systems
Presentation on dbms(relational calculus)
Relational algebra calculus
Relational Algebra
Lecture 06 relational algebra and calculus
Relational algebra
Introduction to Relational Algebra
DBMS FOR STUDENTS MUST DOWNLOAD AND READ
Database Lecture Notes
5 the relational algebra and calculus
Database Systems - Relational Data Model (Chapter 2)
Stream classes in C++
Cursors, triggers, procedures
TRIGGERS
C++ Files and Streams
Sql ch 13 - sql-views
Dbms ii mca-ch11-recovery-2013
Orag. of lab services
Database recovery techniques
Ad

Similar to Relational algebra-and-relational-calculus (20)

PPTX
lecture 4 Relational Algebra my sql work
DOCX
Relational Algebra Ch6 (Navathe 4th edition)/ Ch7 (Navathe 3rd edition)
PPTX
Relational algebra dbms (2130703) - 160920107003
PPT
Module 2-2.ppt
PDF
DBMS Module 2.2.pdf......................
PPTX
Relational Algebra.pptx for Module four
PPT
relalgebraasssssssssssssssssssssssss.ppt
PPT
relational algebra
PDF
Cs501 rel algebra
PPT
Relational algebra operations
PPTX
Dbms relational model
PPT
PPT
relational model in Database Management.ppt.ppt
PPT
Relational-algebra in Data base management ppts
PPTX
3._Relational_Algebra.pptx:Basics of relation algebra
PPT
Dbms ii mca-ch5-ch6-relational algebra-2013
PDF
Unit-II DBMS presentation for students.pdf
PPTX
Query and optimizing operating system.pptx
PPT
3. Relational Models in DBMS
lecture 4 Relational Algebra my sql work
Relational Algebra Ch6 (Navathe 4th edition)/ Ch7 (Navathe 3rd edition)
Relational algebra dbms (2130703) - 160920107003
Module 2-2.ppt
DBMS Module 2.2.pdf......................
Relational Algebra.pptx for Module four
relalgebraasssssssssssssssssssssssss.ppt
relational algebra
Cs501 rel algebra
Relational algebra operations
Dbms relational model
relational model in Database Management.ppt.ppt
Relational-algebra in Data base management ppts
3._Relational_Algebra.pptx:Basics of relation algebra
Dbms ii mca-ch5-ch6-relational algebra-2013
Unit-II DBMS presentation for students.pdf
Query and optimizing operating system.pptx
3. Relational Models in DBMS

More from Salman Vadsarya (7)

PPT
Mobile communications
PDF
Expression trees
PPTX
Sorting Technique
PPT
The job application process interview
PDF
Er modeling guide
PPT
Arificail Intelligence and robotics
PPTX
History of computer
Mobile communications
Expression trees
Sorting Technique
The job application process interview
Er modeling guide
Arificail Intelligence and robotics
History of computer

Recently uploaded (20)

PPTX
Introduction to pro and eukaryotes and differences.pptx
PDF
احياء السادس العلمي - الفصل الثالث (التكاثر) منهج متميزين/كلية بغداد/موهوبين
PPTX
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
PDF
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
PPTX
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
PPTX
History, Philosophy and sociology of education (1).pptx
PDF
Trump Administration's workforce development strategy
PDF
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
PDF
Empowerment Technology for Senior High School Guide
PDF
FORM 1 BIOLOGY MIND MAPS and their schemes
PPTX
20th Century Theater, Methods, History.pptx
PDF
International_Financial_Reporting_Standa.pdf
PDF
AI-driven educational solutions for real-life interventions in the Philippine...
PPTX
A powerpoint presentation on the Revised K-10 Science Shaping Paper
PDF
My India Quiz Book_20210205121199924.pdf
PDF
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
PPTX
TNA_Presentation-1-Final(SAVE)) (1).pptx
PDF
Weekly quiz Compilation Jan -July 25.pdf
PPTX
Share_Module_2_Power_conflict_and_negotiation.pptx
PDF
LDMMIA Reiki Yoga Finals Review Spring Summer
Introduction to pro and eukaryotes and differences.pptx
احياء السادس العلمي - الفصل الثالث (التكاثر) منهج متميزين/كلية بغداد/موهوبين
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
History, Philosophy and sociology of education (1).pptx
Trump Administration's workforce development strategy
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
Empowerment Technology for Senior High School Guide
FORM 1 BIOLOGY MIND MAPS and their schemes
20th Century Theater, Methods, History.pptx
International_Financial_Reporting_Standa.pdf
AI-driven educational solutions for real-life interventions in the Philippine...
A powerpoint presentation on the Revised K-10 Science Shaping Paper
My India Quiz Book_20210205121199924.pdf
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
TNA_Presentation-1-Final(SAVE)) (1).pptx
Weekly quiz Compilation Jan -July 25.pdf
Share_Module_2_Power_conflict_and_negotiation.pptx
LDMMIA Reiki Yoga Finals Review Spring Summer

Relational algebra-and-relational-calculus

  • 1. Chapter 4 Relational Algebra and Relational Calculus Transparencies
  • 2. Relational Algebra Relational algebra and relational calculus are formal languages associated with the relational model. The Relational Algebra is used to define the ways in which relations (tables) can be operated to manipulate their data. It is used as the basis of SQL for relational databases, and illustrates the basic operations required of any DML. 2
  • 3. 3 Relational Algebra Relational algebra operations work on one or more relations to define another relation without changing the original relations. Both operands and results are relations, so output from one operation can become input to another operation. Allows expressions to be nested, just as in arithmetic. This property is called closure.
  • 4. 4 Relational algebra VS Relational Calculus Informally, relational algebra is a (high-level) procedural language and relational calculus a non-procedural language. – Difference ?? However, formally both are equivalent to one another. A language that produces a relation that can be derived using relational calculus is relationally complete. What & How
  • 5. 5 Relational Algebra This Algebra is composed of Unary operations (involving a single table) and Binary operations (involving multiple tables). Five basic operations in relational algebra: Selection, Projection, Cartesian product, Union, and Set Difference. These perform most of the data retrieval operations needed. Also have Join, Intersection, and Division operations, which can be expressed in terms of 5 basic operations.
  • 8. 8 Selection (or Restriction) σpredicate (R) – Works on a single relation R and defines a relation that contains only those tuples (rows) of R that satisfy the specified condition (predicate). – Unary Operation σ <condition> < tablename > Conditions in Selection: Simple Condition: (attribute)(comparison)(attribute) (attribute)(comparison)(constant) Comparison: =,≠,≤,≥,<,>
  • 9. Select Operator Example Name Age Weight Harry 34 80 Sally 28 64 George 29 70 Helena 54 54 Peter 34 80 Name Age Weight Harry 34 80 Helena 54 54 Peter 34 80 Person бAge≥34(Person) Name Age Weight Helena 54 54 бAge=Weight(Person)
  • 10. 10 Example - Selection (or Restriction) List all staff with a salary greater than £10,000. σsalary >10000 (Staff)
  • 11. 11 Projection Πcol1, .. . ,coln(R) – Works on a single relation R and defines a relation that contains a vertical subset of R, extracting the values of specified attributes and eliminating duplicates. π <columnlist > < tablename > e.g., name of employees: ∏ name(Employee) e.g., name of employees earning more than 80,000: ∏ name(бSalary>80,000(Employee))
  • 12. Project Operator Example Name Age Salary Harry 34 80,000 Sally 28 90,000 George 29 70,000 Helena 54 54,280 Peter 34 40,000 Name Harry Sally George Helena Peter Employee ∏ name(Employee)
  • 13. Project Operator Example Name Age Salary Harry 34 80,000 Sally 28 90,000 George 29 70,000 Helena 54 54,280 Peter 34 40,000 Name Sally Employee бSalary>80,000(Employee) Name Age Salary Sally 28 90,000 ∏ name(бSalary>80,000(Employee))
  • 14. 14 Example - Projection Produce a list of salaries for all staff, showing only staffNo, fName, lName, and salary details. ΠstaffNo, fName,lName, salary(Staff)
  • 15. Union, Intersection, Set-Difference All of these operations take two input relations, which must be union-compatible: – Same number of fields. – `Corresponding’ fields have the same type. 15
  • 16. 16 Union R ∪ S – Union of two relations R and S defines a relation that contains all the tuples of R, or S, or both R and S, duplicate tuples being eliminated. – R and S must be union-compatible. If R and S have I and J tuples, respectively, union is obtained by concatenating them into one relation with a maximum of (I + J) tuples.
  • 17. Union Operator Example FN LN Susan Yao Ramesh Shah Barbara Jones Amy Ford Jimmy Wang FN LN John Smith Ricardo Brown Susan Yao Francis Johnson Ramesh Shah Student Professor FN LN Susan Yao Ramesh Shah Barbara Jones Amy Ford Jimmy Wang John Smith Ricardo Brown Francis Johnson Student U Professor
  • 18. 18 Example - Union List all cities where there is either a branch office or a property for rent. Πcity(Branch) ∪ Πcity(PropertyForRent)
  • 19. 19 Set Difference R – S – Defines a relation consisting of the tuples that are in relation R, but not in S. – R and S must be union-compatible.
  • 20. Set Difference Operator Example FN LN Susan Yao Ramesh Shah Barbara Jones Amy Ford Jimmy Wang FN LN John Smith Ricardo Brown Susan Yao Francis Johnson Ramesh Shah Student Professor FN LN Barbara Jones Amy Ford Jimmy Wang Student - Professor FN LN John Smith Ricardo Brown Francis Johnson Professor - Student
  • 21. 21 Example - Set Difference List all cities where there is a branch office but no properties for rent. Πcity(Branch) – Πcity(PropertyForRent)
  • 22. 22 Intersection R ∩ S – Defines a relation consisting of the set of all tuples that are in both R and S. – R and S must be union-compatible. Expressed using basic operations: R ∩ S = R – (R – S)
  • 23. Intersection Operator Example FN LN Susan Yao Ramesh Shah Barbara Jones Amy Ford Jimmy Wang FN LN John Smith Ricardo Brown Susan Yao Francis Johnson Ramesh Shah Student Professor FN LN Susan Yao Ramesh Shah Student ∩ Professor
  • 24. 24 Example - Intersection List all cities where there is both a branch office and at least one property for rent. Πcity(Branch) ∩ Πcity(PropertyForRent)
  • 25. 25 Cartesian product R X S – Defines a relation that is the concatenation of every tuple of relation R with every tuple of relation S.
  • 26. 26 Example - Cartesian product List the names and comments of all clients who have viewed a property for rent. (ΠclientNo,fName,lName(Client)) X (ΠclientNo,propertyNo,comment(Viewing))
  • 27. 27 Example - Cartesian product and Selection Use selection operation to extract those tuples where Client.clientNo = Viewing.clientNo. σClient.clientNo=Viewing.clientNo((∏clientNo,fName, lName(Client)) Χ (∏clientNo, propertyNo, comment(Viewing))) Cartesian product and Selection can be reduced to a single operation called a Join.
  • 28. 28 Join Operations Join is a derivative of Cartesian product. Equivalent to performing a Selection, using join predicate as selection formula, over Cartesian product of the two operand relations. One of the most difficult operations to implement efficiently in an RDBMS and one reason why RDBMSs have intrinsic performance problems.
  • 29. 29 Join Operations Various forms of join operation – Theta join – Equijoin (a particular type of Theta join) – Natural join – Outer join – Semijoin
  • 30. 30 Theta join (θ-join) R FS – Defines a relation that contains tuples satisfying the predicate F from the Cartesian product of R and S. – The predicate F is of the form R.ai θ S.bi where θ may be one of the comparison operators (<, ≤, >, ≥, =, ≠).
  • 31. 31 Theta join (θ-join) Can rewrite Theta join using basic Selection and Cartesian product operations. R FS = σF(R Χ S) Degree of a Theta join is sum of degrees of the operand relations R and S. If predicate F contains only equality (=), the term Equijoin is used.
  • 32. 32 Example - Equijoin List the names and comments of all clients who have viewed a property for rent. (ΠclientNo,fName, lName(Client)) Client.clientNo=Viewing.clientNo (ΠclientNo, propertyNo, comment(Viewing))
  • 33. 33 Natural join R S – An Equijoin of the two relations R and S over all common attributes x. One occurrence of each common attribute is eliminated from the result.
  • 34. 34 Example - Natural join List the names and comments of all clients who have viewed a property for rent. (ΠclientNo, fName,lName(Client)) (ΠclientNo,propertyNo, comment(Viewing))
  • 35. 35 Outer join To display rows in the result that do not have matching values in the join column, use Outer join. R S – (Left) outer join is join in which tuples from R that do not have matching values in common columns of S are also included in result relation.
  • 36. 36 Example - Left Outer join Produce a status report on property viewings. ΠpropertyNo, street, city(PropertyForRent) Viewing
  • 37. 37 Semijoin R FS – Defines a relation that contains the tuples of R that participate in the join of R with S. – It performs a join on two relations and then project Over the attributes of first operand. Can rewrite Semijoin using Projection and Join: R F S = ΠA(R F S)
  • 38. 38 Example - Semijoin List complete details of all staff who work at the branch in Glasgow. Staff Staff.branchNo=Branch.branchNo(σcity=‘Glasgow’(Branch))
  • 39. 39 Division R ÷ S – Defines a relation over the attributes C that consists of set of tuples from R that match combination of every tuple in S. Expressed using basic operations: T1 ← ΠC(R) T2 ← ΠC((S X T1) – R) T ← T1 – T2
  • 40. 40 Example - Division Identify all clients who have viewed all properties with three rooms. (ΠclientNo,propertyNo(Viewing)) ÷ (ΠpropertyNo(σrooms=3 (PropertyForRent)))
  • 41. Relational DBMS The following tables form part of a database held in a relational DBMS: Hotel (hotelNo, hotelName, city) Room (roomNo, hotelNo, type, price) Booking (hotelNo, guestNo, dateFrom, dateTo, roomNo) Guest (guestNo, guestName, guestAddress) 41
  • 42. Exercise – Determine temporary relations 42
  • 43. Exercise – Gererate Relational algebra List all hotels. List all single rooms with a price below £20 per night. List the names and cities of all guests. List the price and type of all rooms at the Grosvenor Hotel. List all guests currently staying at the Grosvenor Hotel. List the details of all rooms at the Grosvenor Hotel, including the name of the guest staying in the room, if the room is occupied. List the guest details (guestNo, guestName, and guestAddress) of all guests staying at the Grosvenor 43
  • 44. SQL Structured Query Language (SQL) – Standardised by ANSI – Supported by modern RDBMSs Commands fall into three groups – Data Definition Language (DLL) » Create tables, etc – Data Manipulation Language (DML) » Retrieve and modify data – Data Control Language » Control what users can do – grant and revoke privileges 44