The Object-Oriented Database System Manifesto

This paper attempts to define an object-oriented database system. It describes the main features and characteristics that a system must have to qualify as an object-oriented database system. We have separated these characteristics into three groups: • Mandatory, the ones the system must satisfy in order to be termed an object-oriented database system. These are complex objects, object identity, encapsulation, types or classes, inheritance, overriding combined with late binding, extensibility, computational completeness, persistence, secondary storage management, concurrency, recovery and an ad hoc query facility. • Optional, the ones that can be added to make the system better, but which are not mandatory. These are multiple inheritance, type checking and inferencing, distribution, design transactions and versions. • Open, the points where the designer can make a number of choices. These are the programming paradigm, the representation system, the type system, and uniformity. We have taken a position, not so much expecting it to be the final word as to erect a provisional landmark to orient further debate.

[1]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[2]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPSLA 1986.

[3]  Edward Sciore,et al.  The Vision Object-Oriented Database Management System , 1987, DBPL.

[4]  Setrag Khoshafian,et al.  Object identity , 1986, OOPSLA 1986.

[5]  David J. DeWitt,et al.  A data model and query language for EXODUS , 1988, SIGMOD '88.

[6]  John Mylopoulos,et al.  Design of a Compiler for a Semantic Data Model , 1989, Foundations of Knowledge Base Management.

[7]  Renzo Orsini,et al.  GALILEO: a strongly-typed, interactive conceptual language , 1985, TODS.

[8]  Y. Caseau A model for a reflective object-oriented language , 1988, OOPSLA/ECOOP '88.

[9]  Carlo Zaniolo,et al.  Object-Oriented Programming in Prolog , 1984, SLP.

[10]  Jay Banerjee,et al.  Data model issues for object-oriented applications , 1987, TOIS.

[11]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[12]  Serge Abiteboul,et al.  Object identity as a query language primitive , 1989, SIGMOD '89.

[13]  François Bancilhon,et al.  A logic-programming/object-oriented cocktail , 1986, SGMD.

[14]  Stephen Todd,et al.  Relations and Entities , 1976, IFIP Working Conference on Modelling in Data Base Management Systems.

[15]  Stanley B. Zdonik,et al.  An Object Server for an Object-Oriented Database System , 1986, OODBS.

[16]  Patrick Pfeffer,et al.  The Design and Implementation of O2, an Object-Oriented Database Systems , 1988, OODBS.

[17]  Ming-Chien Shan,et al.  Iris: An Object-Oriented Database Management System , 1989, ACM Trans. Inf. Syst..

[18]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[19]  David Maier,et al.  Why Isn't There an Object-Oriented Data Model? , 1989, IFIP Congress.

[20]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

[21]  Ronald Morrison,et al.  An Approach to Persistent Programming , 1989, Comput. J..

[22]  David J. DeWitt,et al.  Object and File Management in the EXODUS Extensible Database System , 1986, VLDB.