Professional Documents
Culture Documents
06 Additional Relational Operation - Relational Algebra and Calculus
06 Additional Relational Operation - Relational Algebra and Calculus
Database Systems
1
ER Diagram of Company Database
2
3
4
5
Relational Algebra and Relational Calculus
Previous lecture on relational model presented the structures and
constraints for the relational model
Relational Algebra
Formal foundation for relational model operations
Basis for implementing and optimizing queries in RDBMS
Basis for practical query languages such as SQL
Relational Calculus
Formal declarative language for relational queries
6
Outline
Relational Algebra
Unary Relational Operations
Relational Algebra Operations From Set Theory
Binary Relational Operations
Additional Relational Operations
Relational Calculus
Tuple Relational Calculus
Domain Relational Calculus
Coming up
SQL
7
Relational Algebra
Relational algebra is a mathematical language with a basic
set of operations for manipulating relations.
A relational algebra operation operates on one or more
relations and results a new relation, which can be further
manipulated using operations of the same algebra.
A relational algebra expression is a sequence of relational
algebra operations.
8
Relational Algebra Operations
9
Unary Relational Operations - Select
SELECT Operation: select a subset of the tuples from a relation that satisfy a
selection condition.
Example: To select the EMPLOYEE tuples whose department number is four or
those whose salary is greater than $30,000 the following notation is used:
σDNO = 4 (EMPLOYEE)
σSALARY > 30,000 (EMPLOYEE)
Notation: σ <selection condition>(R)
Selection condition is a Boolean expression containing clauses in the form:
<attribute name> <comparison op> <constant value>
<attribute name> <comparison op> <attribute name>
10
SELECT Operation Properties
The SELECT operation σ <selection condition>(R) produces a relation S that has the
same schema as R
11
Unary Relational Operations - Project
PROJECT Operation: selects certain columns from the table and discards the
other columns.
Example: To list each employee’s first and last name and salary
π LNAME, FNAME,SALARY (EMPLOYEE)
Notation: π<attribute list>(R)
Duplicate Elimination: the project operation removes any duplicate tuples, so the
result of the project operation is a set of tuples
12
PROJECT Operation Properties
The number of tuples in π <list> (R) is always less or equal to
the number of tuples in R
If the list of attributes includes a key of R, then the number
of tuples is equal to the number of tuples in R
π <list1> (π <list2> (R) ) = π <list1> (R) as long as <list2> contains
the attributes in <list1>
13
Sequences of Operations and the
RENAME Operation
In-line expression:
Sequence of operations:
Examples
ρ DEPT5_EMPS (σDNO = 5 (EMPLOYEE))
16
Relational Algebra Operations From
Set Theory
UNION Operation: denoted by R ∪ S, is a relation that includes all tuples
that are either in R or in S or in both R and S.
Duplicate tuples are eliminated.
INTERSECTION operation: denoted by R ∩ S, is a relation that includes
all tuples that are in both R and S.
Set Difference (or MINUS) Operation: denoted by R - S, is a relation
that includes all tuples that are in R but not in S.
Type Compatibility: The two operands must be “type compatible”.
The operands R(A1, A2, ..., An) and S(B1, B2, ..., Bn) must have
the same number of attributes, and the domains of corresponding
attributes must be compatible; that is, dom(Ai)=dom(Bi) for i=1,
2, ..., n.
The resulting relation for R∪S, R ∩ S, or R-S has the same
attribute names as R (by convention).
17
Relational Algebra Operations From
Set Theory - Properties
Notice that both union and intersection are commutative operations; that is
R ∪ S = S ∪ R, and R ∩ S = S ∩ R
18
Relational Algebra Operations From Set
Theory – Cartesian Product
21
FEMALE_EMPS ← σ SEX=’F’(EMPLOYEE)
EMPNAMES ← π FNAME, LNAME, SSN (FEMALE_EMPS)
EMP_DEPENDENTS ← EMPNAMES x DEPENDENT
Binary Relational Operations - Join
JOIN Operation: the sequence of cartesian product followed by
select
Notation: R <join condition>S
where R and S can be any relations that result from general relational algebra
expressions.
24
ACTUAL_DEPENDENTS ← EMPNAMES SSN=ESSN
DEPENDENTS
Retrieve the department and the manager’s information:
28
Proj_Dept <- Project * Department
Dept_Locs <- Department * Dept_Locations
29
Additional Relational Operations –
Outer Join
In NATURAL JOIN tuples without a matching (or related) tuple are
eliminated from the join result. Tuples with null in the join attributes are
also eliminated.
Outer joins can be used when we want to keep all the tuples in R or S,
regardless of whether or not they have matching tuples in the other relation.
The left outer join operation keeps every tuple in the first or left relation R
in R S; if no matching tuple is found in S, then the attributes of S in
the join result are filled or “padded” with null values.
The right outer join, keeps every tuple in the second or right relation S in the
result of R S.
A third operation, full outer join, denoted by keeps all tuples in
both the left and the right relations
31
Outer Join Example
EMPLOYEE left outer join (SSN=Mgr_SSN) DEPARTMENT
32
Binary Relational Operations - Division
33