Relational Algebra
Relational Algebra
1
Selection 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 =, ≠, ≥, <, >, ≤.
2
Selection Operation
For example: LOAN Relation
BRANCH_NAME LOAN_NO AMOUNT
3
Selection Operation
Input
σ BRANCH_NAME="perryride" (LOAN)
Output
4
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.
5
Project Operation
Example: CUSTOMER RELATION
6
Project Operation
Input:
∏ NAME, CITY (CUSTOMER)
Output:
NAME CITY
Jones Harrison
Smith Rye
Hays Harrison
Curry Rye
Johnson Brooklyn
Brooks Brooklyn
7
Union Operation
Suppose there are two tuples 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:
8
Union Operation
Example:
DEPOSITOR RELATION BORROW RELATION
CUSTOMER_NAME ACCOUNT_NO CUSTOMER_NAM LOAN_NO
E
Johnson A101 Jones L17
Smith A121 Smith L23
Mayes A321 Hayes L15
Turner A176 Jackson L14
Johnson A273 Curry L93
Jones A472 Smith L11
Lindsay A284 Williams L17
9
Union Operation
Input:
∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR)
CUSTOMER_NAME
Output: Johnson
Smith
Hayes
Turner
Jones
Lindsay
Jackson
Curry
Williams
Mayes 10
Set Intersection
Suppose there are two tuples R and S. The set intersection operation
contains all tuples that are in both R & S.
It is denoted by intersection ∩.
Notation: R ∩ S
Example: Using the above DEPOSITOR table and BORROW table.
Input:
∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEP
OSITOR)
CUSTOMER_NAME
Output:
Smith
Jones
11
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 (DEPOSITOR)
Output: CUSTOMER_NAME
Jackson
Hayes
Willians
12
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:
EMPLOYEE
EMP_ID EMP_NAME
DEPARTMENT
EMP_DEPT
DEPT_NO DEPT_NAME
1 Smith A
2 Harry C A Marketing
3 John B B Sales
C Legal
13
Cartesian product
Input:
EMPLOYEE X DEPARTMENT
Output: EMP_ID EMP_NAM EMP_DEPT DEPT_NO DEPT_NAM
E E
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
14
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)
15
Join Operation
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 SALARY
EMP_CODE EMP_NAME EMP_CODE SALARY
16
Operation: (EMPLOYEE ⋈ SALARY)
EMP_CODE EMP_NAME SALARY
17
Theta Join:
• The general case of JOIN operation is called a Theta join. It is denoted by symbol θ
• A ⋈θ B
• Theta join can use any conditions in the selection criteria
• Example: A ⋈ A.column 2 > B.column 2 (B)
18
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.
• 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.
• It is denoted by ⋈.
Example: Let's use the above EMPLOYEE table and SALARY table:
∏EMP_NAME, SALARY (EMPLOYEE ⋈ SALARY)
Output:
EMP_NAME SALARY
Stephan 50000
Jack 30000
Harry 25000
19
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:
CUSTOMER Relation PRODUCT
CLASS_ID NAME PRODUCT_ID CITY
1 John
1 Delhi
2 Harry
2 Mumbai
3 Jackson
3 Noida
20
Equi Join:
Input: CUSTOMER ⋈CLASS_ID=PRODUCT_ID PRODUCT
Output:
1 John 1 Delhi
2 Harry 2 Mumbai
3 Jackson 3 Noida
21
Outer Join:
• The outer join operation is an extension of the join operation. It is
used to deal with missing information.
• Example:
EMPLOYEE FACT_WORKERS
Output:
EMP_NAME STREET CITY BRANCH SALARY
23
Left Outer Join:
Input: EMPLOYEE ⟕ FACT_WORKERS
Output:
EMP_NAME STREET CITY BRANCH SALARY
24
Right Outer Join:
Input: EMPLOYEE ⟖ FACT_WORKERS
Output:
EMP_NAME BRANCH SALARY STREET CITY
25
Full Outer Join:
Input: EMPLOYEE ⟗ FACT_WORKERS
Output:
26
Examples:
27
28
29
30
31
32
33