Skip to main content
Jump to: navigation, search

Talk:Model Base

These are issues and questions identified by the IMM Submission Team at the workshop at MetLife.

Metamodel 1. For MOF compliance “boolean” should be Boolean, “int” should be Integer.

2. Eclipse and CWM are different on deferability; CWM is preferable in having a single enumerated attribute rather than several Booleans which require constraints to prevent invalid combinations

3. [Aside – in IMM Trigger will integrate with UML Trigger from UML Communications package (Fig. 316)]


4. Are triggers needed at both schema and DB level (e.g. on-logon, user function trace)? DDL and DML change events? (Oracle, yes)

5. Eclipse model has a timeStamp on trigger, CWM does not. Is there a real justification for this?

6. For the same table, same event, same timing, can you multiple triggers; i.e., can you trigger two different processes for the same event on the same table? (Yes, for UDB.)

7. Can you have more than one event for the same trigger? (Eclipse model says yes; CWM, no; UDB, no; SQL Server, no; Oracle says yes.)

8. CWM has no insteadOf trigger, but Eclipse model does.

Tables and columns 9. ColumnSet can have 0,* Columns, but Eclipse must have 1,*.

10. Should we have a UserDefinedTypes (StructuredUserDefinedType and DistinctUserDefinedType)? (Eclipse has specific Attribute subclass, CWM reuses Column though this will have capabilities not available to user defined types.)

11. CWM supports multiple inheritance, but shouldn’t. (Eclipse has single inheritance.)

12. ReferenceType on Table in Eclipse (system generated, user generated, or derived table). Do we want in IMM?

13. Derived insertable and updateable Table properties in Eclipse not understood. Need clarity.

14. Is there any benefit in having DerivedTable in Eclipse?

15. The derived Table not regarding naming is incorrect. (Eclipse)

16. Views are read-only in CWM but not in Eclipse. Should the DB determine this?

17. Eclipse has no Check option on View. (UDB, SQL Server, and Oracle do have.)

18. Columns can have 0,.1 identitySpecifier xor generalExpression in Eclipse. CWM does not have. Should add. (Was also an issue filed for CWM.)

19. CWM does not have defaultValue, but should. (Eclipse does.)

20. CWM does not have scopeCheck and scopeChecked

21. What does implementationDependent mean in Eclipse model?

22. Why is SQLDefinedType owned by a TypedElement (in Eclipse)? SQLDefinedType is shown with a ‘black diamond’ composition of TypedElement. Is not correct.

23. How do you specify the default value for a structure type?

The default value is the instance created using the default constructor. ?. To be discussed. DTP will look into this, we certainly welcome to see what CWM has in place.

24. Precision, scale, and length should be attributes at both data type and column level. (SQL Server does not have this; CWM has it at both levels; Eclipse has it only at data type level) Also, the column level values must be a subset of data type values)

Need Peter to explain the advantage of doing so

25. Should have CharacterSetType. (Eclipse does not have it; CWM does.)

The reason that DTP does not define characterSetType, it would make it cumbersome to tailor to fit all venders' requirement. Need some feedback/comment from CWM.

26. Is Collation useful/used? (CWM has it.)

As of this time, we are not aware of any DTP consumer utilizing Collation in their tooling. So Collation has been left undefined in the Eclipse model. DTP is open to CWM's suggestion to model collation.

27. Schema should own groups and roles, not databases.

To be discussed. Further clarification needed from SQL Spec people. Donna will check with their contact.

28. Every SQL Object in metamodel should have an owner.

Need elaboration. According to SQL Spec, it only mention that schema has an owner or AuthID.

29. Should there be assertions on a schema that can constrain one or more tables. (On Eclipse model)

To be discussed. Need clarification from Peter.

30. Why is an assertion mandatory for a BaseTable, but not constraints. (On Eclipse model)

Assertion can be optional for a BaseTable. We need to reflect that in the Eclipse model. Need clarification from Peter.

Keys 31. ForeignKey should relate to PrimaryKey, rather than UniqueConstraint. (On Eclipse model)

Some vendors allow ForeignKey to reference a UniqueConstraint or a unique Index. We wanted the Eclipse model to have the flexibility to support that.

32. Eclipse does not constrain the ordering of PK with FK; CWM does.

We can put a note to this effect in the Eclipse model. DTP need to verify with EMF if OCL constraint in the UML model are reinforced in the EMF model.

33. In Eclipse, the ForeignKey to Column association is mandatory in figure, but comments indicate optional.

? We could not find the comment/s which indicates the association as optional. Peter to clarify.

34. Index to IndexMember association, there are two mandatory, black diamonds. This is a metamodel bug in Eclipse model (any instance can only ever have one composite owner)

We need a note in the model to constrain an IndexMember instance to be owned by a single Index instance. Peter?

35. Note on Index and IndexMember associations should be expressed as an OCL constraint, not a note in Eclipse model.

We can do so.

36. Several OCL constraints on the constraints diagram refer to “constainedColumns” – which doesn’t exist. (On Eclipse model)

The “constrainedColumns” in the OCL constraints need to be changed to “members”. DTP will revisit and update the constraints.

Indexes 37. What is a fillFactor in the Index class? Is not documented in Eclipse model.

The fillFactor specifies the percentage of space to leave free for updates and insertions within each of the index’s data blocks. DTP can add a document for fillFactor.

38. Want isSorted on Index. (CWM has it, Eclipse does not.)

Not all vendors implement the”isSorted” property. So we left it to be modeled in vendor specific extensions of the Eclipse model.

39. CWM has partitioning and Eclipse has clustering. We need both.

Partitioning is vendor specific and we left the modeling to vendor specific extensions of the Eclipse model. We presume the partition is more storage related so our earlier comment still applies.

Data Types 40. In CharacterStringDataType, the fixedLength property should not be derived (because vendor-defined types are not addressed in the derivation).

Not sure why it was done so. Don’t see a reason why fixedLength should be derived.

DTP will do the change.

41. CoercibilityType in CharacterStringDataType is not documented well in Eclipse model.

described in the SQL spec as Collation Derivation that can be either Implicit,Explicit or None. The latest change in the documentation of CoercibilityType points to the SQL spec section where it’s described.

42. CWM defines CharacterSet differently than Eclipse.

CharacterSet in DTP SQLModel is defined as a class.

43. CWM does not permit CharacterSet against a DataType, and Eclipse does not permit it to be defined against a Column.

In SQL spec, the only relationships defined for Character Sets are between Character String type and Schema, which is what’s defined in Eclipse model. There’s no mention of relationship between Character Set and Column.

44. Eclipse defines a fixed set of PrimitiveTypes, CWM does not.

The types were taken from the SQL spec with the exception of XML type which was taken from the XML addition spec. The set of primitive types is fairly constant that is why it was made into Enumeration.

The auxilliary DBDefinition model in DTP provides the mapping of PrimitiveTypes to vendor specific datatypes.

45. On Eclipse, the IntegerDataType note “Scale is always zero” should be expressed as a constraint, not a note.

The note is on the IntegerDataType. If it is not there in DTP model, we need to add one

DTP need to convert the note to an OCL constraint.

46. PrimitiveType should have a typeNumber associated with it. (Eclipse does not have it, CWM does.)

Not sure what the typeNumber means. Need clarification

the typeNumber is the same as JDBC enum type. DTP does map datatypes to JDBC enum types but only in the vendoc specific instances of the auxilliary DBDefinition model.

47. Do we really need the BooleanDataType class on Eclipse model?

It’s part of SQL spec. we do need Boolean as there are equivalent vendor types

48. DataLinkDataType in not documented in Eclipse model.

DataLinkDataType represents a link to a file/location outside the system.

DTP to add documentation.

49. RowDataType is not documented in Eclipse model, and don’t understand how it differs from a structured user-defined type.

New documentation update for Eclipse model points to the SQL Spec section that describes Row Types. Row Type is a collection <field name>, pairs and nothing more while user-defined type is an actual data type definition from which a Row Type can be derived.</span>

50. What is the difference between a ReferenceDataType and a foreign key in Eclipse model.

Foreign Key is a referential Table Constraint while Reference Data Type is a collection of REF values that reference rows in the table.

51. Association between CollectionDataType and DataType goes through ConstructedDataType.

Need to discuss..

DTP to verify ...

52. ArrayDataType and MultisetDataType should either be removed and indicated in CollectionDataType, or should use UML notation for unique and ordered.

CollectionDataType is a common interface for Array and Multiset as described in SQL spec. I didn’t see a way to add UML notation for unique/ordered in Rational Rose.

Rational Rose only allows definition of ordered constraint only on relationship ends.


53. In the Expressions metamodel, the stereotype «interface» is not permitted in MOF.

Having the stereotype «interface» allows other EMF models to hook into the DTP SQLModel by implementing the interface. DTP will explore if thesame result can be achieved by using an abstract class.

54. SearchConditionDefault class is not documented in Eclipse model.

DTP needs to document this class.

55. Association between Schema and Routine should be composition, not aggregation in Eclipse model.

It’s an aggregation for the same reason as the rest of the objects related to Schema, to offer ability to save to separate resources.

56. Eclipse uses timestamps rather arbitrarily in Routine.

Not sure what this means. Need clarification.

The use of timestamp as a property in the DTP SQLModel elements is as defined in the SQL 99 specifications.

57. RoutineResultTable is not documented in Eclipse model. And it should probably be a subtype of TemporaryTable, instead of Table.

Updated documentation change points to proper SQL Spec section. Probably Table was used as the most generic type since what’s returned is not really a temp table either.

58. On Function class, the “can return either a table or a scalar, but not both” note, should be replaced by a formal {xor} on the diagram (On Eclipse model)

Makes sense

DTP will do the same

59. Association end from Function to Parameter should be returnScalar and should also indicate {subset} of parameters. (On Eclipse model)

Agreed about the typo. Not sure what the {subset} is for. The returnScalar is not a subset of input/output parameters but rather a return value of a function

60. Should there be a package for stored procedures? (Neither CWM nor Eclipse have one.)

Package is not part of SQL Spec and may not exist in all vendors.

61. On the Schema diagram, all white diamonds should be black diamonds, on Eclipse model [white diamonds have no meaning for MOF]

MOF should have a concept of aggregation versus composition. The reason for using aggregation is already mentioned in #55.

62. CWM has “Database”, and Eclipse has “Catalog”. Are they the same notion?

Not really. Database is a collection of Catalogs and the Catalog is a collection of Schema. Database object is not really part of SQL Spec but was chosen to be defined as a container of Catalogs.

63. In the Eclipse and CWM models, a schema may only reside on a single database. Should be able to deploy the same schema (data model) in multiple physical databases.

The Eclipse model represents a single database snapshot multiple databases will have it’s own copy of the same Schema as it’s really a different physical object which happens to have the same definition.

This was perceived tooling issue. Various tool vendors may choose to achieve the same in different way. One example would be a copy & paste of the schema to multiple physical database models.

64. Should separate the notions of database from database software—and deployments thereof. Extra complication: the same Oracle installation can have multiple Oracle homes.

Need more clarification on this one.

This was perceived as a database administering tooling issue and outside the intended scope of the DTP SQLModel.

65. In the Statements metamodel, the stereotype «interface» is not valid for MOF.

Having the stereotype «interface» allows other EMF models to hook into the DTP SQLModel by implementing the interface. DTP will explore if thesame result can be achieved by using an abstract class.

Back to the top