The translation depends on the type of relationship and its cardinalities. A relationship is either absorbed by one of its participating entities, which receives the relationship’s attributes and the other entity’s identifier as foreign keys, or it becomes a standalone relation.
| Relationship | Cardinalities | Translation | Choice |
|---|---|---|---|
| Many-to-many | (*,N) – (*,N) | New relation with the same name. Its key is formed by the identifiers of the entities involved. | Automatic |
| Ternary | (*,N) on all three | As many-to-many: new relation keyed on the three identifiers. | Automatic |
| One-to-many, mandatory | (1,1) – (*,N) | Absorbed by the (1,1) entity. | Automatic |
| One-to-many, optional | (0,1) – (*,N) | Absorbed by the (0,1) entity, with nullable references; or a new relation keyed on the (0,1) side. | Two options |
| One-to-one, one optional | (1,1) – (0,1) | Absorbed by the (1,1) entity. | Automatic |
| One-to-one, both mandatory | (1,1) – (1,1) | Absorbed by either entity. | Two options |
| One-to-one, both optional | (0,1) – (0,1) | Absorbed by either entity, with nullable references; or a new relation keyed on either side. | Four options |
An asterisk stands for any minimum cardinality. Reference columns are named TABLE_column, followed by the role when one is set, so recursive relationships produce distinct names. Optional attributes become nullable columns.