TechTalk Genome v4.2

Type Extent Providers

The type extent provider of a persistent type specifies how the instances of the type are stored in the underlying relational database system.

All (direct or indirect) instances of a type are abstracted by Genome as a set of rows, containing a row for each instance and columns for each field of the type and its derived types. This set of rows is called the extent of the type.

Figure 1: The Type Family of Type T

table A table B table C table D
T0 T1 T T'1 T'2 T'3
fields of T0 fields of T1 fields of T fields of T'1 or empty fields of T'2 or empty fields of T'3 or empty
Figure 2: The Extent of Type T

The root type of a type is the first ancestor which has an associated table in the underlying relational database system. The root type is not necessarily the root of the class hierarchy, but the base types of the root type are not stored in the underlying relational database system. Each root type defines a type family that consists of the root type and all its descendants in the inheritance tree. Several behavioural aspects in Genome are specified for whole type families.

Genome 's extent providers extend the extent of the base type, so the author of the schema definition file only has to specify how the inheritance between the type and the base type are to be mapped.

For root types, the author of the schema definition file has to specify how the objects and types are identified. This determines the object identity model and the type identity model for the entire type family of the root type.

See Also

<RootInheritance> Element | <SharedInheritance> Element | <JoinedInheritance> Element