Skip to main content

Module transform

Module transform 

Source
Expand description

Transformations between modeling levels.

The flagship operation is conceptual_to_logical, which mirrors the conversorConceitualParaLogico algorithm from brModelo:

  1. Each entity becomes a table.
  2. Attributes become columns; complex attributes (composite, multivalued) are expanded according to ConvertOptions.
  3. Specializations are folded according to a SpecializationStrategy.
  4. Each binary relationship is resolved into either an FK on one side, an associative table, or a table merge based on its cardinalities.
  5. Ternary and higher-arity relationships always become associative tables.
  6. Self-relationships are resolved into either a self-referencing FK or an associative table.

Structs§

ConvertOptions
All knobs for the conceptual → logical conversion.

Enums§

ComplexAttributeStrategy
How to fold a complex attribute (composite or multivalued).
RelationshipResolution
How to resolve a relationship into tables/foreign keys.
SpecializationStrategy
How to fold a specialization hierarchy into the relational model.

Functions§

conceptual_to_logical
Convert a ConceptualModel into a LogicalModel using the given ConvertOptions.