1. Simple (or Atomic) Attributes
A simple attribute is one that cannot be divided further into sub-parts. It holds a single piece of data that represents a basic characteristic of an entity. These attributes are the most fundamental and are usually stored as-is in the database.
As we can see in the above example, the Student is an entity represented by a rectangle, and it consists of attributes: Roll_no, class, and Age. Also, there is a point to be noted that we can’t further subdivide the Roll_no attribute and even the other two attributes into sub-attributes. Hence, they are known as simple attributes of the Student entity.
Â
Why it’s important: Simple attributes are easy to implement and retrieve. They help form the backbone of most tables in relational databases.
2. Composite Attributes
A composite attribute is an attribute that can be split into smaller, meaningful sub-attributes. These sub-attributes represent more detailed information about the entity.
Â
As we can see in the above example, Address is a composite attribute represented by an elliptical shape, and it can be further subdivided into many simple attributes like Street, City, State, Country, Landmark, etc.
Â
Why it’s important: Composite attributes provide flexibility. For instance, a database can display the full name or just the last name, depending on the requirement.
3. Derived Attributes
A derived attribute is one whose value is not stored directly in the database but can be calculated from other stored values. These attributes help reduce redundancy and keep the data consistent.
For example, if you store a student’s DateOfBirth = 01-01-2000
, you don’t need to store their Age
because it can be derived by subtracting the date of birth from the current date.
Â
So, if the current year is 2025, Age = 2025 - 2000 = 25
.
Â
Why it’s important: Derived attributes reduce storage requirements and help maintain consistency. If you store both DateOfBirth
and Age
, and forget to update one of them, it may lead to inconsistent data.
4. Multivalued Attributes
A multivalued attribute is one that can have more than one value for a single entity. Instead of storing a single atomic value, these attributes can hold a set of values.
As we can see in the above example, the Student entity has four attributes: Roll_no and Age are simple as well as single-valued attributes as discussed above but Mob_no and Email_id are represented by co-centric ellipse are multi-valued attributes. Each student in the real world can provide more than one email as well as a mobile contact number, and therefore, we need these attributes to be multi-valued so that they can store multiple values at a time for an entity instance.
Â
Why it’s important: Multivalued attributes reflect real-world complexity. However, they usually need to be handled using separate tables when converting ER diagrams into relational schema to ensure normalization.