# 20.3.8 Breaking Up a Reflexive n-to-n Association

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

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

Figure 20.3.8.3 shows the final step, namely, merging the two generating classes to the original class. The result yields the typical form, where the original class is connected with the association class via two 1-to-n associations.

Fig. 20.3.8.3       Breaking up a reflexive n-to-n association. Step 3: Merge the generating classes.

Starting from the association “has subordinate,” via the first key person ID all objects are found in the association class that have the entry of the superior and in the second key person ID have the entry of the subordinate as well as the FTE in this subordination. But you are not taken to the other data for the subordinate person. Via the second 1-to-n association, or “is subordinate to,” you then get to the object in the class “person” that corresponds to the subordinate person and it is there that you find the person’s other attributes such as the person’s last name, first name, and so on.

Analogously, you can start out from a subordinate to find all of the subordinate’s superiors with the FTE in this subordination.

As mentioned, in operational information systems of a company the reflexive n-to-n association is typically found. Another example is the structure of a corporate group, when both a holding and the subsidiary companies appear as objects in the same class customer. Even more familiar is its use to model the structure of the bill of material or where-used list (see Figure 17.2.8.2).

## 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 Different Notations and the Reidentification Key

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

Intended learning outcomes: Explain Breaking up a reflexive n-to-n association, consisting of step 1: Duplicate the class to create its two subclasses, step 2: Classical breakdown and 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.