Representing multivalued attributes in database design.

An important aspect of data modeling is the identification of entities or objects and their associated attributes. An attribute may be single-valued or multivalued. During database design, the designer usually has to represent all attributes in relational tables that only allow single-valued cells. A number of authors (1, 3, 5, 6) advocate the notion that multivalued attributes are essentially separate entities and, therefore, should be represented as a separate table. We argue that some multivalued attributes should be treated as entities, but others simply are not and should, therefore, not be treated as entities. Assuming that all multivalued attributes are entities creates confusion and results in an inefficient design. We discuss alternative designs, such as storing multiple values in one cell, that should be used for different types of multivalued attributes. We also present a decision table for easy reference by designers in dealing with multivalued attributes.