ER Diagram Lecture1
ER Diagram Lecture1
ER Diagram stands for Entity Relationship Diagram, also known as ERD is a diagram that
displays the relationship of entity sets stored in a database.
In other words, ER diagrams help to explain the logical structure of databases.
ER diagrams are created based on three basic concepts: entities, attributes and
relationships.
ER Diagrams contain different symbols that use:
        • rectangles to represent entities,
        • ovals to define attributes and
        • diamond shapes to represent relationships.
At first look, an ER diagram looks very similar to the flowchart. However, ER Diagram
includes many specialized symbols, and its meanings make this model unique.
The purpose of ER Diagram is to represent the entity framework infrastructure.
                            Entity Relationship Diagram Example
What is ER Model?
ER Model stands for Entity Relationship Model is a high-level conceptual data model
diagram.
ER model helps to systematically analyze data requirements to produce a well-designed
database.
The ER Model represents real-world entities and the relationships between them.
Creating an ER Model in DBMS is considered as a best practice before implementing your
database.
ER Modeling helps you to analyze data requirements systematically to produce a well-
designed database.
So, it is considered a best practice to complete ER modeling before implementing your
database.
History of ER models
ER diagrams are visual tools that are helpful to represent the ER model. Peter Chen proposed ER
Diagram in 1971 to create a uniform convention that can be used for relational databases and
networks. He aimed to use an ER model as a conceptual modeling approach.
There are some sub-elements that are based on the main elements in the ERD Diagram.
ER Diagram is a visual representation of data that describes how data is related to each other using
different ERD Symbols and Notations.
  1. Entities
    • Weak Entity
  2. Attributes
    •   Key Attribute
    •   Composite Attribute
    •   Multivalued Attribute
    •   Derived Attribute
  3. Relationships
    • One-to-one Relationships
    • One-to-Many Relationships
    • Many-to-Many Relationships
ER Diagram Examples
For example, in a University database, we might have entities for Students, Courses, and Lecturers.
Students entity can have attributes like Rollno, Name, and DeptID. They might have relationships with
Courses and Lecturers.
It may be a physical thing or simply a fact about the enterprise or an event that happens in the real
world.
An entity can be place, person, object, event or a concept, which stores data in the database.
The characteristics of entities are must have an attribute, and a unique key.
Examples of entities:
An entity set is a group of similar kind of entities. It may contain entities with attribute sharing similar
values. Entities are represented by their properties, which also called attributes. All attributes have their
separate values. For example, a student entity may have a name, age, class, as attributes.
Example of Entities:
A university may have some departments. All these departments employ various lecturers and offer
several programs.
Some courses make up each program. Students register in a particular program and enroll in various
courses. A lecturer from the specific department takes each course, and each lecturer teaches a various
group of students.
Relationship
Relationship is nothing but an association among two or more entities. E.g., Tom works in the Chemistry
department.
Entities take part in relationships. We can often identify relationships with verbs or verb phrases.
For example:
Weak Entities
A weak entity is a type of entity which doesn’t have its key attribute. It can be identified uniquely by
considering the primary key of another entity. For that, weak entity sets need to have participation.
In above ER Diagram examples, “Trans No” is a discriminator within a group of transactions in an ATM.
Let’s learn more about a weak entity by comparing it with a Strong Entity
For example, a lecture might have attributes: time, date, duration, place, etc.
Cardinality
Defines the numerical attributes of the relationship between two entities or entity sets.
  •   One-to-One Relationships
  •   One-to-Many Relationships
  •   May to One Relationships
  •   Many-to-Many Relationships
1.One-to-one:
One entity from entity set X can be associated with at most one entity of entity set Y and vice versa.
Example: One student can register for numerous courses. However, all those courses have a single line
back to that one student.
2.One-to-many:
One entity from entity set X can be associated with multiple entities of entity set Y, but an entity from
entity set Y can be associated with at least one entity.
3. Many to One
More than one entity from entity set X can be associated with at most one entity of entity set Y. However,
an entity from entity set Y may or may not be associated with more than one entity from entity set X.
One entity from X can be associated with more than one entity from Y and vice versa.
For example, Students as a group are associated with multiple faculty members, and faculty members
can be associated with multiple students.
  •   Student
  •   Course
  •   Professor
Once, you have a list of Attributes, you need to map them to the identified entities. Ensure an attribute is
to be paired with exactly one entity. If you think an attribute should belong to more than one entity, use
a modifier to make it unique.
Once the mapping is done, identify the primary Keys. If a unique key is not readily available, create one.
                                     Entity Primary Key     Attribute
                                    Student Student_ID    StudentName
                                    Professor Employee_ID ProfessorName
                                    Course Course_ID      CourseName
For Course Entity, attributes could be Duration, Credits, Assignments, etc. For the sake of ease we have
considered just one attribute.
Summary
 •   ER Model in DBMS stands for an Entity-Relationship model
 •   The ER model is a high-level data model diagram
 •   ER diagrams are a visual tool which is helpful to represent the ER model
 •   ER diagrams in DBMS are blueprint of a database
 •   Entity relationship diagram DBMS displays the relationships of entity set stored in a database
 •   ER diagrams help you to define terms related to entity relationship modeling
 •   ER Model in DBMS is based on three basic concepts: Entities, Attributes & Relationships
 •   An entity can be place, person, object, event or a concept, which stores data in the database (DBMS)
 •   Relationship is nothing but an association among two or more entities
 •   A weak entity is a type of entity which doesn’t have its key attribute
 •   It is a single-valued property of either an entity-type or a relationship-type
 •   It helps you to defines the numerical attributes of the relationship between two entities or entity
     sets
 •   ER- Diagram DBMS is a visual representation of data that describe how data is related to each other
 •   While Drawing ER diagrams in DBMS, you need to make sure all your entities and relationships are
     properly labeled.
                                   More Examples:
# ER Diagrams Examples of Common Scenarios
#2 ER Diagram of Hotel Management System
The main entities of the Hotel Management System are a hotel, rooms, services, payments,
bookings, and customers.
All the entities are normalized, and the duplicity of records is reduced. Furthermore, there are one-
to-one and one-to-many relationships.
#3 ER Diagram of Database - University Database
A university database consists of all the information regarding a student. Although such a
database is not suitable for a large institution, it illustrates relationships that help resolve queries.
In this example, we can again see one-to-one and one-to-many relationships. A member can
borrow many books, but only one reader can borrow one book. So, the relationship is 1: Many.
#5 ER Diagram of Online Shopping System
The ER diagram given below is for an Online Shopping Management System. The purpose of this
ER diagram is to use a database and Java to create a good project.
We can observe some relationships between the entity and its attributes, such as the entity
mobile app and its domain name attribute. This shows that the project head will create the project
based on software. Besides, we can also find other relationships between customers and admin,
products and admin, etc.
#6 ER Diagram of One-to-Many Relationship
Following is an example of an ER diagram that is showing a one-to-many relationship.
  •   Delivery Entity: Attributes are delivery ID, order ID, type, status, departure, arrival.
  •   Customer Entity: Attributes are customer ID, phone, email, customer’s address.
  •   Payment Entity: Attributes are payment id, payment date, type, order ID, customer ID, total
      payment.
  •   Order Header Entity: Attributes are order ID, order date, order time, and customer ID.
  •   Order Line Entity: Attributes are order id, line id, pizza id, and quantity.
  •   Pizza Entity: Attributes are pizza id, name, specification, and price.
You can observe the one-to-many relationships such as order time of order header entity is linked
to the payment type, payment date, and order id of the payment entity.
The ER diagram given below is for the Bank Management System. It illustrates critical information
about the bank.
You can observe different relationships, such as a branch offering many loans, so 1: N relationship.
Other relationships such as M: N can also be observed.
#8 ER Diagram of Hospital Management System
The below ER diagram is for a hospital management system. You can see the different entities and
how they relate to each other.
Entities and their Attributes
  •   Patient Entity: Attributes are social security number, name, insurance, date of admission,
      date of checking out.
  •   Doctors Entity: Attributes are dss#, name, specialization.
  •   Test Entity: Attributes are test_id, test_name, test date, test time, test result.
                                Specialization/generalization
We have discussed different types of relationships that can occur between entities.
Some entities have relationships that form a hierarchy.
For example, a shipping company can have different types of ships for its business. The relationship that
exists between the concept of the ship and the specific types of ships forms a hierarchy. The ship is called a
superclass. The specific types of ships are called subclasses.
Superclass: An entity type that represents a general concept at a high level.
Subclass: An entity type that represents a specific concept at lower levels.
A subclass is said to inherit from a superclass.
A subclass can inherit from many superclasses in the hierarchy.
When a subclass inherits from one or more superclasses, it inherits all their attributes.
In addition to the inherited attributes, a subclass can also define its own specific attributes.
A subclass also inherits participation in the relationship sets in which its superclass (higher-level entity)
participates.
The process of making a superclass from a group of subclasses is called generalization.
The process of making subclasses from a general concept is called specialization.
Specialization: A means of identifying sub-groups within an entity set which have attributes that are not
shared by all the entities (top-down).
Generalization: Multiple entity sets are synthesized into a higher-level entity set, based on common
features (bottom-up).
Representation of specialization/generalization in ER diagrams
A diamond notation is a common representation of specialization/generalization relationships in ER
diagrams.
                                                     Figure 1
As an example, let’s consider the following scenario:
Africa holds many historical artefacts in different locations. Each artefact is kept in a specific location. A
location can be a point, province, country or sub-region of Africa.
The scenario has a specialization relationship between the location and different specific types of locations
(i.e. point, province, country and sub-region). This specialization relationship is represented in the ER
diagram below.
                                                     Figure 2
To demonstrate generalization, let’s imagine that an Artefact is one of the examples of the African cultural
items. Another type of a cultural item is an Artist. It is clear to see that a cultural item is a superclass of an
artefact and artist. This generalization relationship can be represented in the ER diagram as show below.
Figure 3
Constraints on specialization/generalization
There are three constraints that may apply to a specialization/generalization: membership constraints,
disjoint constraints and completeness constraints.
  1. Membership constraints
      i.    Condition defined: Membership of a specialization/generalization relationship can be defined as
            a condition in the requirements e.g. tanker is a ship where cargo can be oil.
      ii.   User defined: Sometimes the designer can define the superclass-subclass relationship. This can
            be done to simplify the design model or represent a complex relationship that exists between
            entities.
  2. Disjoint constraints
      i. Disjoint: The disjoint constraint only applies when a superclass has more than one subclass. If the
            subclasses are disjoint, then an entity occurrence can be a member of only one of the subclasses,
        e.g. postgrads or undergrads, you cannot be both. To represent a disjoint superclass/subclass
        relationship, {Or} is used.
                                                 Figure 4
  ii. Overlapping: This applies when an entity occurrence may be a member of more than one subclass,
        e.g., student and staff; some people are both. {And} is used to represent the overlapping
        specialization/ generalization relationship in the ER diagram.
                                                 Figure 5
3. Completeness constraints
   i.   Total: Each superclass (higher-level entity) must belong to subclasses (lower-level entity sets), e.g.
        a student must be postgrad or undergrad. To represent completeness in the
        specialization/generalization relationship, the keyword {Mandatory} is used.
                                                     Figure 6
     ii.   Partial: Some superclasses may not belong to subclasses (lower-level entity sets), e.g. some
           people at University are neither student nor staff. The keyword {Optional} is used to represent a
           partial specialization/generalization relationship.
                                                     Figure 7
We can show both disjoint and completeness constraints in the ER diagram. Following our examples, we
can combine disjoint and completeness constraints.
                                                 Figure 8
Some members of a university are both students and staff. Not all members of the university are staff and
students.
                                                 Figure 9
A student in the university must be either an undergraduate or postgraduate, but not both.
                                                   Figure 10
Method 1
All the entities in the relationship are mapped to individual tables.
Student (Regno, name)
PosGrad (Regno, supervisor)
UnderGrad (Regno, points)
Method 2
Only subclasses are mapped to tables. The attributes in the superclass are duplicated in all subclasses.
PosGrad (Regno, name, supervisor)
UnderGrad (Regno, name, points)
This method is most preferred when inheritance is disjoint and complete, e.g. every student is either
PosGrad or UnderGrad and nobody is both.
Method 3
Only the superclass is mapped to a table. The attributes in the subclasses are taken to the superclass.
Student (Regno, name, supervisor, points)
This method will introduce null values. When we insert an undergraduate record in the table, the
supervisor column value will be null. In the same way, when we insert a postgraduate record in the table,
the points value will be null.
                                          Aggregation
Aggregation represents a {has} relationship between entity types, where one represents the {whole} and
the other the {partial}.
An example of aggregation is the Car and Engine entities. A car is made up of an engine. The car is the
whole and the engine is the part. Aggregation does not represent strong ownership. This means, a part can
exist on its own without the whole. There is no stronger ownership between a car and the engine. An
engine of a car can be moved to another car.
                                                  Figure 11
The “whole” part must be put at the end of the diamond. For example, the Car-Engine relationship would
be represented as shown below:
                                                 Figure 12
                                         Composition
Composition is a form of aggregation that represents an association between entities, where there is a
strong ownership between the “whole” and the “partial”. For example, a tree and a branch have a
composition relationship. A branch is 'part' of a 'whole' tree - we cannot cut the branch and add it to
another tree.
                                                 Figure 13
The example of the Tree-Branch relationship can be represented as shown below:
Figure 14