Integral Logistics Management — Operations Management and Supply Chain Management Within and Across Companies

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.