Inheritance and persistence in database programming languages

In order to represent inheritance, several recent designs for database programming languages have made use of class construct, which can be thought of as a restricted data type with an associated set of instances. Moreover, these classes are persistent they survive from one program invocation to another. This paper examines whether it is necessary to the together type, extent and persistence in order to model inheritance and suggests that they may be separated to provide more general database programming languages. In particular we shall see that it is possible to assign a generic data type to a function that extracts all the objects of a given type in the database so that the class hierarchy can be derived from the type hierarchy. We shall also examine object-level inheritance and its relationship to data types for relational databases. A final section examines how the various forms of persistence interact with inheritance at both object and type level.

[1]  Diane C. P. Smith,et al.  Database abstractions: aggregation and generalization , 1977, TODS.

[2]  Daniel G. Bobrow,et al.  Extending object oriented programming in Smalltalk , 1980, LISP Conference.

[3]  John Mylopoulos,et al.  A language facility for designing database-intensive applications , 1980, TODS.

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

[5]  Joachim W. Schmidt,et al.  Some high level language constructs for data of type relation , 1977, TODS.

[6]  Richard Hull,et al.  The format model: a theory of database organization , 1982, JACM.

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

[8]  Setrag Khoshafian,et al.  A calculus for complex objects , 1985, PODS '86.

[9]  Carlo Zaniolo,et al.  Prolog: A Database Query Language for All Seasons , 1984, Expert Database Workshop.

[10]  Butler W. Lampson,et al.  A Kernel Language for Abstract Data Types and Modules , 1984, Semantics of Data Types.

[11]  Peter Buneman,et al.  A Domain Theoretic Approach to Higher-Order Relations , 1986, ICDT.

[12]  Peter P. Chen The entity-relationship model: toward a unified view of data , 1975, VLDB '75.

[13]  Albert R. Meyer,et al.  "Type" is not a type , 1986, POPL '86.

[14]  Peter Buneman,et al.  Data Types For Data Base Programming , 1985, Data Types and Persistence , Informal Proceedings.

[15]  T H Merrett,et al.  Relational Information Systems , 1983 .

[16]  Alexander Borgida,et al.  Features Of Languages for the Development of Information Systems at the conceptual Level , 1985, IEEE Software.

[17]  David Maier,et al.  Making smalltalk a database system , 1984, SIGMOD '84.

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

[19]  Carlo Zaniolo,et al.  Database relations with null values , 1982, J. Comput. Syst. Sci..

[20]  David W. Shipman,et al.  The functional data model and the data languages DAPLEX , 1981, TODS.

[21]  Brian A. Wichmann,et al.  Rationale for the design of the Ada programming language , 1979, SIGP.

[22]  Stephen Fox,et al.  Storage and Access Structures to Support a Semantic Data Model , 1982, VLDB.