0% found this document useful (0 votes)
243 views81 pages

Relational Algebra

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 81

Unit-3

Relational
Query
Languages
Outline

• Structure of Relational Databases
• Key
• Relational Algebra
• Fundamental Operators and Syntax
 Selection
 Projection
 Cross Product OR Cartesian Product
 Joins
 Set Operators
 Division
 Rename
 Aggregate Functions
• Open Source and Commercial DBMS
Section - 1
Structure of Relational Databases
Columns (5) Table (Relation): A database object that holds
a collection of data for a specific topic.
Student Table consist of rows and columns.
Attributes: RollNo Name Branch Semester SPI
Title of column Column (Attribute): The vertical component of a
101 Raju CE 3 8
table. A column has a name and a particular data

Cardinality = No of tuples (7)


102 Mitesh CI 3 7 type; e.g. varchar, decimal, integer, datetime etc.
Rows or 103 Mayur CE 3 6
Tuples or Record (Tuple): The horizontal component of a
Records (7) 104 Nilesh EE 3 9
table, consisting of a sequence of values, one for
105 Hitesh CI 3 7 each column of the table. It is also known as row.
106 Tarun ME 3 8
107 Suresh CE 3 9 A database consists of a collection of tables
(relations), each having a unique name.
Degree = No of columns (5)

Domain is a set of all possible unique values for a specific


column. Domain of Branch attribute is (CE, CI, ME, EE)

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Section - 2
Super Key
 A super key is a set of one or more attributes whose values uniquely identifies each
record
within a relation (table).
Super Key Super Key Super Key
EnrollNo (RollNo, Branch, Sem) (SPI, Name, BL)

EnrollNo RollNo Branch Sem SPI Name BL


190540107001 101 CE 3 8 Raju 0
190540107002 102 CE 3 7 Mitesh 1
190540106001 101 CI 3 6 Mayur 2
190540106002 102 CI 3 9 Nilesh 0
180540107001 101 CE 5 7 Hitesh 1
180540106001 101 CI 5 8 Tarun 0
180540106002 102 CI 5 9 Suresh 0

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Candidate Key
A candidate key is a subset of a super key.
A candidate key is a single attribute or the least combination of attributes that uniquely
identifies each record in the table.
A candidate key is a super key for which no proper subset is a super key.
Every candidate key is a super key but every super key is not a candidate key.

Candidate Key Candidate Key


EnrollNo (RollNo, Branch, Sem)

EnrollNo RollNo Branch Sem SPI Name BL


190540107001 101 CE 3 8 Raju 0
180540107002 101 CE 5 7 Mitesh 1
190540106001 101 CI 3 6 Mayur 2
180540106002 101 CI 5 9 Nilesh 0

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Primary Key
 A primary key is a candidate key that is chosen by database designer to identify tuples
uniquely in a relation (table).

Primary
Key
Candidate Key Candidate Key
EnrollNo (RollNo, Branch, Sem)

EnrollNo RollNo Branch Sem SPI Name BL


190540107001 101 CE 3 8 Raju 0
180540107002 101 CE 5 7 Mitesh 1
190540106001 101 CI 3 6 Mayur 2
180540106002 101 CI 5 9 Nilesh 0

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Alternate Key
 An alternate key is a candidate key that is not chosen by database designer to identify
tuples uniquely in a relation.

Primary Alternate
Key Key
Candidate Key Candidate Key
EnrollNo (RollNo, Branch, Sem)

EnrollNo RollNo Branch Sem SPI Name BL


190540107001 101 CE 3 8 Raju 0
180540107002 101 CE 5 7 Mitesh 1
190540106001 101 CI 3 6 Mayur 2
180540106002 101 CI 5 9 Nilesh 0

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Primary Key rules
A primary key may have one or more attributes.
There is only one primary key in the relation (table).
A primary key attribute value cannot be NULL.
Generally, the value of a primary key attribute does not
change.

10

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Foreign Key
A foreign key is used to link two relations (tables).
A foreign key is an attribute or collection of attributes in one table that refers to the primary
key in another table.
A table containing the foreign key is called the child table, and the table containing the primary
key is called the parent table.
Parent Child
Table
Table
Student Project
EnrollNo Name Branch Sem P rojectID Title EnrollNo
190540107001 Raju CE 3 101 Bank 190540107001
190540107002 Mitesh CE 3 102 College 190540107002
190540107003 Nilesh CE 3 103 School 190540107003
190540107004 Meet CE 3 104 Hospital 190540107001

11

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Section - 3
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
Joins 1. Natural Join / Inner Join
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

13

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Selection
Operator
Section - 3.1
Selection Operator
Symbol: σ (Sigma)

Notation: σ condition (Relation)


Operation: Selects tuples from a relation that satisfy a given
condition.
 Operators: =, <>, <, >, <=, >=, Λ (AND), V (OR)
Answer
Example Display the detail of students belongs to “CE” Branch. σ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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 15


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 16


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 17


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 18


Exercis
e
 Write down the relational algebra for the student Student

table. RollNo Name Branch SPI


 Display the detail of students whose RollNo is less than 104. 101 Raj CE 6
 Display the detail of students having SPI more than 8. 102 Meet ME 8
 Display the detail of students belongs to “CE” Branch having SPI less
103 Harsh EE 7
than 8.
 Display the detail of students belongs to either “CE” or “ME” Branch. 104 Punit CE 9
 Display the detail of students whose SPI between 6 and 9.
Employee

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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 19


Projection
Operator
Section - 3.2
Projection Operator
Symbol: ∏ (Pi)

Notation: ∏ attribute set (Relation)

Operation: Selects specified attributes of a relation.


It removes duplicate tuples (records) from the
result. Answer
∏ RollNo, Name, Branch (Student)
Example Display RollNo, Name and Branch of all students.
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

21

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Exercis
e
 Write down the relational algebra for the student Student

table. RollNo Name Branch SPI


 Display RollNo, Name and SPI of all students. 101 Raj CE 6
 Display Name and SPI of all students. 102 Meet ME 8
 Display the Name of all students.
103 Harsh EE 7
 Display the Name of all branches.
104 Punit CE 9

Employee
 Write down the relational algebra for the employee
table. EmpID Name Dept Salary

 Display EmpID with Name of all employee. 101 Nilesh Sales 10000
 Display Name and Salary of all employee. 102 Mayur HR 25000
 Display the Name of all employee. 103 Hardik HR 15000
 Display the Name of all departments.
104 Ajay Admin 20000

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 22


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 Answer
σBranch=‘ME’ (Student) ∏ RollNo, Name, Branch (σBranch=‘ME’ (Student))
Output-1 Output-2
RollNo Name Branch SPI RollNo Name Branch
102 Mitesh ME 9 102 Mitesh ME

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 23


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 24


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

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

Step-1 Answer
σBranch=‘CE’ Λ SPI>7 (Student) ∏ 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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 25


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 Answer
σBranch=‘ME’ V Branch=‘CI’ (Student) ∏ 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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 26


Exercis
e
 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.
Employee
 Write down the relational algebra for the employee table. EmpID Name Dept Salary
 Display the Name of employee belong to “HR” Dept and having salary 101 Nilesh Sales 10000
more than 20000.
102 Mayur HR 25000
 Display the Name of all “Admin” and “HR” Dept’s employee.
 List the Name of employee with their Salary who belongs to “HR” or 103 Hardik HR 15000
“Admin” Dept having salary more than 15000. 104 Ajay Admin 20000
 Display the Name of employee along with their Dept name whose salary
between 15000 and 30000.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 27


Cartesian Product / Cross
Product
Section - 3.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
Answer (Student) X (Result)
Example Perform Cross Product between Student and 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.

29

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


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

30

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


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

31

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Natural Join / Inner
Join
Section - 3.4
Natural Join / Inner Join
Symbol:
Notation: Relation-1 (R1) Relation-2 (R2) OR Algebra-2
Algebra-1
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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 33


Natural Join / Inner Join Example
Answer (Student) (Result)
Example Perform Natural Join between Student and 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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 34


Natural Join / Inner Join Example
Answer (Branch) (Faculty)
Example Perform Natural Join between Branch and 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.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 35


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 (Department Academic)))


∏ Sname, Dname, SPI (σDname=‘CE’ (Student

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

Answer (Guide Faculty)))


∏ Sname, Pname σ
( Fname=‘A.J.Shah’ (Student

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 36


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”.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 37


Outer
Join
Section - 3.5
Outer Join
 In natural join some records are missing, if we want that missing records than 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.

39

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Left Outer Join
Symbol:
Notation: Relation-1 Relation-2 (R2) OR Algebra-1 Algebra-
(R1) 2
Operation:
 Display all the tuples of the left relation even through 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).

40

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


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 (Result))
∏ RollNo, Name, SPI ((Student)
Output
RollNo Name SPI
101 Raj 8
102 Meet NULL

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 41


Right Outer Join
Symbol:
Notation: Relation-1 Relation-2 (R2) OR Algebra-1 Algebra-
(R1) 2
Operation:
 Display all the tuples of right relation even through 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).

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 42


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 (Result))
∏ RollNo, Name, SPI ((Student)

Output
RollNo Name SPI
101 Raj 8
103 NULL 9

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 43


Full Outer Join
Symbol:
Notation: Relation-1 Relation-2 (R2) OR Algebra-1 Algebra-
(R1) 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).

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 44


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 45


Set
Operators
Section - 3.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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 47


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 48


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
∏ Name, Address (Person)
different. ∏ Name, OfficeAddress (Professor)
• (Compatible) Both tables have 2 attributes and of same data type.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 49


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).
50

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


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.

Answer (Customer) ∩ (Employee)


Example Perform Intersection between Customer and 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).
51

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


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).

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 52


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 53


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 54


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 55


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 56


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)

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 57


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)

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 58


Division
Operator
Section - 3.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.

60

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 61


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 Outp Outp Outp
S2 P2 ut ut ut
SNo SN SN SN
S3 P2 o o o
S1 S1 S1
S4 P2
S2 S4
S4 P4
S3
S5 P4
S4

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 62


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
Name
104 Suresh .NET
Meet
104 Suresh iPhone
104 Suresh Android

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 63


Rename
Operator
Section - 3.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.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 65


Rename Operator Example
Example Rename Example Rename attributes
table
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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 66


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 ρ Algebra ρ
Person (RollNo, StudentName) (∏ RNo, Name (Student)) 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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 67


Rename Operator Example
Example Find out maximum CPI from student table. Step-1 ρA (Student) X ρB (Student)
Student Output-1
Rno Name CPI A.Rno A.Name A.CPI B.Rno B.Name B.CPI
101 Raj 8 101 Raj 8 101 Raj 8
102 Meet 9 101 Raj 8 102 Meet 9
103 Jay 7 101 Raj 8 103 Jay 7
102 Meet 9 101 Raj 8
Step-2 σA.CPI<B.CPI (ρ (Student) X ρ (Student))
A B
102 Meet 9 102 Meet 9
Output-2 102 Meet 9 103 Jay 7
A.Rno A.Name A.CPI B.Rno B.Name B.CPI 103 Jay 7 101 Raj 8
101 Raj 8 102 Meet 9 103 Jay 7 102 Meet 9
103 Jay 7 101 Raj 8 103 Jay 7 103 Jay 7
103 Jay 7 102 Meet 9

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 68


Rename Operator Example
Example Find out maximum CPI from student table.
Student
Step-3 ∏ A.CPI (σA.CPI<B.CPI (ρ (Student) X
A ρB (Student)))
Rno Name CPI
Output-3
101 Raj 8
A.CPI
102 Meet 9
8
103 Jay 7
7
Step-2 σA.CPI<B.CPI (ρ (Student) X
A ρB (Student))

Output-2
A.Rno A.Name A.CPI B.Rno B.Name B.CPI
101 Raj 8 102 Meet 9
103 Jay 7 101 Raj 8
103 Jay 7 102 Meet 9

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 69


Rename Operator Example
Example Find out maximum CPI from student table.
Student
Step-3 ∏ A.CPI (σA.CPI<B.CPI (ρ (Student) X
A ρB (Student)))
Rno Name CPI
Output-3
101 Raj 8
A.CPI
102 Meet 9
8
103 Jay 7
7

Step-4 ∏ CPI (Student) − ∏ A.CPI (σA.CPI<B.CPI (ρ (Student) X


A ρB (Student)))

Student Output-3 Output


CPI A.CPI CPI
8 − 8 = 9
9 7
7

70

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Aggregate
Functions
Section - 3.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.)

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 72


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
73
102 Mahesh EC 3 8 sum(n
t)CedPuStI()

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

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 73


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.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 74


Section - 4
Open Source and Commercial DBMS
Open Source Commercial DBMS
DBMS, which is available in the market at free DBMS, which is available in the market at a
of cost. certain price.
The code of open source DBMS product can be The code of commercial DBMS product can not
viewed, shared or modified by the community. be view, share or modify by the community.
There are chances of malfunctioning with code The security is high and code is not accessible
as source code is open. to unauthorized person.
Examples: MySQL, MongoDB, SQLite etc Examples: Microsoft SQL Server, IBM Db2 etc

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 76


Questions a
1. Define Super key, Primary key, Candidate key and Alternate key.
2. Explain following Relational Algebra Operation with example.
I. Selection
II. Projection
III. Cross Product
IV. Joins (Inner Join, Outer Joins)
V. Rename
VI. Division
VII. Set operators
3. Explain different aggregate functions with example.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 77


Questions
[Relational Algebra]
4. 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.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 78


Questions [Relational Algebra]
5. 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.

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES 79


Questions [Relational Algebra]

6. 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.
1. 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. 80

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES


Questions [Relational Algebra]
8. 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.

81

Prof. Firoz A Sherasiya #3130703 (DBMS)  UNIT 3 – RELATIONAL QUERY LANGUAGES

You might also like