Relational Algebra
RELATIONAL ALGEBRA is a widely used procedural query language. It
collects instances of relations as input and gives occurrences of relations
as output. It uses various operations to perform this action. SQL Relational
algebra query operations are performed recursively on a relation. The
output of these operations is a new relation, which might be formed from
one or more input relations.
Basic SQL Relational Algebra Operations
Relational Algebra devided in various groups
Unary Relational Operations
SELECT (symbol: σ)
PROJECT (symbol: π)
RENAME (symbol: ρ)
Relational Algebra Operations From Set Theory
UNION (υ)
INTERSECTION ( ),
DIFFERENCE (-)
CARTESIAN PRODUCT ( x )
Binary Relational Operations
JOIN
DIVISION
Let’s study them in detail with solutions:
SELECT (σ)
The SELECT operation is used for selecting a subset of the tuples
according to a given selection condition. Sigma(σ)Symbol denotes it. It is
used as an expression to choose tuples which meet the selection
condition. Select operator selects tuples that satisfy a given predicate.
σp(r)
σ is the predicate
r stands for relation which is the name of the table
p is prepositional logic
Example 1
σ topic = "Database" (Tutorials)
Output – Selects tuples from Tutorials where topic = ‘Database’.
Example 2
σ topic = "Database" and author = "guru99" ( Tutorials)
Output – Selects tuples from Tutorials where the topic is ‘Database’ and
‘author’ is guru99.
Example 3
σ sales > 50000 (Customers)
Output – Selects tuples from Customers where sales is greater than
50000
Projection(π)
The projection eliminates all attributes of the input relation but those
mentioned in the projection list. The projection method defines a relation
that contains a vertical subset of Relation.
This helps to extract the values of specified attributes to eliminates
duplicate values. (pi) symbol is used to choose attributes from a relation.
This operator helps you to keep specific columns from a relation and
discards the other columns.
Example of Projection:
Consider the following table
CustomerID CustomerName Status
1 Google Active
2 Amazon Active
3 Apple Inactive
4 Alibaba Active
Here, the projection of CustomerName and status will give
Π CustomerName, Status (Customers)
CustomerName Status
Google Active
CustomerName Status
Amazon Active
Apple Inactive
Alibaba Active
Rename (ρ)
Rename is a unary operation used for renaming attributes of a relation.
ρ (a/b)R will rename the attribute ‘b’ of relation by ‘a’.
Union operation (υ)
UNION is symbolized by ∪ symbol. It includes all tuples that are in tables A
or in B. It also eliminates duplicate tuples. So, set A UNION set B would be
expressed as:
The result <- A ∪ B
For a union operation to be valid, the following conditions must hold –
R and S must be the same number of attributes.
Attribute domains need to be compatible.
Duplicate tuples should be automatically removed.
Example
Consider the following tables.
Table A Table B
column 1 column 2 column 1 column 2
1 1 1 1
1 2 1 3
A ∪ B gives
Table A ∪ B
column 1 column 2
1 1
Table A ∪ B
1 2
1 3
Set Difference (-)
– Symbol denotes it. The result of A – B, is a relation which includes all
tuples that are in A but not in B.
The attribute name of A has to match with the attribute name in B.
The two-operand relations A and B should be either compatible or
Union compatible.
It should be defined relation consisting of the tuples that are in
relation A, but not in B.
Example
A-B
Table A – B
column 1 column 2
1 2
Intersection
An intersection is defined by the symbol ∩
A∩B
Defines a relation consisting of a set of all tuple that are in both A and B.
However, A and B must be union-compatible.
Visual
Definition of Intersection
Example:
A∩B
Table A ∩ B
column 1 column 2
1 1
Cartesian Product(X) in DBMS
Cartesian Product in DBMS is an operation used to merge columns
from two relations. Generally, a cartesian product is never a meaningful
operation when it performs alone. However, it becomes meaningful when
it is followed by other operations. It is also called Cross Product or Cross
Join.
Example – Cartesian product
σ column 2 = ‘1’ (A X B)
Output – The above example shows all rows from relation A and B whose
column 2 has value 1
σ column 2 = ‘1’ (A X B)
column 1 column 2
1 1
1 1
Join Operations
Join operation is essentially a cartesian product followed by a selection
criterion.
Join operation denoted by ⋈.
JOIN operation also allows joining variously related tuples from different
relations.
Types of JOIN:
Various forms of join operation are:
Inner Joins:
Theta join
EQUI join
Natural join
Outer join:
Left Outer Join
Right Outer Join
Full Outer Join
Inner Join
In an inner join, only those tuples that satisfy the matching criteria are
included, while the rest are excluded. Let’s study various types of Inner
Joins:
Theta Join
The general case of JOIN operation is called a Theta join. It is denoted by
symbol θ
Example
A ⋈θ B
Theta join can use any conditions in the selection criteria.
For example:
A⋈ [Link] 2 > [Link] 2 (B)
A ⋈ [Link] 2 > [Link] 2 (B)
column 1 column 2
1 2
EQUI join
When a theta join uses only equivalence condition, it becomes a equi join.
For example:
A⋈ [Link] 2 = [Link] 2 (B)
A ⋈ [Link] 2 = [Link] 2 (B)
column 1 column 2
1 1
EQUI join is the most difficult operations to implement efficiently using
SQL in an RDBMS and one reason why RDBMS have essential performance
problems.
NATURAL JOIN (⋈)
Natural join can only be performed if there is a common attribute (column)
between the relations. The name and type of the attribute must be same.
Example
Consider the following two tables
Num Square
2 4
3 9
Num Cube
2 8
3 27
C⋈D
C⋈D
Num Square Cube
2 4 8
3 9 27
OUTER JOIN
In an outer join, along with tuples that satisfy the matching criteria, we
also include some or all tuples that do not match the criteria.
Left Outer Join(A ⟕ B)
In the left outer join, operation allows keeping all tuple in the left relation.
However, if there is no matching tuple is found in right relation, then the
attributes of right relation in the join result are filled with null values.
Consider the following 2 Tables
A
Num Square
2 4
3 9
4 16
Num Cube
2 8
3 18
5 75
A B
A⋈B
Num Square Cube
2 4 8
3 9 18
4 16 –
Right Outer Join ( A ⟖ B )
In the right outer join, operation allows keeping all tuple in the right
relation. However, if there is no matching tuple is found in the left relation,
then the attributes of the left relation in the join result are filled with null
values.
A B
A⋈B
Num Cube Square
2 8 4
3 18 9
5 75 –
Full Outer Join ( A ⟗ B)
In a full outer join, all tuples from both relations are included in the result,
irrespective of the matching condition.
A B
A⋈B
Num Cube Square
2 4 8
3 9 18
4 16 –
5 – 75
Summary
Operation(Symbols) Purpose
The SELECT operation is used for selecting a
Select(σ) subset of the tuples according to a given selection
condition
The projection eliminates all attributes of the
Projection(π) input relation but those mentioned in the
projection list.
UNION is symbolized by symbol. It includes all
Union Operation(∪)
tuples that are in tables A or in B.
– Symbol denotes it. The result of A – B, is a
Set Difference(-) relation which includes all tuples that are in A but
not in B.
Intersection defines a relation consisting of a set
Intersection(∩)
of all tuple that are in both A and B.
Operation(Symbols) Purpose
Cartesian operation is helpful to merge columns
Cartesian Product(X)
from two relations.
Inner join, includes only those tuples that satisfy
Inner Join
the matching criteria.
The general case of JOIN operation is called a
Theta Join(θ)
Theta join. It is denoted by symbol θ.
When a theta join uses only equivalence
EQUI Join
condition, it becomes a equi join.
Natural join can only be performed if there is a
Natural Join(⋈)
common attribute (column) between the relations.
In an outer join, along with tuples that satisfy the
Outer Join
matching criteria.
In the left outer join, operation allows keeping all
Left Outer Join( )
tuple in the left relation.
In the right outer join, operation allows keeping all
Right Outer join( )
tuple in the right relation.
In a full outer join, all tuples from both relations
Full Outer Join( ) are included in the result irrespective of the
matching condition.