Database Systems: Structure of a Database File System for the UNIX OperatingSystem
01 November 1982
This article describes the structure of a database file system for the UNIX* operating system. A database file system, as the term is used here, handles these database functions: · Ensuring that transactions are atomic: that they are either done in their entirety or not at all. * Trademark of Bell Laboratories. 2387 · Ensuring that transactions are permanent', that their effects are not lost, even if the hardware fails. · Ensuring that transactions are serializable: that concurrently run transactions have the same effect as some sequence of the same transactions run one at a time. · Storing, updating, and deleting arbitrary data records. · Indexing data records (there may be more than one key per record, and more than one record per key). A database file system does not perform these database functions: · Enforcing a user-defined data model, specified by a schema. · Providing a high-level query language. · Automatically generating keys and updating the appropriate indexes as records are stored, updated, and deleted. · Automatically maintaining relationships between records. To summarize the above lists: a database file system provides record storage, access methods, recovery, and concurrency control. It is a lowlevel basis onto which a database management system can be built. It can support any of the traditional data models: hierarchical, network or relational. My reasons for focusing on the low-level end of the database problem, rather than the (probably more popular) high-level end, are these: (i) The functions (user interface) are not controversial.