Additional annotations

 

The {persistence} tagged value

Attributes, associations or generalization links can, where necessary, be annotated locally as non-persistent by the user.  The {persistence(transient)} tagged value is used in this case.

 

 

Example

 

Figure 57. Example

 

in which:

 

CREATE DISTRICT TABLE

      NUMBER...,

      NAME...,

      LOCATION...

);

 

Note:      The {persistence(transient)} tagged value will be simple and is attached to the non-persistent element for attributes and associations.  Classes specialized in a non-persistent way are specified by a parameterized tagged value (with the same name {persistence(transient)}), but are located at the level of the child class.

 

 

Indexes

Indexes can be defined using the {indexName(index_name)} tagged value on a class and the {indexKey(index_name, rank} tagged value on each attribute of the index. The advantage of this (in addition to the documentation aspect) is the automatic generation of secondary indexes (indexes which are not unique), used to optimize access to data.  An index can either be defined on a class in the analysis model or on a table in the physical model.

 

 

Secondary composite keys

Secondary composite keys are used to define unique keys as well as the primary key.  For this, the {keyName(key_name)} tagged value is used on a class, and the {compositeKey(key_name, rank)} tagged value on each of the class' attributes.