ER Diagram is a visual representation of data that describes how data is related to each other. In ER Model, we disintegrate data into entities, attributes and setup relationships between entities, all this can be represented visually using the ER diagram.
For example, in the below diagram, anyone can see and understand what the diagram wants to convey: Developer develops a website, whereas a Visitor visits a website.
Entitiy, Attributes, Relationships etc form the components of ER Diagram and there are defined symbols and shapes to represent each one of them.
Let's see how we can represent these in our ER Diagram.
Simple rectangular box represents an Entity.
Rhombus is used to setup relationships between two or more entities.
Ellipse is used to represent attributes of any entity. It is connected to the entity.
A weak Entity is represented using double rectangular boxes. It is generally connected to another entity.
To represent a Key attribute, the attribute name inside the Ellipse is underlined.
Derived attributes are those which are derived based on other attributes, for example, age can be derived from date of birth.To represent a derived attribute, another dotted ellipse is created inside the main ellipse.
Double Ellipse, one inside another, represents the attribute which can have multiple values.
A composite attribute is the attribute, which also has attributes.
An Entity can be any object, place, person or class. In ER Diagram, an entity is represented using rectangles. Consider an example of an Organisation- Employee, Manager, Department, Product and many more can be taken as entities in an Organisation.
The yellow rhombus in between represents a relationship.
Weak entity is an entity that depends on another entity. Weak entity doesn't have anay key attribute of its own. Double rectangle is used to represent a weak entity.
An Attribute describes a property or characterstic of an entity. For example, Name, Age, Address etc can be attributes of a Student. An attribute is represented using eclipse.
Key attribute represents the main characterstic of an Entity. It is used to represent a Primary key. Ellipse with the text underlined, represents Key Attribute.
An attribute can also have their own attributes. These attributes are known as Composite attributes.
A Relationship describes relation between entities. Relationship is represented using diamonds or rhombus.
There are three types of relationship that exist between Entities.
Binary Relationship means relation between two Entities. This is further divided into three types.
This type of relationship is rarely seen in real world.
The above example describes that one student can enroll only for one course and a course will also have only one Student. This is not what you will usually see in real-world relationships.
The below example showcases this relationship, which means that 1 student can opt for many courses, but a course can only have 1 student. Sounds weird! This is how it is.
It reflects business rule that many entities can be associated with just one entity. For example, Student enrolls for only one Course but a Course can have many Students.
The above diagram represents that one student can enroll for more than one courses. And a course can have more than 1 student enrolled in it.
When an Entity is related with itself it is known as Recursive Relationship.
Relationship of degree three is called Ternary relationship.
A Ternary relationship involves three entities. In such relationships we always consider two entites together and then look upon the third.
For example, in the diagram above, we have three related entities, Company, Product and Sector. To understand the relationship better or to define rules around the model, we should relate two entities and then derive the third one.
A Company produces many Products/ each product is produced by exactly one company.
A Company operates in only one Sector / each sector has many companies operating in it.
Considering the above two rules or relationships, we see that although the complete relationship involves three entities, but we are looking at two entities at a time.