Enterprise Architect: Difference between revisions

From BITPlan Wiki
Jump to navigation Jump to search
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 2: Line 2:
* https://en.wikipedia.org/wiki/Enterprise_Architect_(software)
* https://en.wikipedia.org/wiki/Enterprise_Architect_(software)
* https://www.sparxsystems.de/enterprise-architect/
* https://www.sparxsystems.de/enterprise-architect/
= Database Schema =
== Core Tables ==
<uml>
hide methods
hide stereotypes
hide circle
skinparam classAttributeIconSize 0
package "Core Tables" {
  class t_package {
    Package_ID INTEGER
    Parent_ID INTEGER
    Name TEXT
    ea_guid TEXT
  }
  class t_object {
    Object_ID INTEGER
    Package_ID INTEGER
    Object_Type TEXT
    Name TEXT
    ea_guid TEXT
  }
  class t_attribute {
    ID INTEGER
    Object_ID INTEGER
    Name TEXT
    Type TEXT
    Scope TEXT
    ea_guid TEXT
  }
  class t_operation {
    OperationID INTEGER
    Object_ID INTEGER
    Name TEXT
    Type TEXT
    ea_guid TEXT
  }
  class t_operationparams {
    OperationID INTEGER
    Name TEXT
    Type TEXT
    Pos INTEGER
  }
  class t_connector {
    Connector_ID INTEGER
    Start_Object_ID INTEGER
    End_Object_ID INTEGER
    Connector_Type TEXT
    SourceCard TEXT
    DestCard TEXT
  }
}
package "Tagged Value Tables" {
  class t_objectproperties {
    PropertyID INTEGER
    Object_ID INTEGER
    Property TEXT
    Value TEXT
  }
  class t_attributetag {
    PropertyID INTEGER
    ElementID INTEGER
    Property TEXT
    VALUE TEXT
  }
  class t_operationtag {
    PropertyID INTEGER
    ElementID INTEGER
    Property TEXT
    VALUE TEXT
  }
  class t_connectortag {
    PropertyID INTEGER
    ElementID INTEGER
    Property TEXT
    VALUE TEXT
  }
}
t_package "1" --> "0..*" t_package : Parent_ID
t_package "1" --> "0..*" t_object : Package_ID
t_object "1" --> "0..*" t_attribute : Object_ID
t_object "1" --> "0..*" t_operation : Object_ID
t_operation "1" --> "0..*" t_operationparams : OperationID
t_connector --> t_object : Start_Object_ID
t_connector --> t_object : End_Object_ID
t_object "1" --> "0..*" t_objectproperties : Object_ID
t_attribute "1" --> "0..*" t_attributetag : ElementID
t_operation "1" --> "0..*" t_operationtag : ElementID
t_connector "1" --> "0..*" t_connectortag : ElementID
note right of t_package
  Root packages have Parent_ID = 0
end note
note right of t_object
  Object_Type discriminates:
  - Class
  - Interface
  - Package
  - Note
  etc.
end note
note right of t_connector
  Connector_Type:
  - Association
  - Generalization
  - Dependency
  - Aggregation
  etc.
end note
note bottom of "Tagged Value Tables"
  Quirk: Inconsistent naming
  - t_objectproperties uses "Value"
  - Others use "VALUE"
  Quirk: Inconsistent FK columns
  - t_objectproperties: Object_ID
  - Others: ElementID
end note
</uml>
= Logical Schema =
<uml>
object Model {
  Root of hierarchy
  Synthetic type
}
object Package {
  Name
  ea_guid
}
object Class {
  Name
  Stereotype
}
object Attribute {
  Name
  Type
  Scope
}
object Operation {
  Name
  Type
}
object Parameter {
  Name
  Type
  Pos
}
object Association {
  Name
  SourceCard
  DestCard
}
object TaggedValue {
  Property
  Value/Notes
}
Model "1" *-- "0..*" Package : packages >
Package "1" *-- "0..*" Package : packages >
Package "1" *-- "0..*" Class : classes >
Package "1" *-- "0..*" Association : associations >
Class "1" *-- "0..*" Attribute : attributes >
Class "1" *-- "0..*" Operation : operations >
Operation "1" *-- "0..*" Parameter : parameters >
Class "1" *-- "0..*" TaggedValue : taggedValues >
Attribute "1" *-- "0..*" TaggedValue : taggedValues >
Operation "1" *-- "0..*" TaggedValue : taggedValues >
Association "1" *-- "0..*" TaggedValue : taggedValues >
note right of Model
  Root packages from t_package
  WHERE Parent_ID = 0
end note
note right of Package
  Nested packages via
  Parent_ID foreign key
end note
note right of Association
  From t_connector filtered
  by Connector_Type
  Ownership simulated via:
  Package → Object → Connector
  using Start_Object_ID
end note
note bottom of TaggedValue
  Comes from different tables
  depending on parent type:
  - Class: t_objectproperties
  - Attribute: t_attributetag
  - Operation: t_operationtag
  - Association: t_connectortag
end note
</uml>

Latest revision as of 06:31, 13 February 2026