0% found this document useful (0 votes)
42 views70 pages

Node

Uploaded by

samijesus03
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)
42 views70 pages

Node

Uploaded by

samijesus03
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
You are on page 1/ 70

Fundamentals of Database systems (ITEC2071)

Chapter Six-
Relational Query
Languages

Information Technology
Jimma Institute of Technology
 Outline
Looping
• Basic of Relational Algebra and calculus
• Fundamental Operators and Syntax
▪ Selection
▪ Projection
▪ Cross Product OR Cartesian Product
▪ Joins
▪ Set Operators
▪ Division
▪ Rename
▪ Aggregate Functions
Basic of Relational Query
Section - 1
Relational Query Languages

 There are two types of query language:

1.Procedural Query language

2.Non-procedural query language

Chapter Six- Query Languages and Relational algebra 4


1. Relational Query language
 1. In procedural query language, user instructs the system to perform a series of
operations to produce the desired results.
 Here users tells what data to be retrieved from database and how to retrieve it.
 For example –
 Let’s take a real-world example to understand the procedural language, you are asking
your younger brother to make a cup of tea, if you are just telling him to make a tea and
not telling the process then it is a non-procedural language, however if you are telling the
step-by-step process like switch on the stove, boil the water, add milk etc. then it is a
procedural language.
 2. In Non-procedural query language, user instructs the system to produce the
desired result without telling the step-by-step process.
 Here users tells what data to be retrieved from database but doesn’t tell how to
retrieve it.
Chapter Six- Query Languages and Relational algebra 5
Relational Algebra Operations
Section - 2
Relational Algebra Operations
Operator Description
Selection Display particular rows/records/tuples from a relation
Projection Display particular columns from a relation
Cross Product Multiply each tuples of both relations
Combine data or records from two or more tables
1. Natural Join / Inner Join
Joins
2. Outer Join
1. Left Outer Join 2. Right Outer Join 3. Full Outer Join
Combine the results of two queries into a single result.
Set Operators
1. Union 2. Intersection 3. Minus / Set-difference
Division Divides one relation by another
Rename Rename a column or a table

Chapter Six- Query Languages and Relational algebra 7


Relational Algebra Operations
Selection Operator
Section - 2.1
Selection Operator
 Symbol: σ (Sigma)
 Notation: σ condition (Relation)
 Operation: Selects tuples from a relation that satisfy a given condition.
 Operators: =, <>, <, >, <=, >=, Λ (AND), V (OR)

Example Display the detail of students belongs to “CE” Branch. Answer σBranch=‘CE’ (Student)
Student Output
RollNo Name Branch SPI RollNo Name Branch SPI
101 Raju CE 8 101 Raju CE 8
102 Mitesh ME 9 104 Meet CE 9
103 Nilesh CI 9
104 Meet CE 9

Chapter Six- Query Languages and Relational algebra 9


Selection Operator [σ condition (Relation)]

Example Display the detail of students belongs to “CE” Branch and having SPI more than 8.

Student
RollNo Name Branch SPI
101 Raju CE 8
102 Mitesh ME 9
103 Nilesh CI 9
104 Meet CE 9

Answer σBranch=‘CE’ Λ SPI>8 (Student)


Output
RollNo Name Branch SPI
104 Meet CE 9

Chapter Six- Query Languages and Relational algebra 10


Selection Operator [σ condition (Relation)]
Example Display the detail of students belongs to either “CI” or “ME” Branch.

Student
RollNo Name Branch SPI
101 Raju CE 8
102 Mitesh ME 9
103 Nilesh CI 9
104 Meet CE 9

Answer σBranch=‘CI’ V Branch=‘ME’ (Student)


Output
RollNo Name Branch SPI
102 Mitesh ME 9
103 Nilesh CI 9

Chapter Six- Query Languages and Relational algebra 11


Selection Operator [σ condition (Relation)]
Example Display the detail of students whose SPI between 7 and 9.

Student
RollNo Name Branch SPI
101 Raju CE 8
102 Mitesh ME 9
103 Nilesh CI 9
104 Meet CE 9

Answer σSPI>7 Λ SPI<9 (Student)


Output
RollNo Name Branch SPI
101 Raju CE 8

Chapter Six- Query Languages and Relational algebra 12


Exercise
 Write down the relational algebra for the student table. Student
 Display the detail of students whose RollNo is less than 104. RollNo Name Branch SPI
 Display the detail of students having SPI more than 8. 101 Raj CE 6
 Display the detail of students belongs to “CE” Branch having SPI less 102 Meet ME 8
than 8.
103 Harsh EE 7
 Display the detail of students belongs to either “CE” or “ME” Branch.
 Display the detail of students whose SPI between 6 and 9. 104 Punit CE 9

Employee
 Write down the relational algebra for the employee table.
 Display the detail of all employee. EmpID Name Dept Salary
 Display the detail of employee whose Salary more than 10000. 101 Nilesh Sales 10000
 Display the detail of employee belongs to “HR” Dept having Salary more 102 Mayur HR 25000
than 20000.
103 Hardik HR 15000
 Display the detail of employee belongs to either “HR” or “Admin” Dept.
 Display the detail of employee whose Salary between 10000 and 25000 104 Ajay Admin 20000
and belongs to “HR” Dept.

Chapter Six- Query Languages and Relational algebra 13


Relational Algebra Operations
Projection Operator
Section - 2.2
Projection Operator
 Symbol: ∏ (Pi)
 Notation: ∏ attribute set (Relation)
 Operation: Selects specified attributes of a relation.
 It removes duplicate tuples (records) from the result.

Example Display RollNo, Name and Branch of all students. Answer ∏ RollNo, Name, Branch (Student)

Student Output
RollNo Name Branch SPI RollNo Name Branch
101 Raju CE 8 101 Raju CE
102 Mitesh ME 9 102 Mitesh ME
103 Nilesh CI 9 103 Nilesh CI
104 Meet CE 9 104 Meet CE

Chapter Six- Query Languages and Relational algebra 15


Exercise
 Write down the relational algebra for the student table. Student
 Display RollNo, Name and SPI of all students. RollNo Name Branch SPI
 Display Name and SPI of all students. 101 Raj CE 6
 Display the Name of all students. 102 Meet ME 8
 Display the Name of all branches.
103 Harsh EE 7
104 Punit CE 9

Employee
 Write down the relational algebra for the employee table.
 Display EmpID with Name of all employee. EmpID Name Dept Salary
 Display Name and Salary of all employee. 101 Nilesh Sales 10000
 Display the Name of all employee. 102 Mayur HR 25000
 Display the Name of all departments. 103 Hardik HR 15000
104 Ajay Admin 20000

Chapter Six- Query Languages and Relational algebra 16


Combined Projection & Selection Operation
Example Display RollNo, Name & Branch of “ME” Branch students.

Student
RollNo Name Branch SPI
101 Raju CE 8
102 Mitesh ME 9
103 Nilesh CI 9
104 Meet CE 7

Step-1 σBranch=‘ME’ (Student) Answer ∏ RollNo, Name, Branch (σBranch=‘ME’ (Student))


Output-1 Output-2
RollNo Name Branch SPI RollNo Name Branch
102 Mitesh ME 9 102 Mitesh ME

Chapter Six- Query Languages and Relational algebra 17


Combined Projection & Selection Operation
Example Display Name, Branch and SPI of students whose SPI is more than 8.

Student
RollNo Name Branch SPI
101 Raju CE 8
102 Mitesh ME 9
103 Nilesh CI 9
104 Meet CE 7

Step-1 σSPI>8 (Student) Answer ∏ Name, Branch, SPI (σSPI>8 (Student))


Output-1 Output-2
RollNo Name Branch SPI Name Branch SPI
102 Mitesh ME 9 Mitesh ME 9
103 Nilesh CI 9 Nilesh CI 9

Chapter Six- Query Languages and Relational algebra 18


Combined Projection & Selection Operation
Example Display Name, Branch and SPI of students who belongs to “CE” Branch and SPI is more than 7.

Student
RollNo Name Branch SPI
101 Raju CE 8
102 Mitesh ME 9
103 Nilesh CI 9
104 Meet CE 7

Step-1 σBranch=‘CE’ Λ SPI>7 (Student) Answer ∏ Name, Branch, SPI (σBranch=‘CE’ Λ SPI>7 (Student))
Output-1 Output-2
RollNo Name Branch SPI Name Branch SPI
101 Raju CE 8 Raju CE 8

Chapter Six- Query Languages and Relational algebra 19


Combined Projection & Selection Operation
Example Display Name of students along with their Branch who belong to either “ME” Branch or “CI” Branch.

Student
RollNo Name Branch SPI
101 Raju CE 8
102 Mitesh ME 9
103 Nilesh CI 9
104 Meet CE 7

Step-1 σBranch=‘ME’ V Branch=‘CI’ (Student) Answer ∏ Name, Branch (σBranch=‘ME’ V Branch=‘CI’ (Student))
Output-1 Output-2
RollNo Name Branch SPI Name Branch
102 Mitesh ME 9 Mitesh ME
103 Nilesh CI 9 Nilesh CI

Chapter Six- Query Languages and Relational algebra 20


Exercise
 Write down the relational algebra for the student table. Student
 Display Rollno, Name and SPI of all students belongs to “CE” Branch. RollNo Name Branch SPI
 List the Name of students with their Branch whose SPI is more than 8 101 Raj CE 6
and belongs to “CE” Branch.
102 Meet ME 8
 List the Name of students along with their Branch and SPI who belongs
to either “CE” or “ME” Branch and having SPI more than 8. 103 Harsh EE 7
 Display the Name of students with their Branch name whose SPI 104 Punit CE 9
between 7 and 9.
 Write down the relational algebra for the employee table. Employee
 Display the Name of employee belong to “HR” Dept and having salary EmpID Name Dept Salary
more than 20000. 101 Nilesh Sales 10000
 Display the Name of all “Admin” and “HR” Dept’s employee.
102 Mayur HR 25000
 List the Name of employee with their Salary who belongs to “HR” or
“Admin” Dept having salary more than 15000. 103 Hardik HR 15000
 Display the Name of employee along with their Dept name whose 104 Ajay Admin 20000
salary between 15000 and 30000.

Chapter Six- Query Languages and Relational algebra 21


Relational Algebra Operations
Cartesian Product / Cross Product
Section - 2.3
Cartesian Product / Cross Product
 Symbol: X (Cross)
 Notation: Relation-1 (R1) X Relation-2 (R2) OR Algebra-1 X Algebra-2
 Operation: It will multiply each tuples of Relation-1 to each tuples of Relation-2.
 Attributes of Resultant Relation = Attributes of R1 + Attributes of R2
 Tuples of Resultant Relation = Tuples of R1 * Tuples of R2

Example Perform Cross Product between Student and Result. Answer (Student) X (Result)

Student Result Output


RNo Name Branch RNo SPI Student.RNo Name Branch Result.RNo SPI
101 Raju CE 101 8 101 Raju CE 101 8
102 Mitesh ME 102 9 101 Raju CE 102 9
102 Mitesh ME 101 8
If both relations have some attribute with the same name, it can be
102 Mitesh ME 102 9
distinguished by combing relation-name.attribute-name.

Chapter Six- Query Languages and Relational algebra 23


Cartesian Product / Cross Product Example
Example Perform Cross Product between Student and Result. Consider only selected attributes
• Student – RNo, Name and Branch
Student Result • Result – RNo, SPI and BL
RNo Name Branch Sem RNo SPI BL Rank
101 Raju CE 3 101 8 1 2
102 Mitesh ME 5 103 9 0 1

Answer ∏ RNo, Name, Branch (Student) X ∏ RNo, SPI, BL (Result)


Output
Student.RNo Name Branch Result.RNo SPI BL
101 Raju CE 101 8 1
101 Raju CE 103 9 0
102 Mitesh ME 101 8 1
102 Mitesh ME 103 9 0

Chapter Six- Query Languages and Relational algebra 24


Cartesian Product / Cross Product Example
Example Perform Cross Product between Student and Result. Consider only selected tuples
• Student – Branch=‘CE’ and Sem=3
Student Result • Result – SPI>7 and BL<1
RNo Name Branch Sem RNo SPI BL Rank
101 Raju CE 3 101 8 1 2
102 Mitesh ME 5 103 9 0 1
103 Om CE 3 105 7 2 3
104 Dhara CE 5

Answer σBranch=‘CE’ Λ Sem=3 (Student) X σSPI>7 Λ BL<1 (Result)


Output
Student.RNo Name Branch Sem Result.RNo SPI BL Rank
101 Raju CE 3 103 9 0 1
103 OM CE 3 103 9 0 1

Chapter Six- Query Languages and Relational algebra 25


Relational Algebra Operations
Natural Join / Inner Join
Section - 2.4
Natural Join / Inner Join
 Symbol:
 Notation: Relation-1 (R1) Relation-2 (R2) OR Algebra-1 Algebra-2
 Operation: Natural join will retrieve consistent data from multiple relations.
 It combines records from different relations that satisfy a given condition.

Steps performed in Natural Join


Steps Description
Step – 1 It performs Cartesian Product
Step – 2 Then it deletes inconsistent tuples
Step – 3 Then it removes an attribute from duplicate attributes

Chapter Six- Query Languages and Relational algebra 27


Natural Join / Inner Join Example
Example Perform Natural Join between Student and Result. Answer (Student) (Result)

Student Result Output


RNo Name Branch RNo SPI RNo Name Branch SPI
101 Raju CE 101 8 101 Raju CE 8
102 Mitesh ME 103 9
To perform a Natural Join there must be one common
Steps performed in Natural Join attribute (column) between two relations.

Step:1 Perform Cross Product Step:2 Removes inconsistent tuples


Student.RNo Name Branch Result.RNo SPI Student.RNo Name Branch Result.RNo SPI
101 Raju CE 101 8 101 Raju CE 101 8
101 Raju CE 103 9 Step:3 Removes an attribute from duplicate
102 Mitesh ME 101 8 RNo Name Branch SPI
102 Mitesh ME 103 9 101 Raju CE 8

Chapter Six- Query Languages and Relational algebra 28


Natural Join / Inner Join Example
Example Perform Natural Join between Branch and Faculty. Answer (Branch) (Faculty)

Branch Faculty Output


BID BName HOD FID FName BID BID Bname HOD FID FName
1 CE Shah 101 Raj 1 1 CE Shah 101 Raj
2 ME Patel 103 Meet 2 2 ME Patel 103 Meet

To perform a Natural Join there must be one common attribute (column)


between two relations.

Chapter Six- Query Languages and Relational algebra 29


Write down relational algebra for the following tables/relations
 Relations
 Student (Rno, Sname, Address, City, Mobile)
 Department (Did, Dname)
 Academic (Rno, Did, SPI, CPI, Backlog)
 Guide (Rno, PName, Fid)
 Faculty (Fid, Fname, Subject, Did, Salary)

Example List the name of students with their department name and SPI of all student belong to “CE” department.

Answer ∏ Sname, Dname, SPI (σDname=‘CE’ (Student (Department Academic)))

Example Display the name of students with their project name whose guide is “A. J. Shah”.

Answer ∏ Sname, Pname (σFname=‘A.J.Shah’ (Student (Guide Faculty)))

Chapter Six- Query Languages and Relational algebra 30


Exercise: Write down relational algebra for the following tables/relations
 Relations
 Student (Rno, Sname, Address, City, Mobile)
 Department (Did, Dname)
 Academic (Rno, Did, SPI, CPI, Backlog)
 Guide (Rno, PName, Fid)
 Faculty (Fid, Fname, Subject, Did, Salary)
 List the name of students with their department name having backlog 0.
 List the name of faculties with their department name and salary having salary more than 25000 and
belongs to “CE” department.
 List the name of all faculties of “CE” and “ME” department whose salary is more than 50000.
 Display the students name with their project name of all “CE” department’s students whose guide is “Z.Z.
Patel”.
 Display the name of faculties with their department name who belongs to “CE” department and tough
“CPU” subject having salary more than 25000.
 List the name of students with their department name doing project “Hackathon” under guide “I. I. Shah”.

Chapter Six- Query Languages and Relational algebra 31


Relational Algebra Operations
Outer Join
Section - 2.5
Outer Join
 In natural join some records are missing, if we want that missing records then we have to use
outer join.
Three types of Outer Join
Sr. Outer Join Symbol
1 Left Outer Join
2 Right Outer Join
3 Full Outer Join

To perform a Outer Join there must be one common attribute (column)


between two relations.

Chapter Six- Query Languages and Relational algebra 33


Left Outer Join
 Symbol:
 Notation: Relation-1 (R1) Relation-2 (R2) OR Algebra-1 Algebra-2
 Operation:
 Display all the tuples of the left relation even though there is no matching tuple in the right relation.
 For such kind of tuples having no matching, the attributes of right relation will be padded with NULL in
resultant relation.
Example Perform Left Outer Join between Student and Result. Answer (Student) (Result)

Student Result Output


RollNo Name Branch RollNo SPI RollNo Name Branch SPI
101 Raj CE 101 8 101 Raj CE 8
102 Meet ME 103 9 102 Meet ME NULL

Exercise What is the output of (Result) (Student).

Chapter Six- Query Languages and Relational algebra 34


Left Outer Join Example
Example Perform Left Outer Join between Student and Result. (Display RollNo, Name and SPI)

Student Result
RollNo Name Branch RollNo SPI BL
101 Raj CE 101 8 1
102 Meet ME 103 9 0

Answer ∏ RollNo, Name, SPI ((Student) (Result))

Output
RollNo Name SPI
101 Raj 8
102 Meet NULL

Chapter Six- Query Languages and Relational algebra 35


Right Outer Join
 Symbol:
 Notation: Relation-1 (R1) Relation-2 (R2) OR Algebra-1 Algebra-2
 Operation:
 Display all the tuples of right relation even though there is no matching tuple in the left relation.
 For such kind of tuples having no matching, the attributes of left relation will be padded with NULL in
resultant relation.
Example Perform Right Outer Join between Student and Result. Answer (Student) (Result)

Student Result Output


RollNo Name Branch RollNo SPI RollNo Name Branch SPI
101 Raj CE 101 8 101 Raj CE 8
102 Meet ME 103 9 103 NULL NULL 9

Exercise What is the output of (Result) (Student).

Chapter Six- Query Languages and Relational algebra 36


Right Outer Join Example
Example Perform Right Outer Join between Student and Result. (Display RollNo, Name and SPI)

Student Result
RollNo Name Branch RollNo SPI BL
101 Raj CE 101 8 1
102 Meet ME 103 9 0

Answer ∏ RollNo, Name, SPI ((Student) (Result))

Output
RollNo Name SPI
101 Raj 8
103 NULL 9

Chapter Six- Query Languages and Relational algebra 37


Full Outer Join
 Symbol:
 Notation: Relation-1 (R1) Relation-2 (R2) OR Algebra-1 Algebra-2
 Operation:
 Display all the tuples of both of the relations. It also pads null values whenever required. (Left outer join +
Right outer join)
 For such kind of tuples having no matching, it will be padded with NULL in resultant relation.
Example Perform Full Outer Join between Student and Result. Answer (Student) (Result)

Student Result Output


RollNo Name Branch RollNo SPI RollNo Name Branch SPI
101 Raj CE 101 8 101 Raj CE 8
102 Meet ME 103 9 102 Meet ME NULL
103 NULL NULL 9
Exercise What is the output of (Result) (Student).

Chapter Six- Query Languages and Relational algebra 38


Full Outer Join Example
Example Perform Full Outer Join between Student and Result. (Display RollNo, Name and SPI)

Student Result
RollNo Name Branch RollNo SPI BL
101 Raj CE 101 8 1
102 Meet ME 103 9 0

Answer ∏ RollNo, Name, SPI ((Student) (Result))

Output
RollNo Name SPI
101 Raj 8
102 Meet NULL
103 NULL 9
Chapter Six- Query Languages and Relational algebra 39
Relational Algebra Operations
Set Operators
Section - 2.6
Set Operators
 Set operators combine the results of two or more queries into a single result.

Three types of Set Operators


Sr. Set Operator Symbol
1 Union U
2 Intersect / Intersection ∩
3 Minus / Set difference −

Conditions Set operators will take two or more queries as input, which must be union-compatible.

• Both queries should have same (equal) number of columns


• Corresponding attributes should have the same data type or domain

Chapter Six- Query Languages and Relational algebra 41


Conditions to perform Set Operators
Conditions-1 Both queries should have same (equal) number of columns.

Student Faculty Student Faculty


RNo Name Dept SPI FId Name Dept RNo Name Dept FId Name Dept
101 Raj CE 8 101 Patel CE 101 Raj CE 101 Patel CE
102 Meet ME 9 102 Shah ME 102 Meet ME 102 Shah ME
103 Jay CE 9 103 Dave ME 103 Jay CE 103 Dave ME

Conditions-2 Corresponding attributes should have the same data type.

Student Faculty Student Faculty


RNo Name Dept SPI FId Name Dept Sub RNo Name Dept SPI FId Name Dept Exp
101 Raj CE 8 101 Patel CE DS 101 Raj CE 8 101 Patel CE 5
102 Meet ME 9 102 Shah ME DBMS 102 Meet ME 9 102 Shah ME 3
103 Jay CE 9 103 Dave ME DF 103 Jay CE 9 103 Dave ME 4

Chapter Six- Query Languages and Relational algebra 42


Set Operators [Exercise]

Exercise Check whether following tables are compatible or not:

• A: (First_name(char), Last_name(char), Date_of_Birth(date))


• B: (FName(char), LName(char), PhoneNumber(number))
Χ (Not compatible) Both tables have 3 attributes but third attributes datatype is different.
• A: (First_name(char), Last_name(char), Date_of_Birth(date))
• B: (FName(char), LName(char), DOB(date))
✓ (Compatible) Both tables have 3 attributes and of same data type.
• Person (PersonID, Name, Address, Hobby)
• Professor (ProfessorID, Name, OfficeAddress, Salary)
ꭓ (Not compatible) Both tables have 4 attributes but forth attributes datatype is different.
∏ Name, Address (Person) & ∏ Name, OfficeAddress (Professor)
✓ (Compatible) Both tables have 2 attributes and of same data type.

Chapter Six- Query Languages and Relational algebra 43


Union Operator
 Symbol: U
 Notation: Relation-1 (R1) U Relation-2 (R2) OR Algebra-1 U Algebra-2
 Operation:
 It displays all the tuples/records belonging to the first relation (left relation) or the second relation (right
relation) or both.
 It also eliminates duplicate tuples (tuples present in both relations appear once).
Example Perform Union between Customer and Employee. Answer (Customer) U (Employee)
Customer Employee Output
Name Name Name
Raju Meet Manoj
Suresh Suresh Meet
Meet Manoj Raju
Suresh
Exercise Is there any difference in the output if we swap the tables in Union operator. (Employee) U (Customer).
Chapter Six- Query Languages and Relational algebra 44
Intersect/ Intersection Operator
 Symbol: ∩
 Notation: Relation-1 (R1) ∩ Relation-2 (R2) OR Algebra-1 ∩ Algebra-2
 Operation:
 It displays all the tuples/records belonging to both relations. OR
 It displays all the tuples/records which are common from both relations.

Example Perform Intersection between Customer and Employee. Answer (Customer) ∩ (Employee)
Customer Employee Output
Name Name Name
Raju Meet Meet
Suresh Suresh Suresh
Meet Manoj

Exercise Is there any difference in the output if we swap the tables in Intersection. (Employee) ∩ (Customer).
Chapter Six- Query Languages and Relational algebra 45
Minus/ Set difference Operator
 Symbol: −
 Notation: Relation-1 (R1) − Relation-2 (R2) OR Algebra-1 − Algebra-2
 Operation:
 It displays all the tuples/records belonging to the first relation (left relation) but not in the second relation
(right relation).

Example Perform Set difference between Customer and Employee. Answer (Customer) − (Employee)
Customer Employee Output
Name Name Name
Raju Meet Raju
Suresh Suresh
Meet Manoj

Exercise Is there any difference in the output if we swap the tables in Set difference. (Employee) − (Customer).
Chapter Six- Query Languages and Relational algebra 46
Union Operators Example

Example Display Name of person who are either employee or customer.


Customer Employee
ID Name Balance ID Name Dept Salary
1 Raju 10000 2 Suresh CE 8000
2 Suresh 20000 3 Manoj ME 9000

Answer ∏ Name (Customer) U ∏ Name (Employee)


Output
Name
Manoj
Raju
Suresh

Chapter Six- Query Languages and Relational algebra 47


Intersect/ Intersection Operators Example

Example Display Name of person who are employee as well as customer.


Customer Employee
ID Name Balance ID Name Dept Salary
1 Raju 10000 2 Suresh CE 8000
2 Suresh 20000 3 Manoj ME 9000

Answer ∏ Name (Customer) ∩ ∏ Name (Employee)


Output
Name
Suresh

Chapter Six- Query Languages and Relational algebra 48


Minus/ Set difference Operators Example

Example Display Name of person who are employee but not customer.
Customer Employee
ID Name Balance ID Name Dept Salary
1 Raju 10000 2 Suresh CE 8000
2 Suresh 20000 3 Manoj ME 9000

Answer ∏ Name (Employee) − ∏ Name (Customer)


Output
Name
Manoj

Chapter Six- Query Languages and Relational algebra 49


Minus/ Set difference Operators Example

Example Display Name of person who are customer but not employee.
Customer Employee
ID Name Balance ID Name Dept Salary
1 Raju 10000 2 Suresh CE 8000
2 Suresh 20000 3 Manoj ME 9000

Answer ∏ Name (Customer) − ∏ Name (Employee)


Output
Name
Raju

Chapter Six- Query Languages and Relational algebra 50


Set Operators [Exercise]
Exercise What is the output of following relational algebra for the below mentioned tables:

Customer Employee
ID Name Balance ID Name Dept Salary
1 Raju 10000 2 Suresh CE 8000
2 Suresh 20000 3 Manoj ME 9000

Algebra-1 ∏ ID, Name (Customer) U ∏ ID, Name (Employee)

Algebra-2 ∏ ID, Name, Balance (Customer) U ∏ ID, Name, Salary (Employee)

Algebra-3 ∏ ID, Name (Customer) ∩ ∏ ID, Name (Employee)

Algebra-4 ∏ ID, Name, Balance (Customer) ∩ ∏ ID, Name, Salary (Employee)

Chapter Six- Query Languages and Relational algebra 51


Set Operators [Exercise]
Exercise What is the output of following relational algebra for the below mentioned tables:

Customer Employee
ID Name Balance ID Name Dept Salary
1 Raju 10000 2 Suresh CE 8000
2 Suresh 20000 3 Manoj ME 9000

Algebra-1 ∏ ID, Name (Customer) − ∏ ID, Name (Employee)

Algebra-2 ∏ ID, Name, Balance (Customer) − ∏ ID, Name, Salary (Employee)

Algebra-3 ∏ ID, Name (Employee) − ∏ ID, Name (Customer)

Algebra-4 ∏ ID, Name, Balance (Employee) − ∏ ID, Name, Salary (Customer)

Chapter Six- Query Languages and Relational algebra 52


Relational Algebra Operations
Division Operator
Section - 2.7
Division Operator
 Symbol: ÷ (Division)
 Notation: Relation1 (R1) ÷ Relation2 (R2) OR Algebra1 ÷ Algebra2
 Condition:
 Attributes of relation2/algebra2 must be a proper subset of attributes of relation1/algebra1.
 Operation:
 The output of the division operator will have attributes =
All attributes of relation1 – All attributes of relation2
 The output of the division operator will have tuples =
Tuples in relation1, which are associated with the all tuples of relation2.

Chapter Six- Query Languages and Relational algebra 54


Division Operator Example
Example Perform Division operation between Student and Subject. Answer (Student) ÷ (Subject)

Student Subject Output


Name Subject Subject Name
Raj DBMS DBMS Rohit
Raj DS DS Suresh
Meet DS DF
Meet DF
Rohit DBMS
Rohit DS
Rohit DF
Suresh DBMS
Suresh DF
Suresh DS

Chapter Six- Query Languages and Relational algebra 55


Division Operator Example

A B1 B2 B3 B4
Sno PNo PNo PNo PNo PNo
S1 P1 P2 P2 P1 P2
S1 P2 P4 P2 P5
S1 P3 P4
S1 P4 Algebra (A) ÷ (B1) Algebra (A) ÷ (B2) Algebra (A) ÷ (B3) Algebra (A) ÷ (B4)
S2 P1
Output Output Output Output
S2 P2
SNo SNo SNo SNo
S3 P2
S1 S1 S1
S4 P2
S2 S4
S4 P4
S3
S5 P4
S4

Chapter Six- Query Languages and Relational algebra 56


Division Operator Example
Example List the name of students doing a project in all technologies.

Student Project
RNo Name Technology TID Technology
101 Raj .NET 1 .NET
101 Raj PHP 2 PHP
102 Meet .NET 3 Android
102 Meet PHP 4 iPhone
102 Meet iPhone
Answer ∏ Name, Technology (Student) ÷ ∏ Technology (Project)
102 Meet Android
103 Rohit Android Output

104 Suresh .NET Name


Meet
104 Suresh iPhone
104 Suresh Android

Chapter Six- Query Languages and Relational algebra 57


Relational Algebra Operations
Rename Operator
Section - 2.8
Rename Operator
 Symbol: ρ (Rho)
 Notation: ρA (X1,X2….Xn) (Relation)
 Operation:
 The rename operation is used to rename the output relation.
 The result of rename operator are also relations with new name.
 The original relation name can not be changed when we perform rename operation on any relation.
 How to use:
 ρ x (E)
Returns a relation E under a new name X.
 ρ A1, A2. …,An (E)
Returns a relation E with the attributes renamed to A1, A2, …., An.
 ρ x(A1, A2. …,An) (E)
Returns a relation E under a new name X with the attributes renamed to A1, A2, …., An.

Chapter Six- Query Languages and Relational algebra 59


Rename Operator Example
Example Rename table Example Rename attributes

Student Student
RNo Name CPI Rno Name CPI
101 Raj 8 101 Raj 8
102 Meet 9 102 Meet 9
103 Jay 7 103 Jay 7

Algebra ρPerson (Student) Algebra ρ(RollNo, StudentName, SPI) (Student)

Person Student
RNo Name CPI RollNo StudentName SPI
101 Raj 8 101 Raj 8
102 Meet 9 102 Meet 9
103 Jay 7 103 Jay 7

Chapter Six- Query Languages and Relational algebra 60


Rename Operator Example
Example Rename table and attributes both Example Rename particular attributes

Student Student
Rno Name CPI Rno Name CPI
101 Raj 8 101 Raj 8
102 Meet 9 102 Meet 9
103 Jay 7 103 Jay 7

Algebra ρPerson (RollNo, StudentName) (∏ RNo, Name (Student)) Algebra ρStudentName / Name (Student)

Person Student
RollNo StudentName Rno StudentName CPI
101 Raj 101 Raj 8
102 Meet 102 Meet 9
103 Jay 103 Jay 7

Chapter Six- Query Languages and Relational algebra 61


Relational Algebra Operations
Aggregate Functions
Section - 2.9
Aggregate Functions
 Symbol: g or G
 Notation: g function-name(column), function-name(column), …, function-name(column) (Relation)
 Operation:
 It takes a more than one value as input and returns a single value as output (result).
 Aggregate functions are:
 Sum (It returns the sum (addition) of the values of a column.)
 Max (It returns the maximum value for a column.)
 Min (It returns the minimum value for a column.)
 Avg (It returns the average of the values for a column.)
 Count (It returns total number of values in a given column.)

Chapter Six- Query Languages and Relational algebra 63


Aggregate Functions Example
Student
Example Find out sum of CPI of all students. Output
Rno Name Branch Semester CPI
sum
101 Ramesh CE 3 9 Answer g sum(CPI) (Student)
73
102 Mahesh EC 3 8
103 Suresh ME 4 7 Example Find out maximum & minimum CPI. Output
104 Amit EE 4 8 max min
Answer g max(CPI), min(CPI) (Student)
105 Anita CE 4 8 9 7

106 Reeta ME 3 7 Example Count the number of students. Output


107 Rohit EE 4 9 count
108 Chetan CE 3 8
Answer g count(Rno) (Student)
9
109 Rakesh CE 4 9
Example Find out average of CPI of all students. Output
avg
Answer g avg(CPI) (Student)
8.11

Chapter Six- Query Languages and Relational algebra 64


Relational Algebra [Exercise]
 Write down relational algebras for the following table:
▪ Employee (person-name, street, city)
▪ Works (person-name, company-name, salary)
▪ Company (company-name, city)
▪ Managers (person-name, manager-name)
 Find the names of all employees who work for “TCS”.
 Find the names and cities of residence of all employees who work for “Infosys”.
 Find the names, street and city of residence of all employees who work for “ITC” and earn more than $10,000
per annum.
 Find the names of all employees in this database who live in the same city as the company for which they
work.
 Find the names of all employees working in “TCS” who earn more than 25000 and less than 40000.
 Find the name of employee whose manager is “Ajay Patel” and salary is more than 50000.
 Display the name of employee with street, city, company name, salary and manager name staying in “Rajkot”
and working in “Ahmedabad”.
 Find maximum, minimum and average salary of all employee.
 Find out the total number of employee.

Chapter Six- Query Languages and Relational algebra 65


Homework [Relational Algebra]
1. Consider the following relational database, where the primary keys are underlined.
Give an expression in the relational algebra to express each of the following queries
▪ employee (ssn, name, dno, salary, hobby, gender)
▪ department (dno, dname, budget, location, mgrssn)
▪ works_on (ssn, pno)
▪ project (pno, pname, budget, location, goal)
I. List all pairs of employee names and the project numbers they work on.
II. List out department number, department name and department budget.
III. List all projects that Raj Yadav works on by project name.
IV. List the names of employees who supervise themselves.

Chapter Six- Query Languages and Relational algebra 66


Homework [Relational Algebra]
2. Consider the following relational database, where the primary keys are underlined. Give
an expression in the relational algebra to express each of the following queries
▪ course (course-id, title, dept_name, credits)
▪ instructor (id, name, dept_name, salary)
▪ section (course-id, sec-id, semester, year, building, room_no, time_slot_id)
▪ teaches (id, course-id, sec-id, semester, year)
I. Find the name of all instructors in the physics department.
II. Find all the courses taught in the fall 2009 semester but not in Spring semester.
III. Find the names of all instructors in the Comp. Sci. department together with the course
titles of all the courses that the instructors teach.
IV. Find the average salary in each department.

Chapter Six- Query Languages and Relational algebra 67


Homework [Relational Algebra]
3. Consider the following relations and write an relational algebra:
▪ EMP (empno, ename, jobtitle, managerno, hiredate, sal, commission, deptno)
▪ DEPT (deptno, dname, location)
I. Find the Employees working in the department number10, 20, 30 only.
II. Find Employees whose names start with letter A or letter a.
III. Find Employees along with their department name.
IV. Find the Employees who are working in Smith's department
V. Find the Employees who get salary more than Allen’s salary.
VI. Display employees who are getting maximum salary in each department.
VII. Find list of employees whose hire date is on or before 1-April-18.
4. Consider the relational database given below and give an expression in the relational algebra:
▪ Employee (person-name, street, city) , Works (person-name, company-name, salary)
▪ Company (company-name, city) , Manages (person-name, manager-name)
I. Find the names of all employees in this database who live in the same city as the company for which they
work.
II. Find the names, street address, and cities of residence of all employees who work for HCL and earn more
than $10,000 per annum.
Chapter Six- Query Languages and Relational algebra 68
Homework [Relational Algebra]
5. The relational database schema is given below and write the relational algebra expressions for
the given queries.
▪ employee (person-name, street, city)
▪ works (person-name, company-name, salary)
▪ company (company-name, city)
▪ manages (person-name, manager-name)
I. Find the names of all employees who work for First Bank Corporation.
II. Find the names and cities of residence of all employees who work for First Bank
Corporation.
III. Find the names, street address, and cities of residence of all employees who work for
First Bank Corporation and earn more than $10,000 per annum.
IV. Find the names of all employees in this database who do not work for First Bank
Corporation.

Chapter Six- Query Languages and Relational algebra 69


Fundamentals of Database systems (ITEC2071)

Thank
You

Information Technology
Jimma Institute of Technology

You might also like