[comp.databases] Object Data Models and Manipulation

ksmith@m.cs.uiuc.edu (03/03/90)

>> ...
>>3. is there a clear distinction between an object-oriented and semantic
>>   data model?
>
>A *clear* distinction?  Hahahahahahahahahaha......

In my experience the best way to distinguish between the semantic 
and object-oriented data models is their emphasis (because they do
overlap).  The semantic model emphasizes providing a rich set of
relationships between data: aggregation, generalization, set inclusion,
type-instance, customized, etc.  Operations on data are emphasized less,
and are often performed in an associated programming language.  Semantic
models seem to be used often for their modeling power alone, without being
implemented as a full fledged database with data, buffers, recovery, etc.
In this role they provide a medium to record and communicate the structure
of a set of data items.

Object oriented models heavily emphasize the generalization and type-instance
relationships.  Operations are stored (logically) with the data that use
them in a generalization hierarchy.  This is an important distinction:
semantic models do not emphasize the object-method coupling, whereas it is
fundamental to the object-oriented model.  Object-oriented databases are, of
course, being pushed into the commercial marketplace currently as full
fledged database products.

One feature that it appears must be supported by object-oriented databases is
aggregation of data (the is-part-of relationship).  Aggregation is *not*
commonly considered part of the object-oriented model in programming languages
(for instance, Smalltalk does not support it directly), but aggregation *is* a
feature of semantic data models.  Support for aggregation in object-oriented
database products is a sign of the blurry relationship between the two models.

	-Ken Smith
	 University of Illinois
	 ksmith@cs.uiuc.edu