June 1976 | M. M. ASTRACHAN, M. W. BLASGEN, D. D. CHAMBERLIN, K. P. ESWARAN, J. N. GRAY, P. P. GRIFFITHS, W. F. KING, R. A. LORIE, P. R. MCJONES, J. W. MEHL, G. R. PUTZOLU, I. L. TRAIGER, B. W. WADE, AND V. WATSON
System R is a relational database management system that provides a high-level relational data interface. It ensures data independence by isolating the end user from underlying storage structures. The system allows the definition of various relational views on common data and includes features for data control, such as authorization, integrity assertions, triggered transactions, logging, recovery, and maintaining data consistency in shared-update environments. This paper describes the architecture and design of System R, which is currently being implemented and evaluated. It emphasizes that System R is a research tool, not a product.
The relational model was introduced by Codd in 1970 to address data independence and provide a high-level, nonprocedural data sublanguage for database users. System R is an experimental prototype being developed at IBM San Jose Research Laboratory. It includes a relational data interface (RDI) and a relational storage system (RSS). The RDI supports high-level data retrieval, manipulation, definition, and control, while the RSS manages storage, transaction consistency, locking, and recovery. The RDI includes the SEQUEL language for data definition and manipulation, and the RSS maintains indexes and pointer chains.
System R supports multiuser environments using virtual machines, with each user having a dedicated database machine. The system uses the host operating system for multitasking and leverages multiprocessors for efficient data management. The RDI provides an external interface for programming languages and supports various relational interfaces, including query by example. The RDI includes operators for data retrieval, manipulation, and control, as well as facilities for maintaining data consistency.
The RDI allows for the definition of relational views and supports complex queries, including joins, grouping, and sorting. It also includes features for data manipulation, such as insertion, deletion, and update of tuples. The system ensures data integrity through assertions and triggers, which enforce constraints on data modifications. The optimizer in System R selects the most efficient access path for executing queries based on available data structures and access paths.
The optimizer evaluates various methods for executing queries, considering factors such as clustering, image usage, and relation scans. It selects the method with the lowest expected cost, based on parameters like relation cardinality and tuple density. The system also includes mechanisms for maintaining views and ensuring that changes to base tables are reflected in views. The optimizer generates an optimized package (OP) for executing queries, which can be used to materialize tuples incrementally. If the structure of a base table or access paths change, all views based on that table must be reoptimized.System R is a relational database management system that provides a high-level relational data interface. It ensures data independence by isolating the end user from underlying storage structures. The system allows the definition of various relational views on common data and includes features for data control, such as authorization, integrity assertions, triggered transactions, logging, recovery, and maintaining data consistency in shared-update environments. This paper describes the architecture and design of System R, which is currently being implemented and evaluated. It emphasizes that System R is a research tool, not a product.
The relational model was introduced by Codd in 1970 to address data independence and provide a high-level, nonprocedural data sublanguage for database users. System R is an experimental prototype being developed at IBM San Jose Research Laboratory. It includes a relational data interface (RDI) and a relational storage system (RSS). The RDI supports high-level data retrieval, manipulation, definition, and control, while the RSS manages storage, transaction consistency, locking, and recovery. The RDI includes the SEQUEL language for data definition and manipulation, and the RSS maintains indexes and pointer chains.
System R supports multiuser environments using virtual machines, with each user having a dedicated database machine. The system uses the host operating system for multitasking and leverages multiprocessors for efficient data management. The RDI provides an external interface for programming languages and supports various relational interfaces, including query by example. The RDI includes operators for data retrieval, manipulation, and control, as well as facilities for maintaining data consistency.
The RDI allows for the definition of relational views and supports complex queries, including joins, grouping, and sorting. It also includes features for data manipulation, such as insertion, deletion, and update of tuples. The system ensures data integrity through assertions and triggers, which enforce constraints on data modifications. The optimizer in System R selects the most efficient access path for executing queries based on available data structures and access paths.
The optimizer evaluates various methods for executing queries, considering factors such as clustering, image usage, and relation scans. It selects the method with the lowest expected cost, based on parameters like relation cardinality and tuple density. The system also includes mechanisms for maintaining views and ensuring that changes to base tables are reflected in views. The optimizer generates an optimized package (OP) for executing queries, which can be used to materialize tuples incrementally. If the structure of a base table or access paths change, all views based on that table must be reoptimized.