How was the INGRES database management system designed and implemented? This paper describes the design and implementation of the INGRES database management system, which offers a relational view of data, supports high-level nonprocedural data sublanguages, and runs as a collection of user processes on top of the UNIX operating system. Emphasis is placed on the decisions and tradeoffs related to structuring the system into processes, embedding a command language, processing interactions, implementing access methods, managing concurrency and recovery, and designing system catalogs. The paper also discusses integrity constraints, views, protection mechanisms, and future plans for the system, offering a comprehensive overview of the INGRES architecture and functionality. The design choices and tradeoffs discussed in this paper provide valuable insights into the development of relational database systems and their evolution. By detailing the implementation of INGRES, this work contributes to the understanding of database management systems and their impact on data processing.
Appearing in ACM Transactions on Database Systems, this description of the INGRES system directly aligns with the journal's focus on database technology. The paper's detailed discussion of design decisions, implementation techniques, and system architecture falls squarely within the journal's scope, providing valuable insights for researchers and practitioners in the field.