Previous Topic: Solitary EntitiesNext Topic: Entity Types With Too Few Relationships and Attributes


Multi-Valued Attributes

Occasionally, an attribute seems to need to hold multiple values simultaneously.

For example, consider an entity type person, which has Language Spoken as an attribute. A distinguishing characteristic of a person is, of course, that they may speak many languages. So, the attribute Language Spoken would seem to require multiple attribute values for each entity of person.

An attribute that seems to require multiple values simultaneously is called a multi-valued attribute. If, in this example, you need to know the level of proficiency for each language, the case for defining an additional entity type called language spoken becomes very strong.

Data modeling does not, and should not, provide for multi-valued attributes. Rather, you should remove an apparently multi-valued attribute to its own entity type and relate it to the original entity type through a 1:M relationship. This is shown in the following illustration.

Handling Unusual Situations (7)