-5

The question/title might be ambiguous, so please feel free to improve (or even migrate if necessary) it.

My primary concern is what are the innovations of relational model/theory/databases? (In particular, so groundbreaking that it deserves a Turing Award?)

It feels to me that regardless of the mathematically notation (formal language, proved closure property, etc), the intuition behind relational theory is very simple. After all, we have tabulating representation with headers and columns long before modern computing emerged. Examples: roster, military records, bank sheets, etc.

Based on these real life counterparts, table/relation seems very direct and intuitive. So in historical context,

  1. what prevented pioneers from invented relational model until the 70s?
  2. what is relational model's advantage over hierachical/network/navigational databases?
  • 2
    I think you should do more research into history of data persistence and provide some better arguments as to why do you think is should have been possible for relational databases to be "invented" sooner. – Euphoric Apr 26 at 17:50
  • The "relational model" is really a constellation of features and insights. The reason it came together theoretically during the late 60s (Codd published in 1970) is because that was high time to have an explicit science of data processing, in order to automate it with computers and enable more complexity to be managed. Before then, the relative flexibility of paper files (which defies a succinct science), and the overwhelming cost of manual tabulation which was usually the limiting factor on complexity, meant that there was little need for a rigorous relational model. – Steve Apr 26 at 18:40
  • 2
    For anyone who's interested, curiosity led me to seeking out the following article by Codd, which talks about some of the circumstances at the time: dl.acm.org/doi/10.1145/1283920.1283937 – Steve Apr 26 at 18:58
  • @Euphoric I tried but there is so little literature regarding the history of database compared to that of general computing, PC, OS, internet or web. Do you have any recommendations? – wlnirvana Apr 27 at 3:18
  • @wlnirvana There is TONS of literature on databases and their evolution! Codd's early papers were revolutionary in part because "network" databases and "hierarchical" databases had already been heavily studied and published about. – Ross Patterson Oct 11 at 21:07
3

The invention was not tables, it was "data independence" which means data is decoupled from specific applications.

Tables was indeed nothing new. They are just a representation of a set of records with the same structure. This have existed as long as electronic data processing (and in physical form probably as long as organized bookkeeping has existed)

As long as records are independent it is simple. The question arises when records have relationships to other records. In hierarchical databases, records are stored inside other records. In network databases, related records are linked by storing pointers from one record to another along with the data.

These models are simple and fast, but have the fundamental limitation that the database schema determines which queries are possible, since queries work by navigating the existing structure - traversing the hierarchy or following the stored pointers. In other words, the database schema has to be designed based on how it is expected that the application logic will use it. We have a tight coupling between data and application logic.

One fundamental insight in the relational model is that relationships in themselves can be represented as data: The idea of the "foreign key". This decouples the representation of the relationships from implementation details like how data is stored physically and the mechanism of queries.

You can now write queries independently of what the designers of the database initially expected. This is incredibly important when you have long-living data stores. Applications tend to come and go, while data lives forever.

Of course you still need optimizations. The difference is that the optimizations in a relational database (indexes, materialized queries etc.) are not tightly coupled with the data itself. You can change or add new optimizations ad-hoc as new requirements arises. Since the data model is decoupled from its physical representation you can do stuff like changing from row-stored to column-storage, implement sharding and so on without breaking any existing application.

The idea of "data independence" did probably not in itself warrant a Turing Award. What E.F. Codd did in his seminal paper https://cs.uwaterloo.ca/~david/cs848s14/codd-relational.pdf was not only to advocate data independence, but also to device a theoretical model including a full query language (relational algebra) which can be used to perform any query over a relational database.

This query language is itself decoupled from the physical storage model. It only represent the logical query, and then a query engine will device a query plan for how to physically retrieve the data in an optimal way. This is an incredibly powerful abstraction.

What prevented pioneers from inventing the relational model earlier? I'm not sure this can be answered. It is possible that the limitations of the previous models first needed to become apparent.

| improve this answer | |
  • 1
    Very insightful. I think a hierarchical database may have schema-unaware queries, like the posix find utility, but it is indeed much more awkward compared to SQL queries. So may I took your argument as the breakthrough of the relational model is probably that it delineated the possibility of an independent (on application logic) layer of structured storage and consistent interface (SQL in the 80s and on) to interact with the database? – wlnirvana Apr 27 at 3:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.