0% found this document useful (0 votes)
12 views35 pages

Unit 3 - Part2

Relational algebra is a procedural query language that utilizes operators to perform queries on relational databases. Key operations include SELECT, PROJECT, UNION, INTERSECTION, DIFFERENCE, CARTESIAN PRODUCT, and JOIN, each serving specific functions to manipulate and retrieve data. The document provides detailed examples and notations for each operation, illustrating their application in database management.

Uploaded by

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

Unit 3 - Part2

Relational algebra is a procedural query language that utilizes operators to perform queries on relational databases. Key operations include SELECT, PROJECT, UNION, INTERSECTION, DIFFERENCE, CARTESIAN PRODUCT, and JOIN, each serving specific functions to manipulate and retrieve data. The document provides detailed examples and notations for each operation, illustrating their application in database management.

Uploaded by

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

A

E BR
L G
A
A L
N
O
I R T
2

T
LA –
A
P

E
R I T
3

N
U
RELATIONAL ALGEBRA
Relational algebra is a procedural query language. It
gives a step by step process to obtain the result of
the query. It uses operators to perform queries.
Types of Relational operation
SELECT OPERATION
The select operation selects tuples that satisfy a given
predicate.
It is denoted by sigma (σ).
Notation: σ p(r)
Where:
σ is used for selection prediction
r is used for relation
p is used as a propositional logic formula which may use
connectors like: AND OR and NOT. These relational can
use as relational operators like =, ≠, ≥, <, >, ≤.
For example: LOAN Relation

BRANCH_NAME LOAN_NO AMOUNT

Downtown L-17 1000

Redwood L-23 2000

Perryride L-15 1500

Downtown L-14 1500

Mianus L-13 500

Roundhill L-11 900

Perryride L-16 1300

Input:
σ BRANCH_NAME="perryride" (LOAN)

BRANCH_NAME LOAN_NO AMOUNT

Perryride L-15 1500


Perryride L-16 1300
PROJECT OPERATION:

This operation shows the list of those attributes that we wish


to appear in the result. Rest of the attributes are eliminated
from the table.
It is denoted by ∏.
Notation: ∏ A1, A2, An (r)
Where
A1, A2, A3 is used as an attribute name of relation r.
Example: CUSTOMER RELATION

NAME STREET CITY

Jones Main Harrison OUTPUT:


Smith North Rye
Hays Main Harrison NAME CITY

Curry North Rye Jones Harrison

Johnson Alma Brooklyn


Smith Rye
Brooks Senator Brooklyn
Hays Harrison
Input:
∏ NAME, CITY (CUSTOMER)
Curry Rye
Johnson Brooklyn

Brooks Brooklyn
UNION OPERATION
Suppose there are two tables R and S. The union
operation contains all the tuples that are either in R or
S or both in R & S.
It eliminates the duplicate tuples. It is denoted by ∪.
Notation: R ∪ S
A union operation must hold the following condition:
R and S must have the attribute of the same number.
Duplicate tuples are eliminated automatically.
Example:

DEPOSITOR RELATION
CUSTOMER_NAME ACCOUNT_NO

Johnson A-101
Smith A-121
BORROW RELATION
Mayes A-321
Turner A-176
Johnson A-273
Jones A-472
Lindsay A-284
CUSTOMER_NAME LOAN_NO
Jones L-17
Smith L-23
Hayes L-15
CUSTOMER_NAME
Jackson L-14
Curry L-93 Johnson

Smith L-11 Smith


Hayes
Williams L-17
Turner

Input: Jones
∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUST Lindsay
OMER_NAME (DEPOSITOR)
Jackson
Curry
Williams
Mayes
SET INTERSECTION
Suppose there are two tuples R and S. The set intersection
operation contains all tuples that are in both R & S(common
tuples).
It is denoted by intersection ∩.
Notation: R ∩ S
Example: Using the above DEPOSITOR table and BORROW table
Input:
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSIT
OR) CUSTOMER_NAME
Output:
Smith
Jones
SET DIFFERENCE
Suppose there are two tuples R and S. The set intersection
operation contains all tuples that are in R but not in S.
It is denoted by intersection minus (-).
Notation: R - S
Example: Using the above DEPOSITOR table and BORROW table
Input:
∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSIT
OR)
Output: CUSTOMER_NAME
Jackson
Hayes
Willians
Curry
CARTESIAN PRODUCT

The Cartesian product is used to combine each


row in one table with each row in the other
table. It is also known as a cross product.
It is denoted by X.
Notation: E X D
Example:
EMP_ID EMP_NAME EMP_DEPT
EMPLOYEE
1 Smith A
2 Harry C
3 John B
DEPARTMENT

DEPT_NO DEPT_NAME

A Marketing
B Sales
C Legal

Input:
EMPLOYEE X DEPARTMENT
Output:
EMP_ID EMP_NAME EMP_DEPT DEPT_NO DEPT_NAME

1 Smith A A Marketing
1 Smith A B Sales
1 Smith A C Legal
2 Harry C A Marketing
2 Harry C B Sales
2 Harry C C Legal
3 John B A Marketing
3 John B B Sales
3 John B C Legal
RENAME OPERATION
The rename operation is used to rename the output relation. It
is denoted by rho (ρ).
Example: We can use the rename operator to rename STUDENT
relation to STUDENT1.
ρ(STUDENT1, STUDENT)
SET THEORETICAL OPERATIONS ON
RELATIONS
The SQL Set operation is used to combine the two or more SQL SELECT
statements.
Types of Set Operation
1. Union
2. UnionAll
3. Intersect
4. Minus
UNION
The SQL Union operation is used to combine the result of two or more
SQL SELECT queries.
In the union operation, all the number of datatype and columns must
be same in both the tables on which UNION operation is being
applied.
The union operation eliminates the duplicate rows from its resultset.
Syntax
SELECT column_name FROM table1
UNION
SELECT column_name FROM table2;
EXAMPLE
The First table The Second table

ID NAME ID NAME
1 Jack 3 Jackson
2 Harry 4 Stephan
3 Jackson 5 David

Union SQL query will be:


SELECT * FROM First
UNION
SELECT * FROM Second;
The resultset table will look like:

ID NAME
1 Jack
2 Harry
3 Jackson
4 Stephan
5 David
UNION ALL
Union All operation is equal to the Union operation. It returns the set
without removing duplication and sorting the data.
Syntax:
SELECT column_name FROM table1
UNION ALL
SELECT column_name FROM table2;
Example: Using the above First and Second table.
Union All query will be like:
SELECT * FROM First
UNION ALL
SELECT * FROM Second;
The resultset table will look like:

ID NAME
1 Jack
2 Harry
3 Jackson
3 Jackson
4 Stephan
5 David
INTERSECT
It is used to combine two SELECT statements. The Intersect operation returns
the common rows from both the SELECT statements.
In the Intersect operation, the number of datatype and columns must be the
same.
It has no duplicates and it arranges the data in ascending order by default.
Syntax
SELECT column_name FROM table1
INTERSECT
SELECT column_name FROM table2;
Example:
Using the above First and Second table.
Intersect query will be:

SELECT * FROM First


INTERSECT
SELECT * FROM Second;
The result set table will look like:

ID NAME
3 Jackson
MINUS
It combines the result of two SELECT statements. Minus operator is used to
display the rows which are present in the first query but absent in the second
query.
It has no duplicates and data arranged in ascending order by default.
Syntax:
SELECT column_name FROM table1
MINUS
SELECT column_name FROM table2;
Example
Using the above First and Second table.
Minus query will be:
SELECT * FROM First
MINUS
SELECT * FROM Second;
The resultset table will look like:

ID NAME

1 Jack

2 Harry
JOIN OPERATIONS
A Join operation combines related tuples from different relations, if and
only if a given join condition is satisfied. It is denoted by ⋈.
Example:
EMPLOYEE

EMP_CODE EMP_NAME
101 Stephan
102 Jack
103 Harry
SALARY

EMP_CODE SALARY

101 50000
102 30000
103 25000

Operation: (EMPLOYEE ⋈ SALARY)

Result

EMP_COD EMP_NA SALARY


E ME

101 Stephan 50000


102 Jack 30000
103 Harry 25000
TYPES OF JOIN OPERATIONS:
NATURAL JOIN
A natural join is the set of tuples of all combinations in R and S that are
equal on their common attribute names.
It is denoted by ⋈.
Example: Let's use the above EMPLOYEE table and SALARY table:
Input:
∏EMP_NAME, SALARY (EMPLOYEE ⋈ SALARY)
Output:

EMP_NAME SALARY
Stephan 50000
Jack 30000
Harry 25000
OUTER JOIN
The outer join operation is an extension of the join operation. It is used
to deal with missing information.
Example:
EMPLOYEE

EMP_NAME STREET CITY

Ram Civil line Mumbai


Shyam Park street Kolkata
Ravi M.G. Street Delhi
Hari Nehru nagar Hyderabad
FACT_WORKERS

EMP_NA BRANCH SALARY


ME

Ram Infosys 10000


Shyam Wipro 20000
Kuber HCL 30000
Hari TCS 50000

Input: EMP_ STREE CITY BRAN SALA


(EMPLOYEE ⋈ FACT_WORKERS)
NAME T CH RY

Output: Ram Civil Mumb Infosy 10000


line ai s
Shyam Park Kolkat Wipro 20000
street a
Hari Nehru Hyder TCS 50000
nagar abad
An outer join is basically of three types:
1. Left outer join
2. Right outer join
3. Full outer join
a. Left outer join:
• Left outer join contains the set of tuples of all combinations in R and
S that are equal on their common attribute names.
• In the left outer join, tuples in R have no matching tuples in S.
• It is denoted by ⟕.
Example: Using the above EMPLOYEE table and FACT_WORKERS table
Input:
EMPLOYEE ⟕ FACT_WORKERS

EMP_NAME STREET CITY BRANCH SALARY

Ram Civil line Mumbai Infosys 10000


Shyam Park street Kolkata Wipro 20000
Hari Nehru street Hyderabad TCS 50000

Ravi M.G. Street Delhi NULL NULL


Right outer join:
• Right outer join contains the set of tuples of all combinations in R
and S that are equal on their common attribute names.
• In right outer join, tuples in S have no matching tuples in R.
• It is denoted by ⟖.
Example: Using the above EMPLOYEE table and FACT_WORKERS
Relation
Input:
EMPLOYEE ⟖ FACT_WORKERS
Output:
EMP_NAME BRANCH SALARY STREET CITY

Ram Infosys 10000 Civil line Mumbai

Shyam Wipro 20000 Park street Kolkata

Hari TCS 50000 Nehru Hyderabad


street
Kuber HCL 30000 NULL NULL
Full outer join:
Full outer join is like a left or right join except that it contains all rows
from both tables.
In full outer join, tuples in R that have no matching tuples in S and
tuples in S that have no matching tuples in R in their common
attribute name.
It is denoted by ⟗.
Example: Using the above EMPLOYEE table and FACT_WORKERS
table
Input: EMPLOYEE ⟗ FACT_WORKERS
EMP_NAME STREET CITY BRANCH SALARY
Output:

Ram Civil line Mumbai Infosys 10000

Shyam Park street Kolkata Wipro 20000

Hari Nehru street Hyderabad TCS 50000

Ravi M.G. Street Delhi NULL NULL

Kuber NULL NULL HCL 30000


Equi join:
It is also known as an inner join. It is the most common join. It is
based on matched data as per the equality condition. The equi join
uses the comparison operator(=).
Example: PRODUCT
CUSTOMER RELATION
CLASS_ID NAME PRODUCT_ID CITY

1 John 1 Delhi
2 Harry 2 Mumbai
3 Jackson 3 Noida

Input:
CUSTOMER ⋈ PRODUCT
Output:

CLASS_ID NAME PRODUCT_ID CITY

1 John 1 Delhi
2 Harry 2 Mumbai
3 Harry 3 Noida

You might also like