Subtyping in OODBs

One of the central concepts supported by object-oriented databases is isa relationship. Its intuitive simplicity is deceptive. In reality, this term denotes several concepts, such as subtyping, subset relationships, and inheritance of structure and/or behavior. Each of these is non-trivial, and their interaction may be quite subtle. This paper deals with subtyping and its properties, in the context of a model that allows arbitrary data types and type constructors (but no function constructor). For simplicity a model based on the algebraic specification approach is used, which partially explains the inability to deal with the function constructor. Two intuitive ideas about subtyping are generalized and investigated: first, that the set of elements associated with a subtype is a subset of the set associated with supertype, and second, that each element of the subtype may be used in any place where an element of the supertype is expected. A generalized subtyping relation among abstract data types is defined, and its properties are investigated. In particular, it is shown that often there exist many possible subtyping relations among two types and that testing for some desirable properties, such as correctness, is in general undecidable. The notion of natural subtyping relation (that is related to parametric abstract data types) is introduced and shown to have a simple correctness proof. The paper concludes with a generalized type checking algorithm.

[1]  Erich J. Neuhold,et al.  Formal techniques for data base design , 1986 .

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

[3]  Christophe Lécluse,et al.  Modeling complex structures in object-oriented logic programming , 1989, PODS '89.

[4]  José Luiz Fiadeiro,et al.  Abstract Object Types: A Temporal Perspective , 1987, Temporal Logic in Specification.

[5]  Catriel Beeri,et al.  A Formal Approach to Object-Oriented Databases , 1990, Data Knowl. Eng..

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

[7]  Heinrich C. Mayr,et al.  Data abstractions for database systems , 1979, TODS.

[8]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.

[9]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[10]  Christophe Lécluse,et al.  Modeling Inheritance and Genericity in Object Oriented-Databases , 1988, ICDT.

[11]  José Meseguer,et al.  Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics , 1987, Research Directions in Object-Oriented Programming.

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

[13]  Catriel Beeri,et al.  Data Models and Languages for Databases , 1988, ICDT.

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

[15]  David W. Stemple,et al.  Automatic verification of database transaction safety , 1989, ACM Trans. Database Syst..

[16]  Catriel Beeri,et al.  Functional and predictive programming in OODB's , 1992, PODS '92.

[17]  Cristina Sernadas,et al.  Object-Oriented Specification of Databases: An Algebraic Approach , 1987, VLDB.

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

[19]  Ralph Morelli,et al.  Book reivew: LOGIC PROGRAMMING: FUNCTIONS, RELATIONS AND EQUATIONS. Edited by Doug DeGroot and Gary Lindstrom (Prentice-Hall) , 1987, SGAR.

[20]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

[21]  Alexander Borgida,et al.  Type systems for querying class hierarchies with non-strict inheritance , 1989, PODS '89.