Relationship types, existence, and cardinality generated from the UML-to-logical data model transformation

The UML-to-logical data model transformation generates relationship types, existence, and cardinality for the logical data model based on the UML association type or multiplicity of role.
The following table shows the mappings from a UML association type or multiplicity of role to the relationship type, existence, and cardinality for the logical data model .
Table 1. UML Association to logical data model Relationship mappings
UML - association type UML - multiplicity of parent role UML - multiplicity of child role Logical data model - relationship type Logical data model - existence Logical data model - cardinality
Simple * */(1..*) Many to many Optional */ (1..*)
Simple 1..* */(1..*) Many to many Mandatory */(1..*)
Simple or aggregation (0..1) (0..1) /1/*/(1..*) Non-identifying Optional (0..1) /1/*/(1..*)
Simple or aggregation 1 (0..1) /1/*/(1..*) Non-identifying Mandatory (0..1) /1/*/(1..*)
Composition (0..1) /1 (0..1) /1/*/(1..*) Identifying Not applicable (Mandatory) (0..1) /1/*/(1..*)

Each UML AssociationClass is transformed into a relationship entity and two relationships, which are referred to here as Relationship 1 and Relationship 2. Relationship 1 is from the entity with the parent role to the relationship entity. Relationship 2 is from the relationship entity to the entity with the child role, with one exception. In the case of simple association, the identifying Relationship 2 is from the entity with the child role (which is the parent in the relationship) to the relationship entity (which is the child in the relationship).

The following table shows the mappings from the UML association type or multiplicity of role to the relationship type, existence, and cardinality for Relationship 1 in the logical data model .

Table 2. UML association to logical data model relationship mappings - Relationship 1
UML - association type UML - multiplicity of parent role UML - multiplicity of child role Logical data model - relationship type Logical data model - existence Logical data model - cardinality
Simple * */(1..*) Identifying Not applicable (Mandatory) */ (1..*)
Simple 1..* */(1..*) Identifying Not applicable (Mandatory) */(1..*)
Simple or aggregation (0..1) (0..1) /1/*/(1..*) Identifying Not applicable (Mandatory) (0..1) /1/*/(1..*)
Simple or aggregation 1 (0..1) /1/*/(1..*) Identifying Not applicable (Mandatory) (0..1) /1/*/(1..*)
Composition (0..1) /1 (0..1) /1/*/(1..*) Identifying Not applicable (Mandatory) (0..1) /1/*/(1..*)

The following table shows the mappings from the UML association type or multiplicity of role to the relationship type, existence, and cardinality for Relationship 2 in the logical data model .

Table 3. UML association to logical data model relationship mappings - Relationship 2
UML - association type UML - multiplicity of parent role UML - multiplicity of child role Logical data model - relationship type Logical data model - existence Logical data model - cardinality
Simple * */(1..*) Identifying Not applicable (Mandatory) *
Simple 1..* */(1..*) Identifying Not applicable (Mandatory) 1..*
Simple or aggregation (0..1) (0..1) /1/*/(1..*) Non-identifying Optional 1
Simple or aggregation 1 (0..1) /1/*/(1..*) Non-identifying Mandatory 1
Composition (0..1) /1 (0..1) /1/*/(1..*) Identifying Not applicable (Mandatory) 1

Feedback