0% found this document useful (0 votes)
23 views155 pages

Unit 2

This document outlines the concepts of data models, focusing on Entity-Relationship (E-R) diagrams, attributes, relationships, and cardinality in database design. It covers various types of attributes, relationships, and constraints, including weak entity sets, generalization, and specialization. Additionally, it provides exercises for drawing E-R diagrams and understanding mapping cardinality and participation constraints.

Uploaded by

Kirtan Parmar
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)
23 views155 pages

Unit 2

This document outlines the concepts of data models, focusing on Entity-Relationship (E-R) diagrams, attributes, relationships, and cardinality in database design. It covers various types of attributes, relationships, and constraints, including weak entity sets, generalization, and specialization. Additionally, it provides exercises for drawing E-R diagrams and understanding mapping cardinality and participation constraints.

Uploaded by

Kirtan Parmar
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/ 155

Unit-2

Data Models

• Prof. Hiren Raithatha


• Information Technology Department
 Outline
Looping
• Basic concept of E-R diagram
• Types of Attributes
• Mapping Cardinality
• Weak Entity Sets
• Extended E-R features
• Generalization and Specialization
• Constraints on Specialization and Generalization
• Aggregation
• E-R diagram of Hospital Management System
• Reduction to E-R Database Schema
• Database Models
• Integrity Constraints
Section - 1
Basic concepts
 What is Database Design?
 Database Design is a collection of processes that facilitate the designing, development, implementation and
maintenance of enterprise database management systems.
 What is E-R diagram?
 E-R diagram: (Entity-Relationship diagram)
 It is graphical (pictorial) representation of database.
 It uses different types of symbols to represent different objects of database.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 4


Entity
 An entity is a person, a place or an object.
Entity Name
 An entity is represented by a rectangle which contains the name of an entity.
 Entities of a college database are: Symbol
 Student
 Professor/Faculty
 Course
 Department
Student Faculty Course
 Result
 Class
 Subject

Exercise Write down the different entities of bank database.

Exercise Write down the different entities of hospital database.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 5


Entity Set
 It is a set (group) of entities of same type.
 Examples:
 All persons having an account in a bank
 All the students studying in a college
 All the professors working in a college
 Set of all accounts in a bank

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 6


Attributes
 Attribute is properties or details about an entity. Attribute
Name
 An attribute is represented by an oval containing name of an attribute.
 Attributes of Student are: Symbol
 Roll No
 Student Name Name
RollNo
 Branch
 Semester
 Address
 Mobile No Student
 Age
 SPI
 Backlogs

Exercise Write down the different attributes of Faculty entity.

Exercise Write down the different attributes of Account entity.


Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 7
Relationship
 Relationship is an association (connection) between several entities.
 It should be placed between two entities and a line connecting it to an entity.
 A relationship is represented by a diamond containing relationship's name.

Relationship
Name

Symbol

Student Issue Book

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 8


E-R Diagram of a Library System

Primary Key Primary Key


Attributes
RollNo Name BookNo Name
Relationship

Student Issue Book

Branch Sem Entities Author Price

Each and every entity must have one primary key attribute.
Relationship between 2 entities is called binary relationship.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 9


Ternary Relationship
ProjectID Project Name

Project

FacID Name RollNo Name

Faculty Guide Student

Branch Technology Branch Sem

Relationship between 3 entities is called ternary relationship.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 10


Exercise
 Draw an E-R diagram of following pair of entities
 Customer & Account
 Customer & Loan
 Doctor & Patient
 Student & Project
 Student & Teacher
 Note: Take four attributes per entity with one primary key attribute.
Keep proper relationship between two entities.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 11


Section - 2
Types of Attributes

Simple Attribute Composite Attribute


Cannot be divided into subparts Can be divided into subparts
E.g. RollNo, CPI E.g. Name
(first name, middle name, last name)
Address
(street, road, city)
Symbol Symbol Name

Roll No First name Last name

Middle name

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 13


Types of Attributes

Single-valued Attribute Multi-valued Attribute


Has single value Has multiple (more than one) value
E.g. RollNo, CPI E.g. PhoneNo
(person may have multiple phone nos)
EmailID
(person may have multiple emails)
Symbol Symbol

Roll No Phone No

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 14


Types of Attributes

Stored Attribute Derived Attribute


It’s value is derived or calculated from
It’s value is stored manually in database
other attributes
E.g. Birthdate E.g. Age
(can be calculated using current date and
birthdate)
Symbol Symbol
Birthdate Age

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 15


Entity with all types of Attributes

Middle
Name
First Name Last Name
Single
Simple
Value
RollNo Name Composite Apartment
Derived Composite

Age Student Address Street

Multiple Stored
Value
Phone No Birth Date Area

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 16


Exercise
 Draw an E-R diagram of Banking Management System.
 Draw an E-R diagram of Hospital Management System.
 Draw an E-R diagram of College Management System.
 Take only 2 entities
 Keep proper relationship between two entities
 Use all types of attributes

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 17


Descriptive Attribute
 Attributes of the relationship is called descriptive attribute.

Descriptive
Attribute

Issue
RollNo Name Date BookNo Name

Student Issue Book

Branch Sem Author Price

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 18


Role
 Roles are indicated by labeling the lines that connect diamonds (relationship) to rectangles
(entity).
 The labels “Coordinator” and “Head” are called roles; they specify Faculty entities interact with
whom via Reports_To relationship set.
 Role labels are optional, and are used to clarify semantics (meaning) of the relationship.

EmpID Name

Coordinator
Faculty Reports_To
Head

Branch Experience

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 19


Recursive Relationship Set
 The same entity participates in a relationship set more than once then it is called recursive
relationship set.
FacID FName DeptID DName

Faculty Works Department

Post Recursive
Relationship
FName Post Set DName
Ajay Professor Prof. Computer
Haresh Professor Civil
Ramesh HOD Mechanical

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 20


Section - 3
Mapping Cardinality (Cardinality Constraints)
 It represents the number of entities of another entity set which are connected to an entity
using a relationship set.
 It is most useful in describing binary relationship sets.
 For a binary relationship set the mapping cardinality must be one of the following types:
 One to One
 One to Many
 Many to One
 Many to Many

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 22


One-to-One relationship (1 – 1)
 An entity in A is associated with only one entity in B and an entity in B is associated with only
one entity in A.

customer borrow loan


A1 B1
C1 L1
A2 B2
C2 L2

C3 L3
A B

 Example: A customer is connected with only one loan using the relationship borrower and a
loan is connected with only one customer using borrower.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 23


One-to-Many relationship (1 – N)
 An entity in A is associated with more than one entities in B and an entity in B is associated
with only one entity in A.

customer borrow loan


A1 B1
C1 L1
A2 B2
C2 L2

C3 L3
A B
L4

 Example: A loan is connected with only one customer using borrower and a customer is
connected with more than one loans using borrower.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 24


Many-to-One relationship (N – 1)
 An entity in A is associated with only one entity in B and an entity in B is associated with more
than one entities in A.

customer borrow loan


A1 B1
C1 L1
A2 B2
C2 L2

C3 L3
A B
C4

 Example: A loan is connected with more than one customer using borrower and a customer is
connected with only one loan using borrower.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 25


Many-to-Many relationship (N – N)
 An entity in A is associated with more than one entities in B and an entity in B is associated
with more than one entities in A.

customer borrow loan


A1 B1
C1 L1
A2 B2
C2 L2

C3 L3
A B
C4 L4

 Example: A customer is connected with more than one loan using borrower and a loan is
connected with more than one customer using borrower.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 26


Mapping Cardinality (Cardinality Constraints) [Exercise]
 Draw an E-R diagram and specify which type of mapping cardinality will be there in the
following examples:
 Each customer has only one account in the bank and each account is held by only one customer. [single
account]
 Each customer has only one account in the bank but an account can be held by more than one customer.
[joint account]
 A customer may have more than one account in the bank but each account is held by only one customer.
[multiple accounts]
 A customer may have more than one account in the bank and each account is held by more than one
customer. [join account as well as multiple accounts]
 A student can work in more than one project and a project can be done by more than one student.
 A student can issue more than one book but a book is issued to only one student.
 A subject is taught by more than one faculty and a faculty can teach more than one subject.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 27


Section - 4
Participation Constraints
 It specifies the participation of an entity set in a relationship set.
 There are two types participation constraints
 Total participation
 Partial participation

Partial participation Total participation


• some entities in the entity set may not participate in • every entity in the entity set participates in at least
any relationship in the relationship set. one relationship in the relationship set.
• indicated by single line • indicated by double line

customer borrow loan

C1 L1
Each customer has
maximum one loan C2 L2

C3
Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 29
Section - 5
Weak Entity Set
 An entity set that does not have a primary key is called weak entity set.

Payment-date

loan-no amount payment-no Payment-amount

loan L_P payment

Strong Entity Weak Entity Weak Entity


Set Relationship Set

• Weak entity set is indicated by double rectangle.


• Weak entity relationship set is indicated by double diamond.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 31


Weak Entity Set
 The existence of a weak entity set depends on the existence of a strong entity set.
 The discriminator (partial key) of a weak entity set is the set of attributes that distinguishes all
the entities of a weak entity set.
 The primary key of a weak entity set is created by combining the primary key of the strong
entity set on which the weak entity set is existence dependent and the weak entity set’s
discriminator.
 We underline the discriminator attribute of a weak entity set with a dashed line.
 Payment entity has payment-no which is discriminator.
 Loan entity has loan-no as primary key.
 So primary key for payment is (loan-no, payment-no).

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 32


Section - 6
Superclass v/s Subclass
Super Class Sub Class
A superclass is an entity from which another A subclass is an entity that is derived from
entities can be derived. another entity.
E.g, E.g,
an entity account has two subsets saving_account and current_account entities
saving_account and current_account are derived from entity account.
So an account is superclass. So saving_account and current_account are
subclass.
Account Super Class

Saving_Account Current_Account

Sub Class
Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 34
Section - 7
Generalization v/s Specialization
Generalization Specialization
It extracts the common features of multiple It splits an entity to form multiple new entities
entities to form a new entity. that inherit some feature of the splitting entity.
Name Address Name Address

SPI Salary
Person Person
Name Name
ISA ISA
Address Address
Bottom-up approach

Student Faculty Student Faculty

SPI Salary SPI Salary

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 36


Generalization v/s Specialization
Generalization Specialization
The process of creation of group from various The process of creation of sub-groups within
entities is called generalization. an entity is called specialization.
It is Bottom-up approach. It is Top-down approach.
The process of taking the union of two or more The process of taking a sub set of higher level
lower level entity sets to produce a higher level entity set to form a lower level entity set.
entity set.
It starts from the number of entity sets and It starts from a single entity set and creates
creates high level entity set using some different low level entity sets using some
common features. different features.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 37


Generalization & Specialization example

Name Address

PID City
Person

ISA

Salary Employee Customer Balance

ISA

Full Time Part Time

Days Worked Hour Worked

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 38


Exercise
 Give the examples of Generalization/Specialization in the following E-R diagram:
 Hospital Management System.
 College Management System.
 Bank Management System.
 Insurance Company.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 39


Section - 8
Constraints on Specialization and Generalization

Constraints

Disjoint Participation

Non-disjoint Total Partial


Disjoint
(Overlapping) (Mandatory) (Optional)

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 41


Disjoint Constraint
 It describes relationship between members of the superclass and subclass and indicates
whether member of a superclass can be a member of one, or more than one subclass.
 Types of disjoint constraints
 Disjoint Constraint
 Non-disjoint (Overlapping) Constraint

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 42


Disjoint Constraint
 It specifies that the entity of a super class can belong to only one lower-level entity set (sub
class).
 Specified by ‘d’ or by writing disjoint near to the ISA triangle.
Employee
Cricketer (Super class)
(Super class)

Disjoint
Batsman Bowler ISA
(Sub class) (Sub class)

Full-time Part-time
(Sub class) (Sub class)

All the players are associated with only one sub class either (Batsman or Bowler).

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 43


Non-disjoint (Overlapping) Constraint
 It specifies that an entity of a super class can belong to more than one lower-level entity set
(sub class).
 Specified by ‘o’ or by writing overlapping near to the ISA triangle.
Employee
Cricketer (Super class)
(Super class)

Non-disjoint
Batsman Bowler ISA
(Sub class) (Sub class)

Faculty Head
(Sub class) (Sub class)

One player (Yuvraj singh) is associated with more than one sub class.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 44


Constraints on Specialization and Generalization

Constraints

Disjoint Participation

Non-disjoint Total Partial


Disjoint
(Overlapping) (Mandatory) (Optional)

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 45


Participation (Completeness) Constraint
 It determines whether every member of super class must participate as a member of subclass
or not.
 Types of participation (Completeness) Constraint
 Total (Mandatory) participation
 Partial (Optional) participation

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 46


Total (Mandatory) Participation
 Total participation specifies that every entity in the superclass must be a member of some
subclass in the specialization.
 Specified by a double line in E-R diagram.
Employee
Cricketer (Super class)
(Super class)

Batsman Bowler ISA


(Sub class) (Sub class)

Professor Head
(Sub class) (Sub class)

All the players are associated with minimum one sub class either (Batsman or Bowler).

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 47


Partial (Optional) Participation
 Partial participation specifies that every entity in the super class does not belong to any of the
subclass of specialization.
 Specified by a single line in E-R diagram.
Employee
Cricketer (Super class)
(Super class)

Batsman Not associated with Bowler ISA


(Sub class) any sub class (Sub class)

Professor Head
(Sub class) (Sub class)

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 48


Section - 9
Limitation of E-R diagram
 In E-R model we cannot express relationships between two relationships.

Relation 1 Relation Relation 2

Entity 1 Relation Entity 2

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 50


Limitation of E-R diagram

Customer
Company

Employee Works Department


Customer
Can not connect two relationship

Borrow Borrow

Loan Loan

Process of creating an entity by combining various components of


E-R diagram is called aggregation.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 51


Section - 10
E-R diagram of Hospital Management System

MRID
PatID Name HosID Name

Medical Record Has Patient Admitted Hospital

Report Name ISA Has

Indoor Outdoor
Doctor
RoomNo
IPDID OPDID DrID Dr Name
Charge

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 53


Section - 11
Reduce the E-R diagram to database schema

Step 1: Reduce Entities and Simple Attributes:

 An entity of an ER diagram is turned into a table. PersonID Name

 Each attribute (except multi-valued attribute) turns into


a column (attribute) in the table. Person
 Table name can be same as entity name.
 Key attribute of the entity is the primary key of the Address City
table which is usually underlined.
PhoneNo
 It is highly recommended that every table should start
with its primary key attribute conventionally named as
TablenameID. Person (PersonID, Name, Address, City)

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 55


Reduce the E-R diagram to database schema

Step 2: Reduce Multi-valued Attributes: PersonID PhoneNo

 Multi-value attribute is turned into a new table.


Person
 Add the primary key column into multi-value
attribute’s table.
PhoneNo (PhoneID, PersonID, PhoneNo)
 Add the primary key column of the parent entity’s
table as a foreign key within the new (multi-value
Person (T1)
attribute’s) table. Foreign Key

 Then make a 1:N relationship between the Person


table and PhoneNo table. Having

PhoneNo (T2)

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 56


Reduce the E-R diagram to database schema
WifeID WName
Step 3: Reduce 1:1 Mapping Cardinality:

 Convert both entities in to table with proper attribute. Wife

 Place the primary key of any one table in to the


another table as a foreign key. Having

 Place the primary key of the Wife table WifeID in the


Person
table Persons as Foreign key.
OR
PersonID PName
 Place the primary key of the Person table PersonID in
the table Wife as Foreign key. Person (PersonID, PName)
Wife (WifeID, Wname, PersonID)

Wife (WifeID, Wname)


Person (PersonID, Pname, WifeID)

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 57


Reduce the E-R diagram to database schema
HouseID HName
Step 4: Reduce 1:N Mapping Cardinality:

 Convert both entities in to table with proper attribute. House

 Place the primary key of table having 1 mapping in to


the another table having many cardinality as a Foreign Having
key.
Person
 Place the primary key of the Person table PersonID in
the table House as Foreign key.
PersonID PName

Person (PersonID, PName)


House (HouseID, Hname, PersonID)

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 58


Reduce the E-R diagram to database schema
ActNo Balance
Step 5: Reduce N:N Mapping Cardinality:

 Convert both entities in to table with proper attribute. Account

 Create a separate table for relationship.


Has_Acct
 Place the primary key of both entities table into the
relationship’s table as foreign key.
Customer
 Place the primary key of the Customer table CID and
Account table Ano in the table Has_Acct as Foreign
CID CName
key.
Customer (CID, CName)
Account (ActNo, Balance)
Has_Acct (HasAcctID, CID, ActNo)

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 59


Summery of Symbols used in E-R diagram

Customer Name Hold


Entity Attribute Relationship

EmpID Age PhoneNo


Primary Key Derived Multi Valued
Attribute Attribute Attribute

Payment PymtID Issue

Weak Entity Discriminating Weak Entity


Attribute Relationship
Role
Name
E R E R ISA

Total Role Specialization/


Participation Indicator Generalization

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 60


Summery of Symbols used in E-R diagram

Disjoint
E R E ISA ISA
One to One Total Disjoint
Specialization/ Specialization/
E R E Generalization Generalization
One to Many

E R E Overlapping

Many to One ISA ISA


Partial Overlapping
E R E
Specialization/ Specialization/
Many to Many Generalization Generalization

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 61


Section - 12
What is a Database Models?
 A database model is a type of data model that defines the logical structure of a database.
 It determine how data can be stored, accessed and updated in a database management
system.
 The most popular example of a database model is the relational model, which uses a table-
based format.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 63


Type of Database Models

Hierarchical Model

Network Model

Entity-relationship Model

Relational Model

Object-oriented database Model


Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 64
Hierarchical Model
 The hierarchical model organizes data into a tree-like structure, where each record has a
single parent or root.
Department

Student Professor

 The hierarchy starts from the Root data, and expands like a tree, adding child nodes to the
parent nodes.
 In hierarchical model, data is organized into tree-like structure with one-to-many relationship
between two different types of data, for example, one department can have many professors
and many students.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 65


Network Model
 This is an extension of the hierarchical model, allowing many-to-many relationships in a tree-
like structure that allows multiple parents.

B C

D E F

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 66


Entity-relationship Model
 In this database model, relationships are created by dividing object of interest into entity and
its characteristics into attributes.

Attributes
RollNo Name BookNo Name
Relationship

Student Issue Book

Branch Sem Entities Author Price

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 67


Relational Model
 In this model, data is organized in two-dimensional tables and the relationship is maintained
by storing a common attribute.
Rno Student_Name Age SubID Subject_Name Teacher
101 Raj Patel 20 1 DBMS Doshi
102 Meet Shah 21 2 DS Vyash
Foreign Key Foreign Key

ResID Rno SubID Marks


1 101 1 80
2 101 2 85
3 102 1 75
4 102 2 80

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 68


Object-oriented database Model
 This data model is another method of representing real world objects.
 It considers each object in the world as objects and isolates it from each other.
 It groups its related functionalities together and allows inheriting its functionality to other
related sub-groups.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 69


Section - 13
Integrity Constraints
 Integrity constraints are a set of rules. It is used to maintain the quality of information.
 Integrity constraints ensure that the data insertion, updating, and other processes have to be
performed in such a way that data integrity is not affected.
 Thus, integrity constraint is used to guard against accidental damage to the database.
 Various Integrity Constraints are:
 Check
 Not null
 Unique
 Primary key
 Foreign key

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 71


Integrity Constraints
 Check
 This constraint defines a business rule on a column. All the rows in that column must satisfy this rule.
 Limits the data values of variables to a specific set, range, or list of values.
 The constraint can be applied for a single column or a group of columns.
 E.g. value of SPI should be between 0 to 10.
 Not null
 This constraint ensures all rows in the table contain a definite value for the column which is specified as not
null. Which means a null value is not allowed.
 E.g. name column should have some value.
 Unique
 This constraint ensures that a column or a group of columns in each row have a distinct (unique) value.
 A column(s) can have a null value but the values cannot be duplicated.
 E.g. enrollmentno column should have unique value.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 72


Integrity Constraints
 Primary key
 This constraint defines a column or combination of columns which uniquely identifies each row in the table.
 Primary key = Unique key + Not null
 E.g. enrollmentno column should have unique value as well as can’t be null.
 Foreign key (referential integrity constraint)
 A referential integrity constraint (foreign key) is specified between two tables.
 In the referential integrity constraints, if a foreign key column in table 1 refers to the primary key column of
table 2, then every value of the foreign key column in table 1 must be null or be available in primary key
column of table 2.

Foreign Key

DeptID Dept_Name HOD RollNo Student_Name DeptID


1 Computer Doshi 101 Raj Patel 1
2 IT Vyash 102 Meet Shah 2

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 73


Questions asked in Exam
1. Write a note on mapping cardinality in E-R diagram.
2. Explain the difference between a weak and a strong entity set.
3. Explain the difference between generalization and specialization. OR Explain specialization
and generalization concept in E-R diagram with suitable example.
4. Write a note on constraints on specialization and generalization.
5. Explain aggregation in E-R diagram with example.
6. What do you mean by integrity constraints? Discuss various integrity constraints.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 74


Questions asked in Exam [E-R diagrams]
7. Draw E-R diagram for Bank Management System.
8. Define E-R diagram. Draw an E-R diagram for Library Management System. Assume relevant
entities and attributes for the given system.
9. Construct an E-R diagram for a car-insurance company whose customers own one or more
cars each. Each car has associated with it zero to any number of recorded accidents.
10. Design a generalization–specialization hierarchy for a motor-vehicle sales company. The
company sells motorcycles, passenger cars, vans, and buses. Justify your placement of
attributes at each level of the hierarchy. Explain why they should not be placed at a higher or
lower level.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 75


Questions asked in Exam [E-R diagrams and Database]
11. Design a database for an airline. The database must keep track of customers and their
reservations, flights and their status, seat assignments on individual flights, and the schedule
and routing of future flights. Your design should include an E-R diagram, a set of relational
schemas, and a list of constraints, including primary-key and foreign-key constraints.
12. Design a database for a hospital with a set of patients and a set of medical doctors.
Associate with each patient a log of the various tests and examinations conducted. Your
design should include an E-R diagram, a set of relational schemas, and a list of constraints,
including primary-key and foreign-key constraints.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 76


 Outline
Looping
• 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
104 Nilesh EE 3 9
Records (7) 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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 79


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 81


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 82


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 83


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

Primary Key Alternate 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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 84


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.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 85


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 ProjectID 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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 86


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 88


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 90


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 91


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 92


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 93


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.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 94


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.

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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 96


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 97


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 98


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 99


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 Answer ∏ Name, Branch, SPI (σBranch=‘CE’ Λ SPI>7


(Student) (Student))
Output-1 Output-2
RollNo Name Branch SPI Name Branch SPI
101 Raju CE 8 Raju CE 8

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 100


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 101


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.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 102


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

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.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 104


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 105


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 106


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 108


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 109


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.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 110


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, (σFname=‘A.J.Shah’ (Student (Guide Faculty)))


Pname

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 111


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 112


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.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 114


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 115


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 116


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 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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 117


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 118


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 119


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 120
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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 122


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 123


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 124


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).
Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 125
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).
Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 126
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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 127
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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 128


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 129


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 130


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 131


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 132


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 133


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.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 135


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 136


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) ÷ (B3) Algebra (A) ÷ (B4)
Algebra (A) ÷ (B2)
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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 137


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
102 Meet Android
(Project)
103 Rohit Android Output

104 Suresh .NET Name


Meet
104 Suresh iPhone
104 Suresh Android

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 138


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 140


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 141


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 142


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 (ρA (Student) X ρB (Student))
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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 143


Rename Operator Example
Example Find out maximum CPI from student table.

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


Rno Name CPI (Student)))
101 Raj 8 Output-3
A.CPI
102 Meet 9
8
103 Jay 7
7
Step-2 σA.CPI<B.CPI (ρA (Student) X ρ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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 144


Rename Operator Example
Example Find out maximum CPI from student table.

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


Rno Name CPI (Student)))
101 Raj 8 Output-3
A.CPI
102 Meet 9
8
103 Jay 7
7

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


(Student)))
Student Output-3 Output
CPI A.CPI CPI
8 − 8 = 9
9 7
7
Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 145
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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 147


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

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 148


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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 149


Questions asked in External Exam
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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 150


Questions asked in External Exam [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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 151


Questions asked in External Exam [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. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 152


Questions asked in External Exam [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.
7. 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.
Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 153
Questions asked in External Exam [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.

Prof. Hiren Raithatha #202040302 (DBMS)  Unit 2 – Database Models 154


Thank
You

You might also like