# 20.3.4 Single-Valued and Multivalued Roles, and Total and Partial Roles

### Intended learning outcomes: Differentiate between a single-valued role and a multivalued role. Differentiate between a total and a partial role, or access function.

The important properties of an association are made apparent with the following characteristics of its access functions:

A role, or access function, is single-valued if each object or entity in the initial class leads to at most one object or entity in the target class. It is multivalued if there are objects or entities in the initial class that lead to more than one object or entity in the target class.

The maximum cardinality of an access function is the maximum number of objects or entities in the target class to which an object or entity of the initial class can lead.

In practice, the difference between maximum cardinality 1 (one) and maximum cardinality >1 (many) is very important for data-oriented and object-oriented modeling. But the difference between larger maximum cardinalities is of no practical importance.

A role or access function is total or strict, if each object or entity in the initial class leads to at least one object or entity in the target class. It is partial or nonstrict, if there are objects or entities in the initial class that lead to no object or entity in the target class.

The minimum cardinality of an access function is the minimum number of objects or entities in the target class to which each object or entity of the initial class must lead.

In practice the difference between minimum cardinality 0 (partial role) and >0 (total role) is very important for data-oriented and object-oriented modeling. The difference between greater minimum cardinalities is less important. [note 2002]

The example in Figure 20.3.3.2 shows the usual notation:

• Minimum and maximum cardinalities are in parentheses, and separated by two periods, next to the role names:

“Role name (minimum cardinality.. maximum cardinality)”

• If there is no role name, it is assumed that the role will be understood. The cardinalities are not placed in parentheses.[note 2003]

Additional conventions allow economical and clear notation:

1 <=> 1..1 :  If the notation shows only the cardinality 1, then minimum cardinality is the same as maximum cardinality = 1. This very important case indicates hierarchies.

n <=> 0..n :  If the notation shows only the cardinality n or *, this is the frequent case with minimum cardinality 0 and an in-principle undetermined maximum cardinality of >1. Incidentally, in this case the role is mostly partial.

## Course section 20.3: Subsections and their intended learning outcomes

• ##### 20.3 Modeling Information Systems in the Data View and Object View

Intended learning outcomes: Present terms such as object, attribute, object class, view, primary and secondary keys. Explain basic concepts such as association, association role and type. Describe the breaking up of an n-to-n association – in particular a reflexive one – and the association class. Disclose the use of the hierarchical constructs for developing a company-wide generic object model.

• ##### 20.3.1 Object, Attribute, and Object Class

Intended learning outcomes: Differentiate between entity, object, and data record. Differentiate between attribute and data field. Differentiate between object class, file, and table. Explain the class customer as a table in the relational database model.

• ##### 20.3.2 View and Primary and Secondary Keys

Intended learning outcomes: Produce an overview on the view on a class. Differentiate between primary key and secondary key. Describe characteristics for a “good” primary key. Explain the representation of a class in an object-oriented approach (with example) and the representation of an object.

• ##### 20.3.3 Association and (Association) Role

Intended learning outcomes: Differentiate between binary association and reflexive association. Explain Abrial’s access function and the example of the association of the classes “book” and “customer” in library systems. Identify the (association) role.

• ##### 20.3.4 Single-Valued and Multivalued Roles, and Total and Partial Roles

Intended learning outcomes: Differentiate between a single-valued role and a multivalued role. Differentiate between a total and a partial role, or access function.

• ##### 20.3.5 Association Types

Intended learning outcomes: Differentiate between the 1-to-1 association, the 1-to-n association, the n-to-1 association, and the n-to-n association. Explain various examples of different binary associations.

• ##### 20.3.6 Breaking up an n-to-n Association; Association Class

Intended learning outcomes: Explain the association class formed by breaking up an n-to-n association into a 1-to-n association and an n-to-1 association.

• ##### 20.3.7 The Crow’s-Foot Notation and the Common Entity-Oriented Notation

Intended learning outcomes: Describe the commonly used crow’s-foot notation for depicting associations in the entity-oriented approach. Identify the common notation for associations in the entity-oriented approach.

• ##### 20.3.7b The Reidentification Key and the Object-Oriented Notation

Intended learning outcomes: Explain the Representation of associations in an object-oriented form, as well as the concept of the reidentification key.

• ##### 20.3.8 Breaking Up a Reflexive n-to-n Association, Step 1: Duplicate, and Step 2: Breakdown

Intended learning outcomes: Explain Breaking up a reflexive n-to-n association, step 1: Duplicate the class to create its two subclasses, and step 2: Classical breakdown of the n-to-n association.

• ##### 20.3.8b Breaking Up a Reflexive n-to-n Association, Step 3: Merge

Intended learning outcomes: Explain Breaking up a reflexive n-to-n association, step 3: Merge the generating classes.

• ##### 20.3.9 Using the Hierarchical Constructs Based on Basic Ob­ject Classes: The Company-Wide Generic Object Model

Intended learning outcomes: Explain the basic object classes and possible subclasses (specializations) of an industrial company. Describe the concept of a company-wide data model, or generic model.