0% found this document useful (0 votes)
8 views39 pages

rELATIONAL Algebra

Uploaded by

norantharwat58
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views39 pages

rELATIONAL Algebra

Uploaded by

norantharwat58
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Relational Algebra

The basic set of operations for the relational model


is the relational algebra.
◦ enable the specification of basic retrievals
The result of a retrieval is a new relation, which
may have been formed from one or more relations.
◦ algebra operations thus produce new relations, which
can be further manipulated the same algebra.
A sequence of relational algebra operations forms a
relational algebra expression,
◦ the result will also be a relation that represents the result
of a database query (or retrieval request).

1
What is an Algebra?
A language based on operators and a domain of values
Operators map values taken from the domain into other domain
values
Hence, an expression involving operators and arguments produces a
value in the domain
When the domain is a set of all relations, we get the relational
algebra

2
Relational Algebra Definitions
Domain: set of relations
Basic operators: select, project, union, set
difference, Cartesian (cross) product
Derived operators: set intersection, division,
join
Procedural: Relational expression specifies
query by describing an algorithm (the sequence
in which operators are applied) for determining
the result of an expression

3
Unary Relational Operations
SELECT Operation: 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.
Examples:
DNO = 4 (EMPLOYEE)
SALARY > 30,000 (EMPLOYEE)
◦ 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
4
SELECT Operation Properties
The SELECT operation  <selection condition>(R) produces a
relation S that has the same schema as R

The SELECT operation  is commutative; i.e.,


 <condition1>( < condition2> ( R)) =  <condition2> ( < condition1> ( R))

A cascaded SELECT operation may be applied in any order;


i.e.,
 <condition1>( < condition2> ( <condition3> ( R))
=  <condition2> ( < condition3> ( < condition1> ( R)))

A cascaded SELECT operation may be replaced by a single


selection with a conjunction of all the conditions; i.e.,
 <condition1>( < condition2> ( <condition3> ( R))
=  <condition1> AND < condition2> AND < condition3> ( R)))

5
Selection Condition
Operators: <, , , >, =, 
Simple selection condition:
◦ <attribute> operator <constant>
◦ <attribute> operator <attribute>
◦ <condition> AND <condition>
◦ <condition> OR <condition>
◦ NOT <condition>

6
Select Examples
Person
Id Name Address Hobby
1123 John 123 Main stamps
1123 John 123 Main coins
5556 Mary 7 Lake Dr hiking
9876 Bart 5 Pine St stamps

 Id>3000 OR Hobby=‘hiking’ (Person)


 Id>3000 AND Id <3999 (Person)

 NOT(Hobby=‘hiking’) (Person)
 Hobby‘hiking’ (Person)

7
Unary Relational Operations (cont.)
PROJECT Operation: selects
certain columns from the
table and discards the others.
Example:
 (EMPLOYEE)
LNAME, FNAME,SALARY

The general form of the project operation is:


<attribute list>(R) where  is the symbol used
to represent the project operation and <attribute
list> is the desired list of attributes.
PROJECT removes duplicate tuples, so the result is
a set of tuples and hence a valid relation.
8
PROJECT Operation Properties

The number of tuples in the result of <list> (R) is 


always less or equal to the number of tuples in R.

If attribute list 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>

9
SELECT and PROJECT Operations
(a) (DNO=4 AND SALARY>25000) OR (DNO=5 AND
Row in project<=row
SALARY>30000)(EMPLOYEE) in Employee
(b) LNAME, FNAME, SALARY(EMPLOYEE)
(c) SEX, SALARY(EMPLOYEE)
For employees working in DNO=5LIST
THE FNAME,SSN,AND SALARY
𝑅1 ϭ𝐷𝑁𝑂=5 𝐸𝑚𝑝𝑙𝑜𝑦𝑒𝑒
ɲ 𝐹𝑁𝐴𝑀𝐸,𝑆𝑆𝑁,𝑆𝐴𝐿𝐴𝑅𝑌 (𝑅1 )
Relational Algebra Operations
from Set Theory
The UNION, INTERSECTION, and MINUS Operations
The CARTESIAN PRODUCT (or CROSS PRODUCT) Operation
Set Operators
A relation is a set of tuples, so set operations apply:
, , − (set difference)

Result of combining two relations with a set operator is a relation


=> all elements are tuples with the same structure

13
UNION Operation

Denoted by R  S
Result is a relation that includes all tuples that are either
in R or in S or in both. Duplicate tuples are eliminated.
Example: Retrieve the SSNs of all employees who either
work in department 5 or directly supervise an employee
who works in department 5:
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”.
14
UNION Operation
Type (Union) 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, i.e.
◦ dom(Ai) = dom(Bi) for i=1, 2, ..., n.

15
Example
Tables:
Person (SSN, Name, Address, Hobby)
Professor (Id, Name, Office, Phone)
are not union compatible.

But
 Name (Person) and  Name (Professor)
are union compatible so
 Name (Person) -  Name (Professor)
makes sense.
16
UNION Example
STUDENT  INSTRUCTOR:

What would STUDENT  INSTRUCTOR be?

17
Set Difference Operation
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”.

20
Set Difference Example
S1 S2
SID SName Age SID SName Age
473 Popeye 22 202 Rusty 21
192 Jose 22 403 Marcia 20
715 Alicia 28 914 Hal 24
914 Hal 24 192 Jose 22
881 Stimpy 19
21
Relational Algebra Operations From Set
Theory (cont.)
Union and intersection are commutative operations:
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, and
(R  S)  T = R  (S  T)

The minus operation is not commutative; that is, in


general
R-S≠S–R
22
Cartesian (Cross) Product
If R and S are two relations, R  S is the set of all
concatenated tuples <x,y>, where x is a tuple in R and y
is a tuple in S
◦ R and S need not be union compatible
R  S is expensive to compute:
◦ Factor of two in the size of each row; Quadratic in the number
of rows
A B C D A B C D
x1 x2 y1 y2 x1 x2 y1 y2
x3 x4 y3 y4 x1 x2 y3 y4
x3 x4 y1 y2
R S x3 x4 y3 y4
R S 23
Cartesian Product Example
We want a list of COMPANY’s female employees' dependents.
Binary Relational Operations:
JOIN and DIVISION
The JOIN Operation
The EQUIJOIN and NATURAL JOIN variations of JOIN
The DIVISION Operation
JOIN Operation
Cartesian product followed by select is commonly
used to identify and select related tuples from two
relations => called JOIN. It is denoted by a
◦ This operation is important for any relational database
with more than a single relation, because it allows us to
process relationships among relations.
◦ The general form of a join operation on two relations
R(A1, A2, . . ., An) and S(B1, B2, . . ., Bm) is:
R <join condition>S
where R and S can be any relations that result from
general relational algebra expressions.(Department
and project that managed)
27
The Binary Join Operation
EQUIJOIN & NATURAL JOIN
EQUIJOIN
◦ most common join: join conditions with equality
comparisons only.
◦ in the result of an EQUIJOIN, we always have one or
more pairs of attributes (whose names need not be
identical) that have identical values in every tuple.
◦ The JOIN in the previous example was EQUIJOIN.
NATURAL JOIN
◦ Because one of each pair of attributes with identical
values is superfluous, a new operation called natural
join—denoted by *—was created to get rid of the
second (superfluous) attribute.
◦ The standard definition of natural join requires that
each pair of corresponding join attributes, have
the same name in both relations. If this is not the case,
a renaming operation is applied.
32
Natural Join Operations
(a) PROJ_DEPT  PROJECT * DEPT
(b) DEPT_LOCS  DEPARTMENT *
DEPT_LOCATIONS
Additional Relational
Operations
Aggregate Functions and Grouping
Recursive Closure Operations
The OUTER JOIN Operation
OUTER JOINs
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. This loses information.

Outer joins, can be used when we want to keep all the tuples in
R, all those in S, or all those in both relations
◦ regardless of whether 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 “padded” with null
values.

A similar operation, 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 when no matching
tuples are found, padding them with null values as needed.
35
Dno
1
2
3
Null
Null
Dno
1
2
3
Null
Null
Left Outer Join
E.g. List all employees and the department
they manage, if they manage a department.

You might also like