Multi Valued Attribute
Multi Valued Attribute
Definition
A multi-valued attribute is an attribute that can hold more than one value simultaneously for a single entity. It represents a genuine one-to-many relationship between an entity and the values of that particular property — the exact opposite of a single-valued attribute (6.8).
Worked Example
A Student may have several Phone_Number values on file (a home landline and a mobile number), and several Skills (e.g., "Python", "SQL", "Public Speaking"). Both are multi-valued attributes of Student. In an ER diagram, a multi-valued attribute is drawn as a double-line oval (or double-circle) to distinguish it visually from a normal single-valued attribute's single-line oval.
Edge Cases
- A multi-valued attribute cannot be stored as a plain single column in a relational table, because a column can only hold one value per row. During ER-to-relational mapping (6.21), a multi-valued attribute is always converted into a separate table, with a foreign key referencing the owning entity's primary key, and one row per value (e.g., a
Student_Phone(Roll_No, Phone_Number)table). - A multi-valued attribute can also have both a lower and upper bound on the number of values, sometimes written as {min, max} in notations that support it — e.g., a Student might be required to have between 1 and 3 phone numbers.
- Multi-valued attributes can themselves be composite in rare cases (e.g., multiple structured Addresses, each with Street/City/State) — multi-valued and composite are independent, combinable properties, not mutually exclusive.
- Do not confuse a multi-valued attribute of one entity with a genuine one-to-many relationship between two entity sets. If "Skill" needed its own attributes (like ProficiencyLevel, CertifiedDate) or its own identity independent of the student, it should be modeled as a separate
Skillentity set connected via a relationship, not merely as a multi-valued attribute of Student.
Key Takeaways / Interview Q&A
Q: How is a multi-valued attribute drawn differently from a single-valued one in an ER diagram? A: With a double-line oval (or double-circle), versus the single-line oval used for ordinary single-valued attributes.
Q: Why can't a multi-valued attribute just be stored as a comma-separated string in one column? A: Doing so violates first normal form (atomicity of values) and makes searching, indexing, updating, and enforcing uniqueness on individual values very difficult; the correct relational approach is a separate child table.
Q: When should a "multi-valued attribute" instead be redesigned as its own entity set? A: When the repeating value needs its own descriptive attributes or its own relationships to other entities (e.g., Skill needing a Proficiency_Level) — at that point it has outgrown being a simple multi-valued attribute.