Today's database systems are mostly based
upon one of the now classical data models
(hierachical, network, or relational) or one of
their derivations. As these models are all
tailored to account for the representation of
rather simple entities only, the semantic gap
tends to become large when complex entities
need to be dealt with. This is at least partially
due to the fact that in these cases one
conceptual miniworld entity has to be
represented by a number of database objects
(e.g. records, tuples, ...).
This leads us to a first-cut informal definition
of an object-oriented database system: it
is based on a data model that allows to
represent one miniworld entity (whatever its
complexity and structure) by exactly one object
(in terms of the data model concepts) of
the database. Thus no artificial decomposition
into simpler concepts is necessary in any
case (unless the database designer decides to
do so). Note that as entities might be composed
of subentities which are entities in their
own right, an object-oriented data model also
has to allow for recursively composed objects.