Tech Report CS-92-57

A Data Model and A Query Language for Object-Oreinted Databases

Manojit Sarkar and Steve Reiss

December 1992


We present an object-oriented data model, and a powerful declarative query language. The data model eliminates the object-versus-values dichotomy by representing all entities as objects. This is achieved at no loss of modeling power, or performance. The data model provides for private ownership of objects by other objects. The operational part of the data model is also simple. We present a rule-based query language called OQL (Object Query Language) based on the data model. OQL creates and manipulates objects without explicitly referring to object identifiers. It is statically typed, and capable of creating new objects of arbitrary types. It can express recursive queries, eliminate duplicates, manipulate mixture of tuple-valued, set-valued and list-valued objects, and express queries involving inheritance trees. We present an object-algebra, an assignment operator, and a REPEAT-UNTIL loop construct which are used to implement OQL. Reduction of OQL to algebra, assignment operation, and loop construct, and reduction of algebra, assignment operation, and loop construct to OQL are also discussed.

(complete text in pdf or gzipped postscript)