The ODMG object model: does it make sense?

The ODMG Object Model is shown to have a number of problems. A major confusion is caused by the intended type of polymorphism and the way it is expressed in the Model. Dynamic type checking is required even in situations when static type checking is possible. There are situations in which there is no way that type checking can determine whether a particular construct is type correct or not. The model of persistence in the ODMG Standard is not orthogonal, which has undesirable pragmatic consequences on complex objects. The discrepancies between the ODMG Object Model and the particular language bindings of the ODMG Standard are non-trivial. This paper presents solutions to some of these problems together with the associated formal system. Without such a formal system the recommended ODMG bindings are open to a wide range of different, and sometimes confusing interpretations. The criticism expressed in the paper is intended to be helpful in developing future releases of the ODMG Standard.

[1]  Martín Abadi,et al.  On Subtyping and Matching , 1995, ECOOP.

[2]  Suad Alagic Constrained Matching is Type Safe , 1997, DBPL.

[3]  Joyce L. Vedral,et al.  Functional Programming Languages and Computer Architecture , 1989, Lecture Notes in Computer Science.

[4]  William R. Cook,et al.  A Proposal for Making Eiffel Type-Safe , 1989, Comput. J..

[5]  Kim B. Bruce,et al.  Safe and decidable type checking in an object-oriented language , 1993, OOPSLA '93.

[6]  David W. Stemple,et al.  Exceeding the Limits of Polymorphism in Database Programming Languages , 1990, EDBT.

[7]  Peter Buneman,et al.  Database programming in Machiavelli—a polymorphic language with static type inference , 1989, SIGMOD '89.

[8]  Luca Cardelli,et al.  Types for Data-Oriented Languages , 1988, EDBT.

[9]  David J. DeWitt,et al.  The Object-Oriented Database System Manifesto , 1994, Building an Object-Oriented Database System, The Story of O2.

[10]  Narain H. Gehani,et al.  Rationale for the Design of Persistence and Query Processing Facilities in the Database Programming Language O++ , 1989, DBPL.

[11]  Suad Alagic F-Bounded Polymorphism for Database Programming Languages , 1994, East/West Database Workshop.

[12]  Kim B. Bruce,et al.  PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language , 1995, ECOOP.

[13]  Jacques Ferber Computational reflection in class based object-oriented languages , 1989, OOPSLA 1989.

[14]  David Jordan,et al.  The Object Database Standard: ODMG 2.0 , 1997 .

[15]  John C. Mitchell,et al.  F-bounded polymorphism for object-oriented programming , 1989, FPCA.

[16]  Peter Buneman,et al.  OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications , 1989 .

[17]  Malcolm P. Atkinson,et al.  An orthogonally persistent Java , 1996, SGMD.

[18]  William R. Cook,et al.  Inheritance is not subtyping , 1989, POPL '90.

[19]  Peter Buneman,et al.  Static type inference for parametric classes , 1989, OOPSLA 1989.

[20]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[21]  Richard C. H. Connor,et al.  The Napier88 Reference Manual , 1997 .

[22]  John Tang Boyland,et al.  Type-Safe Compilation of Covariant Specialization: A Practical Case , 1996, ECOOP.

[23]  Michael J. Carey,et al.  The design of the E programming language , 1993, TOPL.