0% found this document useful (0 votes)
43 views11 pages

Relational Algera

Relational algebra is a procedural query language that uses operators to query relations and yield new relations as output. Some key operators include selection (σ) to filter tuples, projection (π) to select attributes, union (∪) to combine relations, and various join operations (⋈) to combine tuples from different relations based on common attributes. Relational algebra operates recursively on relations and uses both unary and binary operators.

Uploaded by

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

Relational Algera

Relational algebra is a procedural query language that uses operators to query relations and yield new relations as output. Some key operators include selection (σ) to filter tuples, projection (π) to select attributes, union (∪) to combine relations, and various join operations (⋈) to combine tuples from different relations based on common attributes. Relational algebra operates recursively on relations and uses both unary and binary operators.

Uploaded by

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

4.

Relational Algebra

Relational database systems are expected to be equipped with a query language that
can assist its users to query the database instances. There are two kinds of query
languages − relational algebra and relational calculus.
Relational Algebra
Relational algebra is a procedural query language, which takes instances of relations
as input and yields instances of relations as output. It uses operators to perform
queries. An operator can be either unary or binary. They accept relations as their
input and yield relations as their output. Relational algebra is performed recursively on
a relation and intermediate results are also considered relations.

Basic Relational Algebra Operations:


Relational Algebra divided in various groups

1. Unary Relational Operations

 SELECT (symbol: σ)
 PROJECT (symbol: π)
 RENAME (symbol: )

2. Relational Algebra Operations From Set Theory

 UNION (υ)
 INTERSECTION ( ),
 DIFFERENCE (-)
 CARTESIAN PRODUCT ( x )

3. Binary Relational Operations

 JOIN
 DIVISION

Let's study them in detail:


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
operation 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) The symbol used to choose
attributes from a relation. This operation helps you to keep specific columns from a relation and discards the other
columns.

Example of Projection:

Consider the following table

CustomerI CustomerNam Status


D e

1 Google Active
2 Amazon Active

3 Apple Inactiv
e

4 Alibaba Active

Here, the projection of CustomerName and status will give

Π CustomerName, Status (Customers)


CustomerName Status

Google Active

Amazon Active

Apple Inactive

Alibaba Active

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

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.
Example:

A ∩ B
Table A ∩ B

column 1 column 2

1 1

Cartesian product(X)
This type of operation is helpful 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.

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 ⋈ A.column 2 > B.column 2 (B)


A ⋈ A.column 2 > B.column 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 ⋈ A.column 2 = B.column 2 (B)


A ⋈ A.column 2 = B.column 2 (B)

column 1 column 2

1 1

EQUI join is the most difficult operations to implement efficiently 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 18

C ⋈ D
C⋈D

Num Square Cube

2 4 4

3 9 9

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

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 4

3 9 9

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 Purpose
Select(σ) The SELECT operation is used for selecting a
subset of the tuples according to a given selection
condition

Projection(π) The projection eliminates all attributes of the input


relation but those mentioned in the projection list.

Union Operation(∪) UNION is symbolized by symbol. It includes all


tuples that are in tables A or in B.

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.

Intersection(∩) Intersection defines a relation consisting of a set of


all tuple that are in both A and B.

Cartesian Product(X) Cartesian operation is helpful to merge columns


from two relations.

Inner Join Inner join, includes only those tuples that satisfy
the matching criteria.

Theta Join(θ) The general case of JOIN operation is called a


Theta join. It is denoted by symbol θ.

EQUI Join When a theta join uses only equivalence condition,


it becomes a equi join.

Natural Join(⋈) Natural join can only be performed if there is a


common attribute (column) between the relations.

Outer Join In an outer join, along with tuples that satisfy the
matching criteria.

Left Outer Join( ) In the left outer join, operation allows keeping all
tuple in the left relation.

In the right outer join, operation allows keeping all


Right Outer join( ) tuple in the right relation.

Full Outer Join( ) In a full outer join, all tuples from both relations are
included in the result irrespective of the matching
condition.

 Relational Calculus
In contrast to Relational Algebra, Relational Calculus is a non-procedural query
language, that is, it tells what to do but never explains how to do it.
Relational calculus exists in two forms −
Tuple Relational Calculus (TRC)

Filtering variable ranges over tuples


Notation − {T | Condition}
Returns all tuples T that satisfies a condition.
For example −
{ T.name | Author(T) AND T.article = 'database' }
Output − Returns tuples with 'name' from Author who has written article on 'database'.
TRC can be quantified. We can use Existential (∃) and Universal Quantifiers (∀).
For example −
{ R| ∃T ∈ Authors(T.article='database' AND R.name=T.name)}
Output − The above query will yield the same result as the previous one.
Domain Relational Calculus (DRC)

In DRC, the filtering variable uses the domain of attributes instead of entire tuple
values (as done in TRC, mentioned above).
Notation −
{ a , a , a , ..., a | P (a , a , a , ... ,a )}
1 2 3 n 1 2 3 n

Where a1, a2 are attributes and P stands for formulae built by inner attributes.
For example −
{< article, page, subject > | ∈ TutorialsPoint ∧ subject =
'database'}
Output − Yields Article, Page, and Subject from the relation TutorialsPoint, where
subject is database.
Just like TRC, DRC can also be written using existential and universal quantifiers. DRC
also involves relational operators.
The expression power of Tuple Relation Calculus and Domain Relation Calculus is
equivalent to Relational Algebra.

You might also like