The design and implementation of INGRES

The currently operational (March 1976) version of the INGRES database management system is described. This multiuser system gives a relational view of data, supports two high level nonprocedural data sublanguages, and runs as a collection of user processes on top of the UNIX operating system for Digital Equipment Corporation PDP 11/40, 11/45, and 11/70 computers. Emphasis is on the design decisions and tradeoffs related to (1) structuring the system into processes, (2) embedding one command language in a general purpose programming language, (3) the algorithms implemented to process interactions, (4) the access methods implemented, (5) the concurrency and recovery control currently provided, and (6) the data structures used for system catalogs and the role of the database administrator. Also discussed are (1) support for integrity constraints (which is only partly operational), (2) the not yet supported features concerning views and protection, and (3) future plans concerning the system.

[1]  A. Retrospective,et al.  The UNIX Time-sharing System , 1977 .

[2]  Michael Stonebraker,et al.  Implementation of integrity constraints and views by query modification , 1975, SIGMOD '75.

[3]  Michael Stonebraker,et al.  An Approach to Implementing a Geo-Data System , 1975, Data Bases for Interactive Design.

[4]  Michael Stonebraker,et al.  The INGRES protection system , 1976, ACM '76.

[5]  Irving L. Traiger,et al.  Granularity of locks in a shared data base , 1975, VLDB '75.

[6]  Michael Stonebraker,et al.  Access control in a relational data base management system by query modification , 1974, ACM '74.

[7]  E. F. Codd,et al.  The relational and network approaches: Comparison of the application programming interfaces , 1975, SIGFIDET '74.

[8]  Michael Stonebraker,et al.  B-trees re-examined , 1978, CACM.

[9]  Irving L. Traiger,et al.  Views, authorization, and locking in a relational data base system , 1975, AFIPS '75.

[10]  E. F. Codd,et al.  A data base sublanguage founded on the relational calculus , 1971, SIGFIDET '71.

[11]  E. F. Codd,et al.  Relational Completeness of Data Base Sublanguages , 1972, Research Report / RJ / IBM / San Jose, California.

[12]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[13]  Gerald David Held Storage structures for relational data base management systems. , 1975 .

[14]  Donald D. Chamberlin,et al.  SEQUEL: A structured English query language , 1974, SIGFIDET '74.

[15]  Michael Stonebraker,et al.  A functional view of data independence , 1974, SIGFIDET '74.

[16]  Nancy Harriet Mcdonald Cupid: a graphics oriented facility for support of non-programmer interactions with a data base. , 1975 .

[17]  Michael Stonebraker,et al.  Embedding a relational data sublanguage in a general purpose programming language , 1976, Conference on Data: Abstraction, Definition and Structure.

[18]  Michael Stonebraker,et al.  CUPID - The Friendly Query Language , 1975, ACM Pacific.

[19]  E. F. Codd,et al.  Interactive support for non-programmers: The relational and network approaches , 1975, SIGFIDET '74.

[20]  Philippe G. H. Lehot,et al.  A classification of compression methods and their usefulness for a large data processing center , 1975, AFIPS '75.

[21]  Eugene Wong,et al.  Decomposition—a strategy for query processing , 1976, TODS.

[22]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.