Polymorphism and type inference in database programming
- 1 March 1996
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Database Systems
- Vol. 21 (1) , 30-76
- https://doi.org/10.1145/227604.227609
Abstract
In order to find a static type system that adequately supports database languages, we need to express the most general type of a program that involves database operations. This can be achieved through an extension to the type system of ML that captures the polymorphic nation of field selection, together with a techniques that generalizes relational operators to arbitrary data structures. The combination provides a statically typed language in which generalized relational databases may be cleanly represented as typed structures. As in ML types are inferred, which relieves the programmer of making the type assertions that may be required in a complex database environment. These extensions may also be used to provide static polymorphic typechecking in object-oriented languages and databases. A problem that arises with object-oriented databases is the apparent need for dynamic typechecking when dealing queries on heterogeneous collections of objects. An extension of the type system needed for generalized relational operations can also be used for manipulating collections of dynamically typed values in a statically typed language. A prototype language based on these ideas has been implemented. While it lacks a proper treatment of persistent data, it demonstrates that a wide variety of database structures can be cleanly represented in a polymorphic programming language.Keywords
This publication has 42 references indexed in Scilit:
- A theory of type polymorphism in programmingPublished by Elsevier ,2003
- A polymorphic record calculus and its compilationACM Transactions on Programming Languages and Systems, 1995
- Comprehension syntaxACM SIGMOD Record, 1994
- Observations on the ODMG-93 proposal for an object-oriented database languageACM SIGMOD Record, 1994
- Complete sets of transformations for general E-unificationTheoretical Computer Science, 1989
- Types and persistence in database programming languagesACM Computing Surveys, 1987
- GALILEO: a strongly-typed, interactive conceptual languageACM Transactions on Database Systems, 1985
- Database relations with null valuesJournal of Computer and System Sciences, 1984
- Fundamental properties of infinite treesTheoretical Computer Science, 1983
- Rationale for the design of the Ada programming languageACM SIGPLAN Notices, 1979