# 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.

In a reflexive n-to-n association, a class is in relationship with itself, in that both access functions lead from a certain object in the class to many other objects in the same class.

Reflexive n-to-n associations are quite typically found in operational information systems of a company. Figure 20.3.8.1 shows an example.

Fig. 20.3.8.1       Breaking up a reflexive n-to-n association. Step 1: Duplicate the class to create its two subclasses.

Here the aim is to diagram the relationship of “superiors to subordinates” in a company. Both superiors and subordinates are objects in the class “person.” The set of all superiors and the set of all subordinates are subsets of the whole set. These subsets are not disjunctive, as most superiors are themselves subordinate to persons of higher rank in the company hier­ar­chy. This is an n-to-n association, as a superior can have many subordinates but a sub­ordi­nate can also have more than one boss, such as when a secretary works for two bosses as two part-time jobs (two .50 FTE) at the same time in the same company. As Figure 20.3.8.1 shows, breaking up the association is accomplished in a roundabout way by first duplicating the original class, which results in two subclasses that correspond to the subsets mentioned.

Figure 20.3.8.2 shows the second step. This is the classical breakdown of the n-to-n association as in Figure 20.3.7.3 above.

Fig. 20.3.8.2       Breaking up a reflexive n-to-n association. Step 2: Classical breakdown.

The result is the association class, here named personnel structure. As de­scribed in Figure 20.3.7.3, a possible primary key is always the set union of the primary keys of the classes that generated it, which in this example is person ID, twice, once from the point of view of the superior and once from the point of view of the subordinate. In this concrete case, it probably does not make sense here to consider reidentification of the primary key.

Attributes can be put into the association class that cannot be inserted into the class person. These are mainly FTE in this subordination (for example, as mentioned above, a secretary works for two bosses as two .50 FTE) and also the type of subordination (line, matrix).

Continuation in next subsection (20.3.8b).

## 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.