Browse Prior Art Database

Theseus - A Programming Language for Relational Databases

IP.com Disclosure Number: IPCOM000128616D
Original Publication Date: 1979-Dec-31
Included in the Prior Art Database: 2005-Sep-16
Document File: 24 page(s) / 70K

Publishing Venue

Software Patent Institute

Related People

Jonathan E. Shopiro: AUTHOR [+3]

Abstract

A database is a model of some part of the world. A set of relations [Cold 70] describing the entities of that world is an agreeable form for such a model, because it is easy for people to understand how the tuples of the relations represent. facts about the objects of the world [Date 77]. One of the main advantages of relational databases over other kinds of databases is that information about many different. aspects of the world can be easily accommodated in the same model without bias toward any particular aspect. For example, a relational database for a corporation can contain information about employees, departments, suppliers, products, and customers and all their interrelationships in such a way that it is equally easy to request information about. any of the various kinds of objects or relation-ships. A considerable effort (Chamberlin 76, Zloof 751 has been expended on the design of interactive query languages for rela-tional databases, but there has been rather less work [Stonebraker and Rowe 771 on programming languages for relational databases. We believe that the same benefits of easy access to informa-tion regarding all aspects of the data model should accrue to the application programmer as well as they interactive user, especially since most use of the database, interactive or batch, is likely to be by specialized application programs rather than a general user interface. One of the reasons for the lack of development of programming languages for relational databases has bean that a human programmer with knowledge of the physical implementation underlying the rela-tional database could write a much more efficient program than would be expected from a compiler of a relational language. We believe that automatic program optimization (particularly flow analysis [Hecht 771 and data structure selection [Low and Rovner 76;) has reached the state at which this no longer need be true; that is, we believe that a compiler cyan be built that can take a program written at the relational level and a description of the physical implementation of the database and generate highly effi-cient- code. We are particularly interested in global program op-timization [Allen 69], rather than optimization of individual re-trieval requests [Lorie and Wade 771. Our goals in designing Theseus were to build a t.est.bed for advanced research in program optimization that would be a powerful, useful, and useable language for relational database applications. We felt it should have the following characteristics:

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 6% of the total text.

Page 1 of 24

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

Theseus - A Programming Language for Relational Databases

Jonathan E. Shopiro Computer Science Department The University of Rochester Rochester, NY 14627

TR31 (Revised)

March 1979 Theseus, a very high level programming language extending EUCLID, is described. Data objects in Theseus include relations and a-sets, a generalization of records. Primary design goals of Theseus are to facilitate the writing of well-structured programs for database applications and to serve as a vehicle for research in automatic program optimization.

The preparation of this paper was supported in part by the Alfred P. Sloan Foundation under Grant No. 74-12-5, and in part by the National Science Foundation under Grant No. MCS76- 10825.

1.0 INTRODUCTION '

A database is a model of some part of the world. A set of relations [Cold 70] describing the entities of that world is an agreeable form for such a model, because it is easy for people to understand how the tuples of the relations represent. facts about the objects of the world [Date
77].

One of the main advantages of relational databases over other kinds of databases is that information about many different. aspects of the world can be easily accommodated in the same model without bias toward any particular aspect. For example, a relational database for a corporation can contain information about employees, departments, suppliers, products, and customers and all their interrelationships in such a way that it is equally easy to request information about. any of the various kinds of objects or relation-ships. A considerable effort (Chamberlin 76, Zloof 751 has been expended on the design of interactive query languages for rela-tional databases, but there has been rather less work [Stonebraker and Rowe 771 on programming languages for relational databases.

We believe that the same benefits of easy access to informa-tion regarding all aspects of the data model should accrue to the application programmer as well as they interactive user, especially since most use of the database, interactive or batch, is likely to be by specialized application programs rather than a general user interface.

One of the reasons for the lack of development of programming languages for relational databases has bean that a human programmer with knowledge of the physical implementation underlying the rela-tional database could write a much more efficient program than would be expected from a compiler of a relational language. We believe that automatic program optimization (particularly flow analysis [Hecht 771 and data structure selection [Low and Rovner 76;) has reached the state at which this no longer need be true; that is, we believe that a compiler cyan be built that can take a program written at the relational level and a description of the physical implementation of the database and generate highly effi-cient- code. We are particularly interested in global progr...