History of Databases and Why They Matter Today
Before we start building, let's take a step back — not backward in time, but outward in perspective. You might be wondering: why does the history of databases matter? After all, you came here to learn SQL and understand data, not to memorize what happened in the 1950s. Here's the thing: understanding where databases came from explains why they work the way they do. When you know that the fundamental problem databases were born to solve — organizing massive amounts of information so you can ask questions of it quickly — you'll stop seeing SQL syntax and table design as arbitrary rules. Instead, you'll see them as elegant solutions to genuinely painful problems. That context is exactly what helps you evaluate whether an AI-generated query makes sense, or why a particular database design decision is better than another.
So let's rewind. Before there were databases, there were people — entire floors of office buildings filled with human beings whose job, full time every day, was to find, copy, organize, cross-reference, and file information. In the 1950s, a large insurance company might employ hundreds of clerks just to manage policy records. If an actuary needed to know how many 40-to-45-year-old male policyholders in Ohio had made claims in the last three years, a small army of humans would spend days pulling paper files, tallying numbers on adding machines, and praying they hadn't miscounted. That query — the one your laptop could answer in 40 milliseconds today — was a multi-day project requiring skilled professionals.
Computers arrived to fix this. They were spectacularly good at doing repetitive arithmetic quickly. But the way data was organized on them wasn't fundamentally different from a paper filing system.
The dominant model was called hierarchical storage: data arranged in a tree structure, like a filing cabinet with folders inside folders. IBM's IMS (Information Management System), developed in the 1960s to help manage NASA's Apollo program inventory, is the textbook example. It worked. It was an enormous improvement over manual records. But it had a structural problem that would haunt its users for years.
In a hierarchical database, you had to know — in advance — how you were going to access your data. If you organized your tree as Customer → Account → Transaction, you could quickly find all transactions for a given customer. But then you needed to find all transactions over $10,000 across all customers? You'd have to traverse every single branch of the tree. The database was optimized for one specific set of questions. Ask a different question, and you paid dearly.
The network database model, which emerged in the mid-1960s as a response to these limitations, was more flexible. It allowed records to have multiple relationships (nodes could have multiple parents), which solved some problems. But it created new ones: you had to explicitly navigate the relationships in your code. Programmers literally had to write instructions like "follow this pointer to that record, then follow that pointer to the next." It was powerful but deeply painful to work with. Changing the database structure often meant rewriting enormous amounts of application code.
Both models suffered from the same fundamental issue: they coupled the physical storage of data with the logical structure used to access it. The way data was stored on disk had to match the way you intended to query it. This is the computing equivalent of having to reorganize your entire library every time you want to find books by a new criterion.
Remember: The problem early databases solved was speed. The problem they created was rigidity. Understanding this sets up why Codd's insight was so revolutionary.
The Man Who Changed Everything: Edgar F. Codd's 1970 Paper
In June 1970, a British mathematician named Edgar F. "Ted" Codd — working at IBM's San Jose Research Laboratory — published a 12-page academic paper with the wonderfully bureaucratic title: "A Relational Model of Data for Large Shared Data Banks."
It's not an exaggeration to say this paper is one of the most consequential documents in the history of computing. It introduced an idea that seems almost obvious in retrospect (the best ideas always do) but was genuinely radical at the time.
Codd's insight was this: separate the logical organization of data from its physical storage. Don't make the user navigate pointers and tree structures. Instead, represent all data as simple, flat tables — grids of rows and columns — and let the database figure out how to store and retrieve it efficiently on your behalf. Users should be able to ask what they want, not describe how to find it.
Furthermore, tables could reference each other through shared values. A table of customers and a table of orders didn't need to be physically linked by pointers; they could be related through a common customer ID. Want to see all orders for a given customer? Just ask. The database would figure out the join.
This is what "relational" means — not that the database has good relationships (though it does), but that the data model is built on mathematical relations (tables). Codd was drawing on formal mathematics, specifically set theory and first-order predicate logic, to build a foundation for data management that was provably correct and complete.
graph LR
A[Hierarchical Model\n1960s] --> B[Data organized as trees\nMust navigate paths manually\nRigid structure]
C[Network Model\n1960s] --> D[Multiple relationships allowed\nStill requires pointer navigation\nComplex to modify]
E[Relational Model\n1970] --> F[Data as simple tables\nAsk WHAT not HOW\nTables linked by shared values]
style E fill:#4a9eff,color:#fff
style F fill:#4a9eff,color:#fff
Codd also introduced the concept of data independence — the idea that changes to how data is physically stored shouldn't require changes to the applications using it. This sounds technical, but it was a commercial bombshell. One of the biggest costs in enterprise computing was the maintenance burden when databases needed restructuring. Codd's model promised to dramatically reduce that burden.
IBM's own historical account of Codd describes how his system would allow users to "access information without knowing the database's physical blueprint" — a capability that made it possible for non-specialists to retrieve data themselves, instead of having to submit requests to specialized programmers.
Codd earned his Turing Award — the Nobel Prize of computing — in 1981 for this work. He absolutely deserved it.
Why IBM Almost Buried It
Here's the plot twist: IBM, the company paying Codd's salary, resisted commercializing his idea for years.
The reason is darkly funny in retrospect: IBM had a highly profitable product called IMS, their hierarchical database. IMS was powering significant revenue. Actively investing in a replacement was, from a short-term business perspective, a threat to their own cash cow. There were also genuine technical skeptics — people who thought the relational model would be too slow to be practical given 1970s hardware. Scanning tables instead of following pre-built pointers seemed wasteful.
So IBM moved slowly. They eventually funded a research project called System R in 1973 to prototype Codd's ideas, but they were cautious about turning it into a product.
Meanwhile, a startup with nothing to lose moved fast. A company called Relational Software, Inc. — founded by a guy named Larry Ellison, who had read Codd's paper — shipped the first commercially available relational database in 1977. You probably know Relational Software, Inc. by its later name: Oracle.
IBM eventually released DB2 in 1983, years after Oracle had already captured significant market share. It's one of the great examples in business history of a company letting a competitor commercialize its own invention. Though to be fair to IBM, they did give us something else from the System R project that turned out to be rather important.
SQL: A Language Anyone Could Read
The System R project produced two remarkable things. One was a working implementation of Codd's relational model. The other was a language for talking to it.
Don Chamberlin and Raymond Boyce, working on System R at IBM, developed a query language called SEQUEL (Structured English QUEry Language), later renamed SQL for trademark reasons. Their goal was explicitly to make database access available to people who weren't programmers — they wanted a language that business users could learn to use.
Compare these two approaches to finding high-value customers:
Network database (conceptual):
FIND FIRST CUSTOMER WITHIN CUSTOMER_SET
WHILE DB-STATUS = 0
MOVE CUST-BALANCE TO WS-BALANCE
IF WS-BALANCE > 10000
DISPLAY CUST-NAME
END-IF
FIND NEXT CUSTOMER WITHIN CUSTOMER_SET
END-WHILE
SQL:
SELECT customer_name FROM customers WHERE balance > 10000;
The SQL version is, with minimal training, readable by an accountant. "Select customer_name from customers where balance is greater than 10,000." It's almost English. That wasn't an accident — it was a deliberate design philosophy. Chamberlin and Boyce wanted the database to do the hard thinking so the human didn't have to specify navigation paths.
Tip: When SQL feels unintuitive later in this course, remember this design intention. The syntax was built to be readable first. If your query reads roughly like an English sentence describing what you want, you're probably on the right track.
SQL became an ANSI standard in 1986 and an ISO standard in 1987. As W3Schools summarizes it, it's been the standard language for accessing and manipulating databases ever since. That's nearly 40 years of relevance in an industry that typically cycles through hot new technologies every three to five years. For context: SQL is older than the World Wide Web. It predates the iPhone by two decades. Entire computing paradigms have risen and fallen while SQL has just... kept working.
The Eras of Database History, in 90 Seconds
If you want the full arc, here's the timeline collapsed into something digestible:
graph TD
A[1880s-1950s\nPaper Records & Punch Cards\nHuman-powered retrieval] --> B[1960s\nHierarchical & Network Databases\nFast but rigid, programmer-only]
B --> C[1970\nCodd's Relational Model\nTables + logical queries]
C --> D[1977-1983\nFirst Commercial RDBMSs\nOracle, DB2, Sybase]
D --> E[1986\nSQL becomes ANSI Standard\nUniversal language for relational data]
E --> F[1990s-2000s\nRDBMS Dominance\nMySQL, PostgreSQL, SQL Server]
F --> G[Late 2000s\nNoSQL Movement\nCassandra, MongoDB — scale over guarantees]
G --> H[2010s-Present\nNewSQL & Distributed SQL\nScale AND relational guarantees]
The CockroachDB blog has an excellent summary of this arc that makes the progression feel logical rather than arbitrary. The key transitions each happened because a new constraint appeared:
- Hierarchical → Relational: Flexibility. Hierarchical databases were too rigid and locked data and access patterns together.
- Relational → NoSQL: Scale. Relational databases were designed for single machines; the internet created workloads no single machine could handle.
- NoSQL → Distributed SQL: Guarantees. NoSQL could scale, but it sacrificed the data consistency properties that made relational databases trustworthy in the first place.
Each era isn't a story of the previous technology being wrong — it's a story of the constraints changing. Hierarchical databases were excellent solutions for the problems of the 1960s. They became inadequate solutions for the problems of the 1980s. This pattern repeats throughout computing, and recognizing it helps you evaluate today's database landscape more clearly.
What This History Tells Us About Good Data Models
There's a through-line in this story that's worth naming explicitly, because it'll inform every design decision we discuss later in this course.
Good data models separate concerns. Codd's genius was separating what the data means (the logical model) from how it's stored (the physical implementation). Every time databases have gotten stuck, it's been because someone collapsed these two layers together — optimizing for today's access patterns at the expense of tomorrow's questions.
Good data models are honest about relationships. The relational model's core insight — that relationships between data can be represented as data itself, through shared keys in tables — turns out to be extraordinarily general. It maps onto how we actually think about information. Customers have orders. Orders have line items. Students take courses. Courses have instructors. These relationships don't need pointers and tree structures; they just need a consistent way to reference each other.
Good data models age well. SQL is nearly 40 years old as a standard and is still being taught in universities, used in startups, and running the world's most critical financial systems. The reason isn't nostalgia. It's that the relational model, and the language built to interact with it, accurately captured something real about how structured information works. When a model is right about the fundamental nature of a problem, it doesn't get replaced — it gets extended.
Remember: Databases didn't win because they were technically impressive. They won because they solved a real, expensive, human problem. Every time you write a query that returns an answer in milliseconds, you're cashing a check that Edgar Codd wrote in 1970.
The story of databases is ultimately a story about leverage. One person with the right query can answer questions that once required entire departments. That leverage hasn't disappeared in the age of AI — if anything, it's intensified. But we're getting ahead of ourselves.
First, let's talk about why your spreadsheet might be perfectly good enough for some things — and exactly what its limits are when it isn't.
Only visible to you
Sign in to take notes.