Edinburgh Research Explorer

Polymorphism and Type Inference in Database Programming

Research output: Contribution to journalArticle

Related Edinburgh Organisations

Open Access permissions

Open

Documents

  • Download as Adobe PDF

    Rights statement: This is the authors’ version of the article published in ACM Transactions on Database Systems, 21(1):30-76, 1996.

    Accepted author manuscript, 422 KB, PDF document

http://dl.acm.org/citation.cfm?id=227609
Original languageEnglish
Pages (from-to)30-76
Number of pages47
JournalACM Transactions on Database Systems
Volume21
Issue number1
DOIs
Publication statusPublished - 1 Mar 1996

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.

Download statistics

No data available

ID: 10624688