Deriving a Relational DB Model from the AIXM CM
Automatic Generation with Rose Data Modeler Automatic generation of table definitions straightforward Problems: Disregards stereotypes, not controllable Associations: disregards type and navigability
Relational Schema Derivation – Features and Objects <<feature>> and <<object>> implemented as tables artificial primary key (UID) attribute to column
Relational Schema Derivation – Associations (1) Association with multiplicity upper bound 1 primary/foreign key dependency
Relational Schema Derivation – Associations (2) Association with multiplicity upper bound > 1 over additional mapping table
Relational Schema Derivation – Associations (3) Generalization Equal primary keys of tables of general and special class
Relational Schema Derivation – Choice <<choice>> stereotype of features/objects over mapping table (XOR: enforce one column null)
General Considerations – generic or specialized? Generic or highly specialized approach? One generic SegmentLeg table with type column or one table for every SegmentLeg specialization? Consistency could still be enforced with constraints
General Considerations – codelists, enums, datatypes Implementation of <<enumeration>> and <<codelist>> As enum column type (if available) or as code table? enum type strictly enforces limited value set code table better scalable/extendable Or: simply as string and enforce allowed values outside DB? Implement data types as column types in DB? Philosophical question: Implement all constraints in DB?!?
Discussion!?!