Chapter2-Part 2 (New)
Chapter2-Part 2 (New)
Slide 3- 2
Example of a Relation
Slide 3- 3
Definition Summary
Informal Terms Formal Terms
Table Relation
Column Header Attribute
All possible Column Domain
Values
Row Tuple
Slide 3- 5
Relational Algebra Overview
Relational Algebra consists of several groups of operations
Unary Relational Operations
○ SELECT (symbol: (sigma))
○ PROJECT (symbol: (pi))
○ RENAME (symbol: (rho))
Relational Algebra Operations From Set Theory
○ UNION ( ), INTERSECTION ( ), DIFFERENCE (or
MINUS, – )
○ CARTESIAN PRODUCT ( x )
Binary Relational Operations
○ JOIN (several variations of JOIN exist)
○ DIVISION
Additional Relational Operations
○ OUTER JOINS, OUTER UNION
○ AGGREGATE FUNCTIONS (These compute summary of
information: for example, SUM, COUNT, AVG, MIN, MAX)
Slide 3- 6
Unary Relational Operations: SELECT
Slide 3- 7
Unary Relational Operations: SELECT
Slide 3- 8
Unary Relational Operations: SELECT
(contd.)
SELECT Operation Properties
The SELECT operation <selection condition>(R) produces a relation
S that has the same schema (same attributes) as R
SELECT is commutative:
○
<condition1>( < condition2> (R)) = <condition2> ( < condition1> (R))
Because of commutativity property, a cascade (sequence) of
SELECT operations may be applied in any order:
○
<cond1>(<cond2> (<cond3> (R)) = <cond2> (<cond3> (<cond1> ( R)))
A cascade of SELECT operations may be replaced by a
single selection with a conjunction of all the conditions:
○ <cond1>(< cond2> (<cond3>(R)) = <cond1> AND < cond2> AND < cond3>(R)))
The number of tuples in the result of a SELECT is less
than (or equal to) the number of tuples in the input relation
R
Slide 3- 9
The following query results refer to this
database state
Slide 3- 10
Unary Relational Operations: PROJECT
Slide 3- 11
Unary Relational Operations: PROJECT
(cont.)
Slide 3- 12
Unary Relational Operations: PROJECT
(contd.)
PROJECT Operation Properties
The number of tuples in the result of
projection <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 in the result of
PROJECT is equal to the number of tuples in
R
PROJECT is not commutative
○ ( <list2> (R) ) = <list1> (R) as long as
<list1>
<list2> contains the attributes in <list1>
Slide 3- 13
Examples of applying SELECT and
PROJECT operations
Slide 3- 14
Relational Algebra Expressions
We may want to apply several relational
algebra operations one after the other
Either we can write the operations as a
single relational algebra expression by
nesting the operations, or
We can apply one operation at a time and
create intermediate result relations.
In the latter case, we must give names
to the relations that hold the
intermediate results.
Slide 3- 15
Single expression versus sequence of
relational operations (Example)
To retrieve the first name, last name, and salary of
all employees who work in department number 5,
we must apply a select and a project operation
We can write a single relational algebra
expression as follows:
FNAME, LNAME, SALARY( DNO=5(EMPLOYEE))
OR We can explicitly show the sequence of
operations, giving a name to each intermediate
relation:
DEP5_EMPS DNO=5(EMPLOYEE)
RESULT FNAME, LNAME, SALARY (DEP5_EMPS)
Slide 3- 16
Unary Relational Operations: RENAME
Slide 3- 17
Unary Relational Operations: RENAME
(contd.)
The general RENAME operation can be
expressed by any of the following forms:
S (B1, B2, …, Bn )(R) changes both:
○ the relation name to S, and
○ the column (attribute) names to B1, B1, …..Bn
S(R) changes:
○ the relation name only to S
(B1, B2, …, Bn )(R) changes:
○ the column (attribute) names only to B1, B1,
…..Bn
Slide 3- 18
Unary Relational Operations: RENAME
(contd.)
For convenience, we also use a shorthand
for renaming attributes in an intermediate
relation:
If we write:
• RESULT FNAME, LNAME, SALARY (DEP5_EMPS)
• RESULT will have the same attribute names as
DEP5_EMPS (same attributes as EMPLOYEE)
• If we write:
• RESULT (F, M, L, S, B, A, SX, SAL, SU,
DNO) RESULT (F.M.L.S.B,A,SX,SAL,SU, DNO)
(DEP5_EMPS)
• The 10 attributes of DEP5_EMPS are renamed
to F, M, L, S, B, A, SX, SAL, SU, DNO,
respectively
Slide 3- 19
Example of applying multiple operations and
RENAME
Slide 3- 20
Venn Diagram (UNION,
INTERSECTION, MINUS)
Slide 3- 21
Relational Algebra Operations from
Set Theory: UNION
UNION Operation
Binary operation, denoted by
The result of 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
The two operand relations R and S must be
“type compatible” (or UNION compatible)
○ R and S must have same number of attributes
○ Each pair of corresponding attributes must be
type compatible (have same or compatible
domains)
Slide 3- 22
Relational Algebra Operations from
Set Theory: UNION
Example:
To retrieve the social security numbers of all
employees who either work in department 5 (RESULT1
below) or directly supervise an employee who works in
department 5 (RESULT2 below)
We can use the UNION operation as follows:
DEP5_EMPS DNO=5 (EMPLOYEE)
RESULT1 SSN(DEP5_EMPS)
RESULT2(SSN) SUPERSSN(DEP5_EMPS)
RESULT RESULT1 RESULT2
The union operation produces the tuples that are in
either RESULT1 or RESULT2 or both
Slide 3- 23
Example of the result of a UNION operation
UNION Example
Slide 3- 24
Relational Algebra Operations from
Set Theory
Type Compatibility of operands is required for the
binary set operation UNION , (also for
INTERSECTION , and SET DIFFERENCE –, see
next slides)
R1(A1, A2, ..., An) and R2(B1, B2, ..., Bn) are type
compatible if:
they have the same number of attributes, and
the domains of corresponding attributes are type
compatible (i.e. dom(Ai)=dom(Bi) for i=1, 2, ..., n).
The resulting relation for R1R2 (also for R1R2, or
R1–R2, see next slides) has the same attribute names
as the first operand relation R1 (by convention)
Slide 3- 25
Relational Algebra Operations from Set
Theory: INTERSECTION
INTERSECTION is denoted by
The result of the operation R S, is a
relation that includes all tuples that are in
both R and S
The attribute names in the result will be the
same as the attribute names in R
The two operand relations R and S must
be “type compatible”
Slide 3- 26
Relational Algebra Operations from Set
Theory: SET DIFFERENCE (cont.)
SET DIFFERENCE (also called MINUS or
EXCEPT) is denoted by –
The result of R – S, is a relation that includes
all tuples that are in R but not in S
The attribute names in the result will be the
same as the attribute names in R
The two operand relations R and S must
be “type compatible”
Slide 3- 27
Example to illustrate the result of UNION,
INTERSECT, and DIFFERENCE
Slide 3- 28
Some properties of UNION, INTERSECT,
and DIFFERENCE
Notice that both union and intersection are
commutative operations; that is
R S = S R, and R S = S R
Both union and intersection can be treated as n-
ary operations applicable to any number of
relations as both are associative operations; that is
R (S T) = (R S) T
(R S) T = R (S T)
The minus operation is not commutative; that is, in
general
R – S ≠ S – R
Slide 3- 29
Slide 3- 30