History is underrated
“What’s the point of studying history?” In high school I asked myself this question, exasperated as I sat/slept my way through year after year of history classes. To me, history represented rote memorization of facts and dates. Certainly these details were unimportant and would never be relevant to my future.
Databases is the one class I wish I had time to take in college. Working with databases is a skill required for any software developer. I’ve had some basic exposure to working with SQL from my internships with Amazon, but I’ve never delved into the theory of why and how databases work, and how they are designed. So to compensate, I’ve started reading “What Goes Around Comes Around”, a survey paper by Stonebraker and Hellerstein from MIT which covers ~35 years of database development.
One common complaint about studying history is that it’s boring. I’ve tried reading databases textbooks before and those are definitely more boring. They present the way databases work now, with their terminologies and technical terms, without any context about how things came to be. Relational databases were not intuitive at all to me. I had no idea why we design databases the way that we do.
On the other hand, “What Goes Around Comes Around” starts by presenting the first database systems, along with their flaws and limitations, and shows how successive systems addressed certain flaws while making others worse. The first database systems, such as IMS and CODASYL, allowed users only to access one record at a time. It’s easy to look back and see that this is clearly inferior to accessing a set at a time, which is what relational databases allow us to do. However, by placing myself in the shoes of the database system designer, it’s easy to see why they settled on the former. It’s more similar to other sorts of programming (COBOL) and I could easily see myself making the same design choice.