database system Chapter04
database system Chapter04
2
Type of languages in DBMS
3
Introduction
Relational algebra and relational calculus are formal
languages associated with the relational model.
Informally, relational algebra is a (high-level)
procedural language and relational calculus a non-
procedural language.
However, formally both are equivalent to one another.
A language that can produce any relation that can be
derived using relational calculus is relationally
complete.
4
Relational Algebra
Relational algebra operations work on one or
more relations to define another relation
without changing the original relations.
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).
9
Example - Selection (or Restriction)
List all staff with a salary greater than £10,000.
10
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
Example - Projection
Produce a list of salaries for all staff, showing only
staffNo, fName, lName, and salary details.
12
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.
13
Example - Union
List all cities where there is either a branch office
or a property for rent.
city(Branch) city(PropertyForRent)
14
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
Example - Set Difference
List all cities where there is a branch office but no
properties for rent.
city(Branch) – city(PropertyForRent)
16
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.
17
Example - Intersection
List all cities where there is both a branch office
and at least one property for rent.
city(Branch) city(PropertyForRent)
18
Cartesian product
RXS
– Defines a relation that is the concatenation of
every tuple of relation R with every tuple of
relation S.
19
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
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)))
22
Join Operations
Various forms of join operation
– Theta join
– Equijoin (a particular type of Theta join)
– Natural join
– Outer join
– Semijoin
23
Theta join (-join)
R FS
24
Theta join (-join)
Can rewrite Theta join using basic Selection and
Cartesian product operations.
R FS = F(R S)
25
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
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.
27
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
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.
29
Example - Left Outer join
Produce a status report on property viewings.
propertyNo,street,city(PropertyForRent) Viewing
30
Other Languages
Transform-oriented languages are non-procedural
languages that use relations to transform input
data into required outputs (e.g. SQL).
31
Other Languages
4GLs can create complete customized application
using limited set of commands in a user-friendly,
often menu-driven environment.
32