1
Database Systems
Relational Algebra
Database Management
Systems
2
Database Management S
ystems
Today’s agenda
• Example Database Application (COMPANY)
• Relational Algebra
▫ Unary Relational Operations
▫ Relational Algebra Operations From Set Theory
3
Database Management S
ystems
Database State for COMPANY
All examples discussed below refer to the COMPANY database shown here.
4
Database Management S
ystems
Relational Algebra
• The basic set of operations for the relational model is known
as the relational algebra. These operations enable a user to
specify basic retrieval requests.
• The result of a retrieval is a new relation, which may have
been formed from one or more relations. The algebra
operations thus produce new relations, which can be further
manipulated using operations of the same algebra.
• A sequence of relational algebra operations forms a
relational algebra expression, whose result will also be a
relation that represents the result of a database query (or
retrieval request).
5
Database Management S
ystems
Unary Relational Operations
• SELECT Operation
SELECT operation is used to select a subset of the tuples from a relation that
satisfy a selection condition. It is a filter that keeps only those tuples that
satisfy a qualifying condition – those satisfying the condition are selected
while others are discarded.
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)
In general, the select operation is denoted by <selection condition>(R) where the
symbol (sigma) is used to denote the select operator, and the selection
condition is a Boolean expression specified on the attributes of relation R
6
Database Management S
ystems
Unary Relational Operations (cont.)
• PROJECT Operation
This operation selects certain columns from the table and discards the other
columns. The PROJECT creates a vertical partitioning – one with the needed
columns (attributes) containing results of the operation and other containing
the discarded Columns.
Example: To list each employee’s first and last name and salary, the
following is used:
LNAME, FNAME,SALARY (EMPLOYEE)
The general form of the project operation is <attribute list>(R) where
(pi) is the symbol used to represent the project operation and <attribute list>
is the desired list of attributes from the attributes of relation R.
The project operation removes any duplicate tuples, so the result of the
project operation is a set of tuples and hence a valid relation.
7
Database Management S
ystems
FIGURE 6.1
Results of SELECT and PROJECT operations. (a) s(DNO=4 AND SALARY>25000) OR (DNO=5 AND
SLARY>30000)(EMPLOYEE). (b) pSEX, SALARY(EMPLOYEE).
8
Database Management S
ystems
Unary Relational Operations (cont.)
• Rename Operation
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.
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)
9
Database Management S
ystems
Unary Relational Operations (cont.)
• Rename Operation (cont.)
The rename operator is
The general Rename operation can be expressed by any of the
following forms:
- S (B1, B2, …, Bn ) ( R) is a renamed relation S based on R with column names B1, B2,
…..Bn.
- S ( R) is a renamed relation S based on R (which does not specify column names).
- (B1, B2, …, Bn ) ( R) is a renamed relation with column names B1, B2, …..Bn
which does not specify a new relation name.
10
Database Management S
ystems
FIGURE 6.2
Results of a sequence of operations. (a) pFNAME, LNAME, SALARY
(sDNO=5(EMPLOYEE)). (b) Using intermediate relations and
renaming of attributes.
11
Database Management S
ystems
Relational Algebra Operations From
Set Theory
• UNION Operation
The result of this 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.
Example: To retrieve the social security numbers of all employees who either
work in department 5 or directly supervise an employee who works in
department 5, 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. The two operands must be “type compatible”.
12
Database Management S
ystems
Relational Algebra Operations From
Set Theory
• Type Compatibility
▫ The operand relations R1(A1, A2, ..., An) and R2(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 R1R2,R1 R2, or R1-R2 has the
same attribute names as the first operand relation R1
(by convention).
13
Database Management S
ystems
Relational Algebra Operations From
Set Theory
• UNION Example
STUDENTINSTRUCTOR
14
Database Management S
ystems
Relational Algebra Operations From Set Theory (cont.)
• INTERSECTION OPERATION
The result of this operation, denoted by R S, is a relation that includes all
tuples that are in both R and S. The two operands must be "type compatible"
Example: The result of the intersection operation (figure below) includes
only those who are both students and instructors.
STUDENT INSTRUCTOR
15
Database Management S
ystems
Relational Algebra Operations From Set Theory (cont.)
• Set Difference (or MINUS) Operation
The result of this operation, denoted by R - S, is a relation that includes all
tuples that are in R but not in S. The two operands must be "type compatible”.
Example: The figure shows the names of students who are not instructors,
and the names of instructors who are not students.
STUDENT-INSTRUCTOR
INSTRUCTOR-
STUDENT
16
Database Management S
ystems
Relational Algebra Operations From Set Theory (cont.)
• CARTESIAN (or cross product) Operation
▫ This operation is used to combine tuples from two relations in a
combinatorial fashion. In general, the result of R(A1, A2, . . ., An) x
S(B1, B2, . . ., Bm) is a relation Q with degree n + m attributes Q(A1, A2,
. . ., An, B1, B2, . . ., Bm), in that order. The resulting relation Q has one
tuple for each combination of tuples—one from R and one from S.
▫ Hence, if R has nR tuples (denoted as |R| = nR ), and S has nS tuples,
then
| R x S | will have nR * nS tuples.
▫ The two operands do NOT have to be "type compatible”
Example:
FEMALE_EMPS SEX=’F’(EMPLOYEE)
EMPNAMES FNAME, LNAME, SSN (FEMALE_EMPS)
EMP_DEPENDENTS EMPNAMES x DEPENDENT
17
Database Management S
ystems
FIGURE≈6.5a
The CARTESIAN PRODUCT (CROSS PRODUCT) operation.
18
Database Management S
ystems
FIGURE≈6.5b
The CARTESIAN PRODUCT (CROSS PRODUCT) operation.
19
Database Management S
ystems
FIGURE≈6.5c
The CARTESIAN PRODUCT (CROSS PRODUCT) operation.