ER Model
The ER Model is a fundamental framework for designing and visualizing databases using entities, attributes, and relationships. It helps simplify the understanding of complex databases. The graphical representation of the ER Model is known as an ER Diagram.
What is an Entity?​
An entity is a real-world object that exists independently and possesses a unique identity.
In ER modeling, entities are depicted as rectangles. For example, in a database, entities could include Student
, Employee
, Customer
, etc.
The circular parts attached to the rectangle represent attributes, which are properties or characteristics of the entity.
Types of Entities​
Strong Entity​
A strong entity is one that exists independently. For example, a "Customer" can exist on its own in a database, having attributes like CustomerID, Name, and Address. These attributes uniquely identify each customer, making it a strong entity.
Weak Entity​
A weak entity cannot exist independently and relies on a strong entity for its existence. For instance, an "Order" entity typically depends on a "Customer" entity. Without a customer, the order wouldn't make sense. Weak entities often have a partial key that, when combined with the key of a strong entity, uniquely identifies each instance.
Entity Set​
An entity set is a collection of similar types of entities. For instance, the Customer
entity set would include all customers within a database. Each row in the entity set represents an individual entity.
Though entity set refers to the table, in practical terms, both "entity set" and "entity" are often used interchangeably to refer to the table itself.
Attributes​
Attributes define the properties or characteristics of an entity. They are represented as ovals connected to their respective entity rectangles.
Common Types of Attributes​
-
Simple: These attributes cannot be divided further. For example,
Age
is a simple attribute. -
Composite: Attributes that can be broken down into smaller parts. For instance, a
Name
attribute can be split intoFirst Name
andLast Name
. -
Single-Valued: Attributes that can hold only one value for each entity. For example, a
StudentID
is single-valued. -
Multi-Valued: Attributes that can have multiple values for each entity, such as
Phone Numbers
of a student. -
Derived: Attributes whose values can be derived from other attributes, like calculating
Age
fromDate of Birth
. -
NULL: Represents missing or unknown information for an attribute.
Relationships​
Relationships describe how entities are associated with each other. They are typically shown as diamond shapes connecting two or more entities. For instance, a "Teaches" relationship might connect "Teacher" and "Course" entities to show which teacher teaches which course.
Strong and Weak Relationships​
-
Strong Relationship: Occurs when all participating entities are strong entities. For example, the relationship between
Teacher
andCourse
is strong because both entities can exist independently. -
Weak Relationship: Involves at least one weak entity. For example,
Customer
andOrder
form a weak relationship becauseOrder
depends onCustomer
.
Degree of Relationship​
-
Unary: A relationship involving only one entity, such as an employee managing itself.
-
Binary: Involves two different entities, like
Teacher
teaching aCourse
. -
Ternary: Involves three different entities, for instance, a
Teacher
teaching aCourse
to aStudent
.
Relationship Constraints​
Mapping Cardinality​
Mapping cardinality defines the number of associations between entities through a relationship.
-
One to One: Each student is assigned one unique ID card.
-
One to Many: One person can own multiple vehicles.
-
Many to One: Many employees work in one department.
-
Many to Many: A teacher can teach multiple courses, and a course can be taught by multiple teachers.
Participation Constraints​
-
Total Participation: Every instance of an entity is involved in the relationship. For example, all loans are associated with some customer.
-
Partial Participation: Only some instances of an entity are involved. Some customers may not have any loans.
Extended ER Features​
Specialization​
Specialization is the process of defining a set of subclasses of an entity type, where each subclass contains specific attributes and relationships unique to that subclass.
For instance, consider a Person
entity that could be a Student
or a Professor
. Person
holds common attributes like Name
and Age
, while Student
has a Roll Number
and Professor
has a Salary
.
Specialization follows an isA relationship, similar to inheritance in object-oriented programming.
Generalization​
Generalization combines multiple entity types into a higher-level entity that represents their common features.
Instead of starting with a general Person
entity and specializing, you may begin with Student
and Professor
entities and realize they share common attributes, leading to the creation of a generalized Person
entity.
Aggregation​
Aggregation is a way to model a whole-part relationship between entities, simplifying complex relationships.
For example, consider an Employee
works on a Project
and needs a Machine
. Instead of having multiple relationships (e.g., Employee-Machine, Project-Machine), aggregation allows combining Employee
and Project
into a higher-level entity to relate it to Machine
.
Aggregation is often described as a relationship between relationships, which typically involve two or more entities.