Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert UML to ER Model #3

Open
10 of 16 tasks
JDziurlaj opened this issue May 24, 2019 · 0 comments
Open
10 of 16 tasks

Convert UML to ER Model #3

JDziurlaj opened this issue May 24, 2019 · 0 comments

Comments

@JDziurlaj
Copy link
Contributor

JDziurlaj commented May 24, 2019

Write a script that can be executed by Oracle Data Modeler to create a logical data model. Steps:

  1. Create Domains from UML Enumerations
  2. Create Entities from UML Classes
  3. Create Attributes from UML Attributes
  4. Create relations from associations

Attributes

Certain attributes in UML will need to be converted to relationships, because they are non-atomic (and thus a normal form violation)

  • 0..1 -> Optional Attribute (default)
  • 1 -> Mandatory Attribute
  • 1..* -> Non-identifying Foreign Key (easiest), although an identifying FK is probably closer to the relationship in UML.

Relations

  • Do not map composing relationships

Todos

  • Handle multiple primitives
  • Handle attributes vs associations correctly
  • Improve primitive handling
  • Handle primitive associations 1..* (relation AND attribute must be required)
  • Fix FK names. They can come from fkRole DP, but has side effects.
    • Fix FK for deep type hierachies, they don't pull the parent FK. This may become a problem if we allow multiple engineering approaches!
  • Fix writeinimage being UNKNOWN instead of an association.
  • Fix issue with non-semantic directed compositions
  • Fix issue with generated table not accounting for role name (e.g. CandidateSelection -> EndorsementParty)
  • Fix issue with composite foreign keys having duplicate names when using fkRole

Checks

There is a bug with ODM that causes the relationship lines to appear incorrectly. Use display labels to force a refresh.

  • Proper directed composition
  • Proper directed association
  • Test ERR Oracle DDL
  • Test ERR SQL Server DDL
  • Test CVR Oracle DDL
  • Test CVR SQL Server DDL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant