THE DESIGN OF POSTGRES (1986)
February 17, 2024The preliminary design of POSTGRES was presented in The Design of Postgres. According to Brief History of Postgres, the data model, rules, and storage system were separately described in different papers: The Postgres Data Model, The Design of the Postgres Rule System, and The Design of the Postgres Storage System.
POSTGRES is the successor to the INGRES relational database system. The main design goals of POSTGRES were to support complex objects, simplify the DBMS code for crash recovery, and utilize optical disks while making as few changes as possible to the relational model.
The complex objects in the paper are equivalent to composite types in the current POSTGRES. While the fields of complex objects and the body of the triggers were defined in POSTQUEL, POSTQUEL was replaced by SQL in POSTGRES 95.
Crash recovery is simplified by not overwriting data. By default, data in a relation is never deleted or updated. Moreover, historical data and versions can be accessed by indicating the desired time in POSTQUEL.
The Design of POSTGRES is referenced in the 2nd chapter of the Red Book to highlight POSTGRES as a remarkable RDBMS. While the Red Book acknowledges the composite type as an achievement of POSTGRES, it offers a less favorable evaluation of the feature to access past versions of tuples using POSTQUEL. The author of the Red Book believes that no-overwrite storage will become more relevant as faster storage technology changes the economics of data management.