0% found this document useful (0 votes)
35 views

Chapter 6 Relational Query Languages

This document discusses relational query languages and relational algebra operations. It covers the key concepts of relational completeness, relational algebra, relational calculus, and relational data manipulation languages. The core relational algebra operations of selection, projection, join, union, difference, intersection, and cartesian product are defined and examples are provided. Outer joins and semijoins are also introduced.

Uploaded by

beshahashenafe20
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

Chapter 6 Relational Query Languages

This document discusses relational query languages and relational algebra operations. It covers the key concepts of relational completeness, relational algebra, relational calculus, and relational data manipulation languages. The core relational algebra operations of selection, projection, join, union, difference, intersection, and cartesian product are defined and examples are provided. Outer joins and semijoins are also introduced.

Uploaded by

beshahashenafe20
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 59

Chapter Six

Relational Query
Languages
Chapter Six - Objectives
Meaning of the term relational completeness and
relational Languages.
How to form queries in relational algebra.

How to form queries in tuple relational calculus.

How to form queries in domain relational calculus.

Categories of relational DML.

2
Fundamentals of Database Systems (INSY2031) cha
pter 6
Introduction
Relational algebra and relational calculus are
formal languages associated with the relational
model.
Informally, relational algebra is a procedural
language and relational calculus a non-
procedural language(high-level) . (procedural?
Non-procedural?)
However, formally both are equivalent to one
another.
A language that produces a relation that can be
derived using relational calculus is relationally
complete.
3
Fundamentals of Database Systems (INSY2031) cha
pter 6
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
Fundamentals of Database Systems (INSY2031) cha
pter 6
Relational Algebra
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 the
5 basic operations.

5
Fundamentals of Database Systems (INSY2031) cha
pter 6
Relational Algebra Operations

6
Fundamentals of Database Systems (INSY2031) cha
pter 6
Relational Algebra Operations

7
Fundamentals of Database Systems (INSY2031) cha
pter 6
Consider these relations

8
Fundamentals of Database Systems (INSY2031) cha
pter 6
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).
 T1  predicate (R) =>renaming opertion

9
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Selection (or
Restriction)
List all staff with a salary greater than £10,000.

salary > 10000 (Staff)

10
Fundamentals of Database Systems (INSY2031) cha
pter 6
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.

11
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Projection
Produce a list of salaries for all staff, showing only
staffNo, fName, lName, and salary details.
staffNo, fName, lName, salary(Staff)

12
Fundamentals of Database Systems (INSY2031) cha
pter 6
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.
 i.e. Have equal number and type of attributes

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.

13
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Union
List all cities where there is either a branch office or a
property for rent.
city(Branch)  city(PropertyForRent)

14
Fundamentals of Database Systems (INSY2031) cha
pter 6
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.

15
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Set Difference
List all cities where there is a branch office but no
properties for rent.
city(Branch) – city(PropertyForRent)

16
Fundamentals of Database Systems (INSY2031) cha
pter 6
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)

17
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Intersection
List all cities where there is both a branch office and at
least one property for rent.
city(Branch)  city(PropertyForRent)

18
Fundamentals of Database Systems (INSY2031) cha
pter 6
Cartesian product
R X S
Defines a relation that is the concatenation of every tuple
of relation R with every tuple of relation S.

19
Fundamentals of Database Systems (INSY2031) cha
pter 6
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))

20
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Cartesian product and
Selection
 Use selection operation to extract those tuples where
Client.clientNo = Viewing.clientNo.
sClient.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.

21
Fundamentals of Database Systems (INSY2031) cha
pter 6
Join Operations
Join is a derivative of Cartesian product and Selection.

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.

22
Fundamentals of Database Systems (INSY2031) cha
pter 6
Join Operations
Various forms of join operation
Theta join
Equijoin (a particular type of Theta join)
Natural join
Outer join
Semijoin

23
Fundamentals of Database Systems (INSY2031) cha
pter 6
Theta join (-join)
R p S
Defines a relation that contains tuples satisfying the
predicate p from the Cartesian product of R and S.
The predicate p is of the form R.ai  S.bi where  may
be one of the comparison operators (<, , >, , =, ),
and ai & bi are attributes of R and S Respectively

24
Fundamentals of Database Systems (INSY2031) cha
pter 6
Theta join (-join)
Can rewrite Theta join using basic Selection and
Cartesian product operations.

R F S = 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.
 The cardinality? ?

25
Fundamentals of Database Systems (INSY2031) cha
pter 6
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))

26
Fundamentals of Database Systems (INSY2031) cha
pter 6
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 final result.

27
Fundamentals of Database Systems (INSY2031) cha
pter 6
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))

28
Fundamentals of Database Systems (INSY2031) cha
pter 6
Outer joins
 To display rows in the result that do not have matching values in the join column
(common Column as in the natural join, use Outer join.

R S Left Outer Join


 (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.
R S Right Outer Join
 Right outer join is join in which tuples from S that do not have matching values
in common columns of R are also included in result relation.
R⟗ S Full Outer
 Full outer join is join in which tuples from both R and S that do not have
matching values in common columns of S and R respectively are also included
in result relation.

29
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Left Outer join
Produce a status report on property viewings.

propertyNo, street, city(PropertyForRent)


Viewing

30
Fundamentals of Database Systems (INSY2031) cha
pter 6
Semijoin
R F S
Defines a relation that contains the tuples of R that
participate in the join of R with S.

 Can rewrite Semi-join using Projection and Join:

R F S = A(R F S)
Where A is the set of attributes of R

31
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Semijoin
List complete details of all staffs who work at the branch
in Glasgow.
Staff Staff.branchNo=Branch.branchNo (city=‘Glasgow’(Branch))

32
Fundamentals of Database Systems (INSY2031) cha
pter 6
Exercise
 Consider these tables
Customer( CustId, custname,City,TelNo)
Guarantor( GId, Gname, City, TelNo)
Loan( LoanId, LoanDate, LoanAmount, DueDate, CustId, Gid)
#Write the Tuple Relational Calculus Expression to answer
the Following Queries
1.List all Cities where there is either a customer or a guarantor.
2. List all Customers who have taken a loan amount of more
than 50,000
3. Produce a list with guarantor name, customer name and
LoanAmount information for those loans the amount of which
is more than 1,000,000.
4. List all Guarantors with their Name and Telephone Numbers
33
Fundamentals of Database Systems (INSY2031) cha
pter 6
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

34
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Division
Identify all clients who have viewed all( Combination of
all property for rents) properties with three rooms.

(clientNo, propertyNo(Viewing)) 
(propertyNo(rooms = 3 (PropertyForRent)))

35
Fundamentals of Database Systems (INSY2031) cha
pter 6
Aggregate Operations
AL(R)
Applies aggregate function list, AL, to R to define a
relation over the aggregate list.
AL contains one or more (<aggregate_function>,
<attribute>) pairs .
Main aggregate functions are: COUNT, SUM, AVG,
MIN, and MAX.
Two types of aggregates
Scalar- no grouping
Vector- has grouping

36
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example – Aggregate Operations
 How many properties cost more than £350 per month to
rent?

R(myCount) COUNT propertyNo (σrent > 350


(PropertyForRent))

37
Grouping Operation
 AL(R)
GA
Groups tuples of R by grouping attributes, GA, and then
applies aggregate function list, AL, to define a new
relation.
AL contains one or more (<aggregate_function>,
<attribute>) pairs.
Resulting relation contains the grouping attributes, GA,
along with results of each of the aggregate functions.

38
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example – Grouping Operation
 Find the number of staff working in each branch and
the sum of their salaries.

R(branchNo, myCount, mySum)


branchNo  COUNT staffNo, SUM salary (Staff)

39
Relational Calculus
Relational calculus query specifies what is to be
retrieved rather than how to retrieve it.
No description of how to evaluate a query.

In first-order logic (or predicate calculus), predicate is


a truth-valued function with arguments.
When we substitute values for the arguments, function
yields an expression, called a proposition, which can be
either true or false.

40
Fundamentals of Database Systems (INSY2031) cha
pter 6
Relational Calculus
If predicate contains a variable (e.g. ‘x is a member of
staff’), there must be a range for x.
When we substitute some values of this range for x,
proposition may be true; for other values, it may be
false.
When applied to databases, relational calculus has
two forms: tuple and domain.

41
Fundamentals of Database Systems (INSY2031) cha
pter 6
Tuple Relational Calculus
Interested in finding tuples for which a predicate is
true. Based on use of tuple variables.
Tuple variable is a variable that ‘ranges over’ a
named relation: i.e., variable whose only permitted
values are tuples of the relation.
Specify range of a tuple variable S as the Staff
relation as:
Staff(S)
To find set of all tuples S such that P(S) is true:
{S | P(S)}

42
Fundamentals of Database Systems (INSY2031) cha
pter 6
Tuple Relational Calculus - Example
To find details of all staff earning more than
£10,000:
{S | Staff(S)  S.salary > 10000}

To find a particular attribute, such as salary, write:

{S.salary | Staff(S)  S.salary > 10000}

43
Fundamentals of Database Systems (INSY2031) cha
pter 6
Tuple Relational Calculus
Can use two quantifiers to tell how many instances the
predicate applies to:
Existential quantifier $ (‘there exists’)
Universal quantifier " (‘for all’)

Tuple variables qualified by " or $ are called bound


variables, otherwise called free variables.

44
Fundamentals of Database Systems (INSY2031) cha
pter 6
Tuple Relational Calculus
Existential quantifier used in formulae that must
be true for at least one instance, such as:
Staff(S) Ù ($B)(Branch(B) Ù
(B.branchNo = S.branchNo) Ù B.city = ‘London’)

Means ‘There exists a Branch tuple with same


branchNo as the branchNo of the current Staff
tuple, S, and is located in London’.

45
Fundamentals of Database Systems (INSY2031) cha
pter 6
Tuple Relational Calculus
Universal quantifier is used in statements about every
instance, such as:
("B) (B.city  ‘Paris’)

Means ‘For all Branch tuples, the address is not in


Paris’.

Can also use ~($B) (B.city = ‘Paris’) which means


‘There are no branches with an address in Paris’.

46
Fundamentals of Database Systems (INSY2031) cha
pter 6
Tuple Relational Calculus
Formulae should be unambiguous and make sense.
A (well-formed) formula is made out of atoms:
R(S ), where S is a tuple variable and R is a relation
i i
S .a q S .a
i 1 j 2
S .aqc
i 1
Can recursively build up formulae from atoms:
An atom is a formula
If F and F are formulae, so are their conjunction, F Ù
1 2 1
F2; disjunction, F1 Ú F2; and negation, ~F1
If F is a formula with free variable X, then ($X)(F) and
("X)(F) are also formulae.
47
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Tuple Relational Calculus
 List the names of all managers who earn more than
£25,000.

{S.fName, S.lName | Staff(S) 


S.position = ‘Manager’  S.salary > 25000}

 List the staff who manage properties for rent in


Glasgow.

{S | Staff(S)  ($P) (PropertyForRent(P)  (P.staffNo =


S.staffNo) Ù P.city = ‘Glasgow’)}

48
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Tuple Relational Calculus
 List the names of staff who currently do not manage
any properties.

{S.fName, S.lName | Staff(S)  (~($P)


(PropertyForRent(P)(S.staffNo = P.staffNo)))}
Or
{S.fName, S.lName | Staff(S)  ((P) (~PropertyForRent(P)
 ~(S.staffNo = P.staffNo)))}

49
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Tuple Relational Calculus
List the names of clients who have viewed a
property for rent in Glasgow.
{C.fName, C.lName | Client(C) Ù (($V)($P)
(Viewing(V) Ù PropertyForRent(P) Ù
(C.clientNo = V.clientNo) Ù
(V.propertyNo=P.propertyNo) Ù
P.city =‘Glasgow’))}

50
Fundamentals of Database Systems (INSY2031) cha
pter 6
Tuple Relational Calculus
Expressions can generate an infinite set.
For example:
{S | ~Staff(S)}

To avoid this, add restriction that all values in result


must be values in the domain of the expression. i.e
Domain /Range must be specified for every tuple
variable. The above doesn’t specify a range.

51
Fundamentals of Database Systems (INSY2031) cha
pter 6
Domain Relational Calculus
Uses variables that take values from
domains( Columns) instead of tuples of relations.

If F(d1, d2, . . . , dn) stands for a formula composed of


atoms and d1, d2, . . . , dn represent domain variables,
then:
{d1, d2, . . . , dn | F(d1, d2, . . . , dn)}
is a general domain relational calculus expression.

52
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Domain Relational Calculus
 Find the names of all managers who earn more than
£25,000.
{fN, lN | ($sN, posn, sex, DOB, sal, bN)
(Staff (sN, fN, lN, posn, sex, DOB, sal, bN) 
posn = ‘Manager’  sal > 25000)}

53
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Domain Relational Calculus
 List the staffs who manage properties for rent in
Glasgow.

{sN, fN, lN, posn, sex, DOB, sal, bN |


($sN1,cty)(Staff(sN,fN,lN,posn,sex,DOB,sal,bN) 
PropertyForRent(pN, st, cty, pc, typ, rms,
rnt, oN, sN1, bN1) Ù
(sN=sN1) Ù cty=‘Glasgow’)}

54
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Domain Relational Calculus
 List the names of staff who currently do not
manage any properties for rent.

{fN, lN | ($sN)
(Staff(sN,fN,lN,posn,sex,DOB,sal,bN) 
(~($sN1) (PropertyForRent(pN, st, cty, pc, typ,
rms, rnt, oN, sN1, bN1) Ù (sN=sN1))))}

55
Fundamentals of Database Systems (INSY2031) cha
pter 6
Example - Domain Relational Calculus
 List the names of clients who have viewed a
property for rent in Glasgow.

{fN, lN | ($cN, cN1, pN, pN1, cty)


(Client(cN, fN, lN,tel, pT, mR) 
Viewing(cN1, pN1, dt, cmt) 
PropertyForRent(pN, st, cty, pc, typ,
rms, rnt,oN, sN, bN) Ù
(cN = cN1) Ù (pN = pN1) Ù cty = ‘Glasgow’)}

56
Fundamentals of Database Systems (INSY2031) cha
pter 6
Domain Relational Calculus
Every relational algebra expression has an
equivalent relational calculus expression, and vice
versa.

57
Fundamentals of Database Systems (INSY2031) cha
pter 6
Other Languages
Transform-oriented languages are non-procedural
languages that use relations to transform input data
into required outputs (e.g. SQL).

Graphical languages provide user with picture of the


structure of the relation. User fills in example of what is
wanted and system returns required data in that
format (e.g. QBE).

58
Fundamentals of Database Systems (INSY2031) cha
pter 6
Other Languages
4GLs can create complete customized application
using limited set of commands in a user-friendly,
often menu-driven environment.

Some systems accept a form of natural language,


sometimes called a 5GL, although this development is
still at an early stage.

59
Fundamentals of Database Systems (INSY2031) cha
pter 6

You might also like