Title: Relational Algebra
1Relational Algebra
2What is Relational Algebra?
- Relational Algebra is formal description of how
relational database operates. - It is a procedural query language, i.e. user must
define both how and what to retrieve. - It consists of a set of operators that consume
either one or two relations as input. An operator
produces one relation as its output.
3Introduction to Relational Algebra
- Introduced by E. F.
- Codd in 1970.
- Codd proposed such
- an algebra as a basis
- for database query
- languages.
4Terminology
- Relation - a set of tuples.
- Tuple - a collection of attributes which describe
some real world entity. - Attribute - a real world role played by a named
domain. - Domain - a set of atomic values.
- Set - a mathematical definition for a collection
of objects which contains no duplicates.
5Algebra Operations
- Unary Operations - operate on one relation. These
include select, project and rename operators. - Binary Operations - operate on pairs of
relations. These include union, set difference,
division, cartesian product, equality join,
natural join, join and semi-join operators.
6Select Operator
- The Select operator selects tuples that satisfies
a predicate e.g. retrieve the employees whose
salary is 30,000 - ? Salary 30,000 (Employee)
- Conditions in Selection
- Simple Condition (attribute)(comparison)(attribu
te) - (attribute)(comparison)(constant)
- Comparison ,?,,,lt,gt
- Condition combination of simple conditions with
AND, OR, NOT
7Select Operator Example
Person
?Age34(Person)
?AgeWeight(Person)
8Project Operator
- Project (?) retrieves a column. Duplication is
not permitted. - e.g., name of employees
- ? name(Employee)
- e.g., name of employees earning more than
80,000 - ? name(?Salarygt80,000(Employee))
9Project Operator Example
Employee
? name(Employee)
10Project Operator Example
?Salarygt80,000(Employee)
Employee
? name(?Salarygt80,000(Employee))
11Cartesian Product
- In mathematics, it is a set of all pairs of
elements (x, y) that can be constructed from
given sets, X and Y, such that x belongs to X and
y to Y. - It defines a relation that is the concatenation
of every tuple of relation R with every tuple of
relation S.
12Cartesian Product Example
City
Person
Person X City
13Rename Operator
- In relational algebra, a rename is a unary
operation written as ? a / b (R) where - a and b are attribute names
- R is a relation
- The result is identical to R except that the b
field in all tuples is renamed to an a field. - Example, rename operator changes the name of its
input table to its subscript, - ?employee(Emp)
- Changes the name of Emp table to employee
14Rename Operator Example
? EmployeeName / Name (Employee)
Employee
15Union Operator
- The union operation is denoted U as in set
theory. It returns the union (set union) of two
compatible relations. - For a union operation r U s to be legal, we
require that, - r and s must have the same number of
attributes. - The domains of the corresponding attributes
must be the same. - As in all set operations, duplicates are
eliminated.
16Union Operator Example
Professor
Student
Student U Professor
17Intersection Operator
- Denoted as ? . For relations R and S,
intersection is 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)
18Intersection Operator Example
Professor
Student
Student ? Professor
19Set Difference Operator
- For relations R and S,
- Set difference R - S, defines a relation
consisting of the tuples that are in relation R,
but not in S. - Set difference S R, defines a relation
consisting of the tuples that are in relation S,
but not in R.
20Set Difference Operator Example
Professor
Student
Professor - Student
Student - Professor
21Division Operator
- The division operator takes as input two
relations, called the dividend relation (r on
scheme R) and the divisor relation (s on scheme
S) such that all the attributes in S also appear
in R and S is not empty. The output of the
division operation is a relation on scheme R with
all the attributes common with S.
22Division Operator Example
Completed
DBProject
Completed / DBProject
23Natural Join Operator
- Natural join is a dyadic operator that is
written as R lXl S where R and S are relations.
The result of the natural join is the set of all
combinations of tuples in R and S that are equal
on their common attribute names.
24Natural Join Example
For an example, consider the tables Employee and
Dept and their natural join
Employee
Employee lXl Dept
Dept
25Semijoin Operator
- The semijoin is joining similar to the natural
join and written as R ? S where R and S are
relations. The result of the semijoin is only the
set of all tuples in R for which there is a tuple
in S that is equal on their common attribute
names.
26Semijoin Example
For an example consider the tables Employee and
Dept and their semi join
Employee
Employee ? Dept
Dept
27Outerjoin Operator
- Left outer join
- The left outer join is written as R X S where R
and S are relations. The result of the left outer
join is the set of all combinations of tuples in
R and S that are equal on their common attribute
names, in addition to tuples in R that have no
matching tuples in S. - Right outer join
- The right outer join is written as R X S where
R and S are relations. The result of the right
outer join is the set of all combinations of
tuples in R and S that are equal on their common
attribute names, in addition to tuples in S that
have no matching tuples in R.
28Left Outerjoin Example
For an example consider the tables Employee and
Dept and their left outer join
Employee
Employee X Dept
Dept
29Right Outerjoin Example
For an example consider the tables Employee and
Dept and their right outer join
Employee
Employee X Dept
Dept
30Full Outer join Example
The outer join or full outer join in effect
combines the results of the left and right outer
joins. For an example consider the tables
Employee and Dept and their full outer join
Employee
Employee X Dept
Dept
31References
- http//en.wikipedia.org/wiki/Relational_algebraOu
ter_join - http//www.cs.sjsu.edu/faculty/lee/cs157/cs157alec
turenotes.htm - Database System Concepts, 5th edition,
Silberschatz, Korth, Sudarshan