An ubiquitous piece of advice given regarding learning new technical concepts or tools is to research the history behind it. As a student developer at Launch School encountering relational database concepts and PostgreSQL for the first time, I wanted to know more about this Relational Database Management System (RDBMS) with the funny-sounding name, so I looked it up. Here’s what I found:

INGRES and Relational Databases

1973 was the year that saw the end of US involvement in the Vietnam War, the year that English rock band Deep Purple released Smoke on the Water, and the year the US Supreme Court ruled on Roe v. Wade. People were sporting Farrah Fawcett hairstyles and computer technologies were changing the way businesses operated. The corporate sector was driving development of Database Management Systems (DBMS), using them to maintain information about clients, vendors, employees, inventory, supplies, product orders, and service requests. At the same time, in a lab at the University of California at Berkeley, Eugene Wong and Michael Stonebraker were beginning work on INGRES (INteractive GRaphics REtrieval System), one of the world’s first RDBMSs. Initially, the researchers had raised funds to build a geographic database system for Berkeley’s economics group (1). However, inspired by Edgar Codd’s 1970 seminal work on the relational model (2) and by white papers that IBM had just released regarding SystemR — the first implementation of SQL and an experimental database system built on the relational data model (3, 4), the two researchers decided to use the money to seed their relational database project instead (1).

For the ongoing support of the larger INGRES project, the two received funding from the National Science Foundation and three military agencies: the Air Force Office of Scientific Research, the Army Research Office, and the Navy Electronic Systems Command (1, 5). The context of the military’s interest in the development of such systems, together with the the confluence of the Cold War and the emergence of computer technologies to manage information, likely influenced the system’s concern with access control, protection, security, ownership, and the database “administrator.”

The INGRES system fulfilled the requirements for database systems built on a relational model of data presented by Codd (1970): 1) information is presented by data values (rather than by ‘connections’ visible to the user), and 2) the use of a high-level declarative language with which users can query data without specifying algorithms (4). Essentially, the relational model required being both more user-friendly and robust to inevitable change.

This model was seen as diametrically opposed to the navigational database model, which came with a greater degree of data-dependence, meaning that application code needs to change whenever the data structure changes (8). On the other hand, a relational database system maintains keys, indices, and other “aids” used for processing user queries (e.g., a SELECT statement to represent “What is the lowest price of bolts?”) without the user having to include any information about these “aids” into their request, therefore existing applications won’t break when a system changes data representation or access aids (4).

See Figures 1 and 2 below for a visual comparison of a navigational database and a relational database. A navigational database program maintains a current position in any sequence of records being processed (8), thus “connections” are visible, whereas a relational database abstracts these connections into a third keyed relation.

Figure 1. Navigational Database