Polymorphism and Type Inference in Database Programming

Peter Buneman, Atsushi Ohori

Research output: Contribution to journalArticlepeer-review

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.
Original languageEnglish
Pages (from-to)30-76
Number of pages47
JournalACM Transactions on Database Systems
Volume21
Issue number1
DOIs
Publication statusPublished - 1 Mar 1996

Fingerprint Dive into the research topics of 'Polymorphism and Type Inference in Database Programming'. Together they form a unique fingerprint.

Cite this