IDEA at the University of Bonn:
Differences of Bonn's Chimera Dialect
from the IDEA Chimera Specification


The Chimera dialect recognized by the IDEA Tools developed in Bonn slightly differs from the original Chimera Specification. The following list gives an overview of the most important changes.

Classes

  1. A derived class must not define additional extensional attriubtes.
  2. A subclass of a derived class must not be extensional.
  3. A derived subclass must have exactly one superclass.
  4. Objects must belong to exactly one most specific class.
  5. Class attributes, class operations, and class constraints are not supported.
  6. Each derived class must have exactly one superclass. In case, it would have more superclasses, the derived class would inherit all extensional attributes of its superclasses. However, it is not clear how an object which is derived from one of its superclasses may be associated a value for an attribute inherited from another superclass.

Constraints

  1. Constraint names have to be unique with respect to the entire schema, not only with respect to one class or type.

Triggers

  1. The prefix 'old' references the old state present at the beginning of the current transaction. In contrast to this, the Chimera specification states that 'old' refers to the state in which the trigger was considered last respectively to the state at the beginning of the transaction if the trigger has not yet been considered.
  2. Manipulations of value classes, i.e., 'add' and 'drop', are allowed for events as well.
  3. The event consumption mode 'preserving' is not supported.
  4. Query events are not supported; the same holds for 'make_persistent'.
  5. The application of 'change' in events and event formulas is not supported.
  6. The current implementation does not order the execution of targeted and untargeted triggers, i.e., targeted triggers are not preferred to untargeted triggers.

Terms

  1. There is no null value.
  2. There is no explicit type oid for object identifiers.
  3. The function choose(S1, N, S2) is not supported.
  4. Nested records are not supported.
  5. Position selectors can only be applied to variables and not to list and record constructors directly.

Formulas

  1. Formulas are not declarative. Their compilation as well as their evaluation depends on the order of their literals.
  2. External names have to be typed to an object class before they can be used. They must however be unique with respect to the entire database.

Data Manipulation

  1. User/controlled ordering in select and display commands is not supported.
  2. There is no difference between persistent and temporary objects. The create_tmp command creates persistent objects as well. The command make_persistent is not supported.
  3. Referential integrity is not enforced after object deletion.
  4. Query events are not registered and thus not recognized as events.
  5. The command savepoint is not supported.


[IDEA at Bonn]