Relational Algebra and Relational Calculus: Lecture Four
Relational Algebra and Relational Calculus: Lecture Four
Relational Algebra and Relational Calculus: Lecture Four
Howtoformqueriesinrelationalalgebra.
CategoriesofrelationalDML.
2
Introduction
Relationalalgebraandrelationalcalculusareformal
languagesassociatedwiththerelationalmodel.
Informally,relationalalgebraisa(highlevel)
procedurallanguageandrelationalcalculusanon
procedurallanguage.
However,formallybothareequivalenttooneanother.
Alanguagethatcanproduceanyrelationthatcanbe
derivedusingrelationalcalculusisrelationally
complete.
3
RelationalAlgebra
Relationalalgebraoperationsworkononeor
morerelationstodefineanotherrelationwithout
changingtheoriginalrelations.
Bothoperandsandresultsarerelations,sooutput
fromoneoperationcanbecomeinputtoanother
operation.
Allowsexpressionstobenested,justasin
arithmetic.Thispropertyiscalledclosure.
4
RelationalAlgebra
5basicoperationsinrelationalalgebra:Selection,
Projection,Cartesianproduct,Union,andSet
Difference.
Theseperformmostofthedataretrieval
operationsneeded.
AlsohaveJoin,Intersection,andDivision
operations,whichcanbeexpressedintermsof5
basicoperations.
5
Relational Algebra Operations
6
Relational Algebra Operations
7
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).
8
Example - Selection (or Restriction)
List all staff with a salary greater than 10,000.
9
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.
10
Example - Projection
Produce a list of salaries for all staff, showing only
staffNo, fName, lName, and salary details.
11
Union
RS
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.
12
Example - Union
List all cities where there is either a branch office
or a property for rent.
city(Branch) city(PropertyForRent)
13
Set Difference
RS
Defines a relation consisting of the tuples that
are in relation R, but not in S.
R and S must be union-compatible.
14
Example - Set Difference
List all cities where there is a branch office but no
properties for rent.
city(Branch) city(PropertyForRent)
15
Intersection
RS
Defines a relation consisting of the set of all
tuples that are in both R and S.
R and S must be union-compatible.
16
Example - Intersection
List all cities where there is both a branch office
and at least one property for rent.
city(Branch) city(PropertyForRent)
17
Cartesian product
RXS
Defines a relation that is the concatenation of
every tuple of relation R with every tuple of
relation S.
18
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))
19
Example - Cartesian Product and Selection
Useselectionoperationtoextractthosetupleswhere
Client.clientNo=Viewing.clientNo.
Client.clientNo=viewing.clientNo(( clientNo,fName,lName(Client))
( clientNo,propertyNo,comment(Viewing)))
21
Join Operations
Various forms of join operation
Theta join
Equijoin (a particular type of Theta join)
Natural join
Outer join
Semijoin
22
Theta join (-join)
R FS
23
Theta join (-join)
Can rewrite Theta join using basic Selection and
Cartesian product operations.
R S = F(R S)
F
24
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))
25
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.
26
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))
27
Outer join
Todisplayrowsintheresultthatdonothave
matchingvaluesinthejoincolumn,useOuter
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.
28
Example - Left Outer join
Produce a status report on property viewings.
propertyNo,street,city(PropertyForRent) Viewing
29
Other Languages
Transform-oriented languages are non-procedural
languages that use relations to transform input
data into required outputs (e.g. SQL).
30
Other Languages
4GLscancreatecompletecustomizedapplication
usinglimitedsetofcommandsinauserfriendly,
oftenmenudrivenenvironment.
Somesystemsacceptaformofnaturallanguage,
sometimescalleda5GL,althoughthis
developmentisstillaanearlystage.
31