Issues in the design of object-oriented database programming languages

We see a trend toward extending object-oriented languages in the direction of databases, and, at the same time, toward extending database systems with object-oriented ideas. On the surface, these two activities seem to be moving in a consistent direction. However, at a deeper level, we see difficulties that may inhibit their ending up at the same point. We feel that many of these difficulties are a result of the underlying assumptions that are inherent in the fields of programming language and database systems research. Many of these assumptions are historical and contribute to a set of cultural biases that often prevent the two communities from interacting as effectively as possible. The purpose of this paper is to try to uncover some of the cultural presuppositions that have inhibited development of a fully integrated database programming language. We have identified database and language features that seem to be difficult to reconcile. We try to uncover the basic problems in these two areas that these features were intended to solve. In order to resolve these problems, we attempt to distinguish fundamental differences from historical artifacts.

[1]  Maurice Herlihy,et al.  ARGUS REFERENCE MANUAL , 1987 .

[2]  James H. Morris,et al.  Types are not sets , 1973, POPL.

[3]  Lawrence A. Rowe,et al.  Issues in the design of database programming languages , 1981, Workshop on Data Abstraction, Databases and Conceptual Modelling.

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

[5]  Frank Manola The Evaluation of Abstract Data Types as an Implementation Tool for Database Management Systems , 1979, IEEE Database Eng. Bull..

[6]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[7]  Barbara Liskov,et al.  Reliable object storage to support atomic actions , 1983, SOSP 1985.

[8]  David C. J. Matthews,et al.  Poly manual , 1985, SIGP.

[9]  E. K. Kolodner RECOVERY USING VIRTUAL MEMORY , 1987 .

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

[11]  Norihisa Suzuki,et al.  Creating efficient systems for object-oriented languages , 1984, POPL '84.

[12]  Stephen N. Zilles Types, algebras and modeling , 1981, SIGMOD 1981.

[13]  Lawrence A. Rowe,et al.  Data abstraction, views and updates in RIGEL , 1979, SIGMOD '79.

[14]  L. Peter Deutsch Constraints: A uniform model for data and control , 1981, SIGMOD 1981.

[15]  Stanley B. Zdonik,et al.  Language and Methodology for Object-Oriented Database Environments , 1985, Data Types and Persistence.

[16]  David Maier,et al.  Development of an object-oriented DBMS , 1986, OOPSLA 1986.

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

[18]  Malcolm P. Atkinson,et al.  PS-algol: an algol with a persistent heap , 1982, SIGP.

[19]  Craig Schaffert,et al.  Persistent and Shared Objects in Trellis/Owl , 1986, OODBS.

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

[21]  Paolo Paolini Abstract data types and Data Bases , 1981, SIGMOD 1981.

[22]  Joachim W. Schmidt,et al.  Abstraction mechanisms for database programming , 1983, ACM SIGPLAN Notices.

[23]  Alan Snyder Encapsulation and inheritance in object-oriented programming languages , 1986, OOPSLA 1986.

[24]  Guy L. Steele,et al.  The definition and implementation of a computer programming language based on constraints , 1980 .

[25]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[26]  Dennis McLeod,et al.  Database description with SDM: a semantic database model , 1981, TODS.

[27]  Mary Shaw,et al.  Toward relaxing assumptions in languages and their implementations , 1980, SIGP.