Types and persistence in database programming languages
- 1 June 1987
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Computing Surveys
- Vol. 19 (2), 105-170
- https://doi.org/10.1145/62070.45066
Abstract
Traditionally, the interface between a programming language and a database has either been through a set of relatively low-level subroutine calls, or it has required some form of embedding of one language in another. Recently, the necessity of integrating database and programming language techniques has received some long-overdue recognition. In response, a number of attempts have been made to construct programming languages with completely integrated database management systems. These languages, which we term database programming languages , are the subject of this review. The design of these languages is still in its infancy, and the purpose of writing this review is to identify the areas in which further research is required. In particular, we focus on the problems of providing a uniform type system and mechanisms for data to persist. Of particular importance in solving these problems are issues of polymorphism, type inheritance, object identity, and the choice of structures to represent sets of similar values. Our conclusion is that there are areas of programming language research—modules, polymorphism, persistence, and inheritance—that must be developed and applied to achieve the goal of a useful and consistent database programming language. Other research areas of equal importance, such as implementation, transaction handling, and concurrency, are not examined here in any detail.Keywords
This publication has 55 references indexed in Scilit:
- A structural view of the Cedar programming environmentACM Transactions on Programming Languages and Systems, 1986
- GALILEO: a strongly-typed, interactive conceptual languageACM Transactions on Database Systems, 1985
- Equality, types, modules, and (why not?) generics for logic programmingThe Journal of Logic Programming, 1984
- Query Optimization in Database SystemsACM Computing Surveys, 1984
- The functional data model and the data languages DAPLEXACM Transactions on Database Systems, 1981
- A language facility for designing database-intensive applicationsACM Transactions on Database Systems, 1980
- Limitations of record-based information modelsACM Transactions on Database Systems, 1979
- A theory of type polymorphism in programmingJournal of Computer and System Sciences, 1978
- The design and implementation of INGRESACM Transactions on Database Systems, 1976
- System RACM Transactions on Database Systems, 1976