0% found this document useful (0 votes)
18 views54 pages

212 Lecture 10 Chapter7-Relational Algebra

Relational algebra and relational calculus are formal languages used in the relational model, with the former being procedural and the latter non-procedural. The document outlines the basic operations of relational algebra, including selection, projection, and set operations, as well as more complex operations like join and division. It also discusses properties and examples of these operations, emphasizing their importance in data retrieval and manipulation within relational databases.

Uploaded by

s.hasan7510
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)
18 views54 pages

212 Lecture 10 Chapter7-Relational Algebra

Relational algebra and relational calculus are formal languages used in the relational model, with the former being procedural and the latter non-procedural. The document outlines the basic operations of relational algebra, including selection, projection, and set operations, as well as more complex operations like join and division. It also discusses properties and examples of these operations, emphasizing their importance in data retrieval and manipulation within relational databases.

Uploaded by

s.hasan7510
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

Relational Algebra

Chapter # 07
Relational Algebra & Calculus
• Relational algebra and relational calculus are formal languages
associated with the relational model.

• Informally, relational algebra is a (high-level) procedural language


and relational calculus a non-procedural language.

– Relational Algebra: More operational (procedural), very useful


for representing execution plans.
– Relational Calculus: Lets users describe what they want, rather
than how to compute it: Non-operational, declarative.

• However, formally both are equivalent to one another.


Relational Algebra
• The basic set of operations for the relational model is the relational
algebra.
– enable the specification of basic retrievals

• Relational algebra operations work on one or more relations to


define another relation without changing the original relations.

• Both operands and results are relations, so output from one


operation can become input to another operation.

• Allows expressions to be nested, just as in arithmetic.


Relational Algebra
• Five basic operations in relational algebra: Selection, Projection,
Cartesian product, Union, and Set Difference.

• These perform most of the data retrieval operations needed.

• Also have Join, Intersection, and Division operations, which can be


expressed in terms of 5 basic operations.
Relational Algebra Operations
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
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)))
Selection Condition
Operators: <, , , >, =, 
Simple selection condition:
– <attribute> operator <constant>
– <attribute> operator <attribute>
– <condition> AND <condition>
– <condition> OR <condition>
– NOT <condition>
Selection Condition
 Id>3000 OR Hobby=‘hiking’ (Person)

 Id>3000 AND Id <3999 (Person)

 NOT(Hobby=‘hiking’) (Person)
 Hobby‘hiking’ (Person)
Unary Relational Operations
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.
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.
SELECT and PROJECT Operations

(a) (DNO=4 AND SALARY>25000) OR (DNO=5 AND


SALARY>30000)(EMPLOYEE)

(b) LNAME, FNAME, SALARY(EMPLOYEE)


RENAME operation
RENAME operation
Rename attributes in intermediate results

ρS(B1,B2, ...,Bn)(R)
ρS(R)
ρ(B1,B2, ...,Bn)(R)

where the symbol ρ(rho) is used to denote the RENAME operator,


S is the new relation name, and B1, B2, ..., Bn are the new attribute
names.
RENAME operation
• The first expression renames both the relation and its attributes
ρS(B1,B2, ...,Bn)(R)

• The second renames the relation only


ρS(R)

• The third renames the attributes only.


ρ(B1,B2, ...,Bn)(R)
If the attributes of Rare (A1,A2, ...,An) in that order, then each Ai is
renamed as Bi.
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
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”.
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.
Intersection Operation
Denoted by R ∩ S
The intersection operation also has the requirement that
both the relations should be union compatible, which
means they are of same degree and same
domains.
• If R and S are two relations and we take intersection of
these two relations then the resulting relation would be
the set of tuples, which are in both R and S. Just like
union intersection is also commutative.
• R ∩ S = S ∩R
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
Set Difference
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”.
Relational Algebra Operations From
Set Theory
• 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
Relational Algebra Operations
from Set Theory
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
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
Binary Relational Operations:
JOIN and DIVISION
• The JOIN Operation
• The EQUIJOIN and NATURAL JOIN
variations of JOIN
• The DIVISION Operation
JOIN
• 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
Types of JOIN
Natural Join
• The natural join performs an equi join of the two relations R and S
over all common attribute
• a natural join will remove duplicate attribute
• In most systems a natural join will require that the attributes have
the same name to identity the attributes to be used in the join.
• This may require a renaming mechanism.
• Denoted by *
Natural Join
• Input: Two relations (tables) R and S
• Notation: R S
• Purpose: Relate rows from second table and
– Enforce equality on all column attributes
– Eliminate one copy of common attribute
NATURAL JOIN
NATURAL JOIN
In the following example, first we rename the Dnumber attribute

Of DEPARTMENT to Dnum—so that it has the same name as the Dnum attribute in
PROJECT—and then we apply NATURAL JOIN:

PROJ_DEPT ← PROJECT *ρ(Dname, Dnum, Mgr_ssn,Mgr_start_date)(DEPARTMENT)


EQUIJOIN

• Only = comparison operator used


• Always have one or more pairs of attributes that have
identical values in every tuple
• In the result of an EQUIJOIN we always have one or
more pairs of attributes that have identical values in
every tuple.
EQUIJOIN
THETAJOIN
• A conditional join in which we impose condition other
than equality condition.
• If equality condition is imposed then theta join become
equi join. The symbol
• Θ stands for the comparison operator which could be
>, <, >=,<=.
• Expression of Theta Join σθ(R×S)
OUTER JOINs
• Tuples without a matching(or related) tuple are
eliminated from the JOIN result.
• Tuples with NULL values in the join attributes are also
eliminated.
• This type of join, where tuples with no match are
eliminated, is known as an inner join

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
OUTER JOINs
Types
• LEFT OUTER JOIN
• RIGHT OUTER JOIN
• FULL OUTER JOIN
OUTER JOINs
Left & Right outer join
• 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.
Full Outer Join
• 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.
Example
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
Semi Join
In semi join, first we take the natural join of two relations then
we project the attributes of first table only. So after join and
matching the common attribute of both relations only attributes of
first relation are projected.
Example 2
Semi Join
Division
• Suppose A has two groups of fields <x,y>

• y fields are same fields in terms of domain as B

• A/B = <x> such as for every y value in a tuple of B there is


<x,y> in A
Division
Division
• Identify all clients who have viewed all properties with three
rooms.
(clientNo, propertyNo(Viewing)) 
(propertyNo(rooms = 3 (PropertyForRent)))
Additional Relational Operations
Generalized Projection
The generalized projection operation extends the
projection operation by allowing functions of attributes to
be included in the projection list. The generalized form
can be expressed as
Generalized Projection
Aggregate functions and grouping
• Common functions applied to collections of
numeric values
• Include SUM, AVERAGE, MAXIMUM, and
MINIMUM
Aggregate functions
• Group tuples by the value of some of their attributes
• Apply aggregate function independently to each group
Aggregate functions

You might also like