The Relational Model
Dominance
Read aloud is unavailable in this browser.
How a Theory Conquered an Industry
In 1970, when E.F. Codd published his paper on the relational model, the database market was dominated by established players using hierarchical and network databases. IBM's IMS (Information Management System) was the industry leader, deployed in thousands of enterprises worldwide. The CODASYL network model had broad industry backing and an official standard.
Codd's relational model was theoretical—an academic proposal from a mathematician, not a product. Industry veterans dismissed it as impractical. "You can't build a real database on set theory," they said. "The performance will never be acceptable."
They were wrong.
By the 1990s, the relational model had achieved near-total dominance. Oracle, DB2, Sybase, Informix, SQL Server, PostgreSQL—virtually every major database adopted relational principles. The hierarchical and network models, once industry standards, became legacy curiosities.
How did a mathematical abstraction triumph over entrenched, proven technology? The answer reveals fundamental truths about technology adoption, the value of abstraction, and why good ideas—eventually—win.
By the end of this page, you will understand the historical context of the relational model's emergence, the technical and practical advantages that drove adoption, how the relational model overcame its initial performance disadvantage, and why dominance matters for your career and technology choices.
The Pre-Relational Landscape
To appreciate why the relational model won, we must understand what it was competing against.
The Hierarchical Model (IMS Era)
IBM's IMS, launched in 1968, was the dominant database of the 1970s. It organized data in tree structures:
- A root record type
- Child record types branching below
- Relationships fixed at design time
- Navigation through explicit traversal
Strengths:
- Excellent performance for known access patterns
- Efficient storage for hierarchical data
- Well-suited to batch processing workloads
- Mature, stable, deeply integrated in enterprises
Weaknesses:
- Rigid structure—changing relationships required redesign
- Complex programming—developers needed to navigate pointer chains
- Poor ad-hoc queries—new queries might require schema changes
- Redundancy—data repeated across hierarchies
The Network Model (CODASYL)
The CODASYL (Conference on Data Systems Languages) model generalized hierarchies into graphs:
- Records could have multiple parent types
- Many-to-many relationships via owner-member sets
- More flexible than hierarchical
- Still navigation-based
Strengths:
- Could represent complex relationships
- Industry-standard specification
- Supported by multiple vendors
- Better than hierarchical for non-tree structures
Weaknesses:
- Even more complex pointer navigation
- "Spaghetti" data structures
- Steep learning curve
- Schema changes still disruptive
| Characteristic | Hierarchical (IMS) | Network (CODASYL) |
|---|---|---|
| Data Structure | Trees (parent-child) | Graphs (sets, members) |
| Access Method | Pointer navigation | Pointer navigation |
| Query Style | Procedural (navigate step by step) | Procedural (navigate sets) |
| Relationships | 1:N only, fixed at design | M:N possible, still fixed |
| Schema Flexibility | Low (tree restructuring hard) | Low (set restructuring hard) |
| Ad-hoc Queries | Difficult (may need new program) | Difficult (complex navigation) |
| Physical Independence | Low (programs know structure) | Low (navigation is physical) |
In pre-relational systems, application programmers needed intimate knowledge of data storage. They wrote code to navigate pointer chains, knew physical record layouts, and built data access paths into applications. Changing the database structure often meant rewriting applications—an enormous ongoing cost.
The Relational Revolution
Codd's 1970 paper proposed something radically different: a data model based on mathematical relations, not physical pointers.
The Revolutionary Ideas
1. Data Independence Applications would work with logical tables, ignorant of physical storage. Change how data is stored without changing applications.
2. Declarative Queries Specify WHAT you want, not HOW to get it. The system figures out the access path.
3. Mathematical Foundation Operations defined formally, enabling automatic optimization and correctness proofs.
4. Simplicity Tables are intuitive. Anyone can understand rows and columns. No pointer navigation to learn.
5. Ad-hoc Query Capability Any query expressible in relational algebra/calculus could be run without programming—even queries not anticipated at design time.
// HIERARCHICAL (IMS-style)// Find all employees in Engineering GET UNIQUE Department WHERE DeptName = 'Engineering' IF status = 'found' THEN GET NEXT WITHIN PARENT Employee WHILE status = 'found' DO PRINT Employee.Name PRINT Employee.Salary GET NEXT WITHIN PARENT Employee END WHILEEND IF // Programmer must:// - Know the hierarchy structure// - Navigate parent to children// - Handle iteration manually// - Manage positioning state-- RELATIONAL (SQL)-- Find all employees in Engineering SELECT name, salaryFROM employeeWHERE department = 'Engineering'; -- Programmer specifies:// - What data (name, salary)// - From where (employee)// - Matching what (department) -- System handles:// - How to find the data// - Which indexes to use// - In what order to process// - All physical detailsThe Contrast Was Stark
The hierarchical query required understanding the physical structure, navigating explicitly, and handling iteration. The relational query simply declared what was wanted.
This difference wasn't merely aesthetic. It meant:
- New queries took minutes to write, not days
- Businesspeople could formulate questions without programmers
- Database changes didn't require application rewrites
- Optimization could happen transparently
But there was a problem.
Early relational systems were SLOW. Critics argued that navigational databases would always be faster because programmers could hand-optimize access paths. Letting the system figure it out seemed inherently inefficient. This objection was taken seriously and nearly doomed the relational model.
Overcoming the Performance Gap
The 1970s saw intense debate about relational viability. Charles Bachman (network model inventor) and Ted Codd engaged in famous debates. The core question: Could relational systems ever match navigational performance?
The Performance Problem
Early relational prototypes (System R at IBM, INGRES at Berkeley) were indeed slower than IMS for comparable workloads. The abstraction penalty seemed real.
The Solution: Query Optimization
The breakthrough came from an unexpected direction. Because relational queries are declarative, the system has freedom in HOW to execute them. Query optimizers could:
- Analyze the query mathematically
- Consider multiple execution strategies (different join orders, index choices)
- Estimate costs based on statistics
- Choose the optimal plan automatically
A hand-tuned navigational program might be 10% faster than a naive relational execution. But a query optimizer could often find execution plans that no human programmer would consider.
Optimizer Advantage
How optimizers can outperform hand-coded navigation
Query: Find employees in departments with budget > $1M
who were hired after 2020, ordered by salary.
Hand-coded approach (typical programmer):
1. Scan Department where budget > 1M
2. For each, find employees via FK lookup
3. Filter by hire_date
4. Sort results
Optimizer approach:
1. Check statistics: 80% of employees are post-2020
2. Check: Index exists on hire_date, not on department_id
3. Better plan: Use hire_date index first (quick),
then filter by department budgetWhen data distribution favors different access paths:
Hand-coded: 500ms (scanned all departments, many FK lookups)
Optimized: 50ms (used index, fewer random I/Os)
The optimizer had information (statistics, indexes) that the
programmer writing the navigational code didn't consider.
Multiplied across thousands of queries, this advantage is massive.The Pivotal Insight
As optimizer technology matured through the 1980s, something remarkable happened: relational systems became competitive with navigational systems for most workloads, and often faster for ad-hoc queries.
The key insight: abstraction enables optimization.
When programmers specify access paths (navigation), they lock in decisions made with limited information at coding time. When the system chooses access paths (declarative), it can use current statistics, current indexes, and current data distributions.
As databases grew and queries diversified, this advantage compounded. Navigational programs optimized for 1985 data patterns became suboptimal in 1990. Relational queries automatically adapted.
Hardware improvements also mattered. The overhead of query parsing and optimization that seemed expensive in 1975 became trivial by 1985. CPU cycles became cheap; programmer time became expensive. The economics shifted to favor systems that minimized developer effort, even at some computational cost.
The Productivity Advantage
While performance debates raged among technologists, business decision-makers noticed something more important: relational systems made developers dramatically more productive.
Quantifying the Difference
Studies in the 1980s found:
- Ad-hoc queries: 10-100x faster to write in SQL vs. navigational code
- Application development: 2-5x faster with relational vs. hierarchical
- Schema changes: Days or hours vs. weeks or months
- Training time: SQL learnable in days; CODASYL took months
These productivity gains translated directly to business impact.
- •Faster time to market — New applications developed faster meant earlier revenue and competitive advantage.
- •Lower development costs — Fewer programmer hours per feature reduced project budgets significantly.
- •Reduced maintenance burden — Data independence meant schema evolution without application rewrites.
- •Empowered business users — Report generation without programmer involvement accelerated decision-making.
- •Talent availability — SQL was easier to learn; organizations could hire and train developers faster.
- •Flexibility for change — Business requirements shifted frequently; relational adapted more easily.
The Rise of 4GL and End-User Computing
Relational databases enabled a new category: 4th Generation Languages (4GLs) and end-user query tools.
Products like:
- Oracle's SQL*Plus
- Ashton-Tate's dBASE
- Microsoft Access
- Various report writers
These allowed non-programmers to extract data, generate reports, and perform analysis. This was impossible with navigational databases—you couldn't expect businesspeople to learn pointer navigation.
The democratization of data access was revolutionary. Information that required formal IT requests and programmer involvement became directly accessible. This alone justified relational adoption for many organizations.
Navigational databases imposed costs that weren't always visible: programmer time spent understanding data structures, bugs from incorrect navigation, frozen designs because change was too expensive, and delayed projects waiting for database expertise. Relational systems reduced these hidden costs dramatically.
Industry Dynamics That Favored Relational
Beyond technical merits, several industry factors accelerated relational adoption.
1. SQL Standardization (1986-1992)
The ANSI SQL standard (SQL-86, SQL-89, SQL-92) created a common language across vendors. This reduced vendor lock-in fears, enabling:
- Portable applications
- Competitive pricing
- Training investments that transferred between systems
- Third-party tool ecosystems
No such standard existed for hierarchical or network databases (IMS was IBM-specific; CODASYL implementations varied).
2. The Client-Server Revolution
As computing moved from mainframes to client-server architectures in the 1980s-90s:
- Relational databases fit naturally (SQL as the interface)
- Hierarchical systems were mainframe-centric
- Startups built new products on relational foundations
- The installed base advantage of IMS became a liability
3. Hardware Trends
Relational systems benefited from:
- Cheaper memory enabling caching and buffering
- Faster CPUs making optimization overhead trivial
- Larger disks allowing B-tree indexes
- RAID enabling concurrent I/O relational systems could exploit
| Year | Event | Impact |
|---|---|---|
| 1970 | Codd's paper published | Theoretical foundation established |
| 1974-79 | System R, INGRES prototypes | Proved feasibility, developed SQL |
| 1979 | Oracle Version 2 released | First commercial relational DBMS |
| 1983 | IBM DB2 released | IBM legitimized relational model |
| 1986 | SQL becomes ANSI standard | Portability and vendor competition |
| 1988 | Sybase SQL Server launched | Client-server architecture popular |
| 1989 | Oracle V6 with PL/SQL | Procedural extensions mature relational |
| 1992 | SQL-92 (SQL2) standard | Comprehensive standardization |
| 1995 | MySQL open source release | Relational for the masses |
| 1996 | PostgreSQL emerges | Open source with advanced features |
| 2000s | Web era databases | All major web apps use relational |
Established mainframe vendors had massive investments in hierarchical systems. But startups (Oracle, Sybase, Informix) had no legacy to protect. They built purely relational products, iterated faster, and captured the growing client-server market. This is a classic innovator's dilemma story.
What Happened to the Alternatives?
If relational was so superior, did hierarchical and network databases disappear? Not entirely—but their role fundamentally changed.
IMS: Still Running, Rarely Growing
IBM's IMS still exists and runs critical workloads at major banks, airlines, and insurance companies. Why?
- Unmatched transaction performance for specific, repetitive workloads
- Billions invested in existing applications
- Risk aversion—systems with 40+ years of debugging are extremely stable
- If it ain't broke... mentality for mission-critical systems
But virtually no one builds NEW applications on IMS. It's maintained, not expanded.
CODASYL: Mostly Gone
The network model faded faster:
- No single vendor to champion it
- Complexity made migration more attractive
- Systems were replaced rather than maintained
- Few new practitioners learned it
- •Massive investment in existing code
- •Well-understood, debugged over decades
- •Extreme performance requirements met
- •Risk of migration outweighs benefits
- •Regulatory constraints on changes
- •Faster development for new projects
- •Easier to find skilled developers
- •Better tooling and ecosystem
- •More flexible for changing requirements
- •Industry momentum and standards
The Market Reality Today
By revenue and deployment:
- Relational databases: ~75% of the market (Oracle, MySQL, PostgreSQL, SQL Server, DB2)
- NoSQL/Document databases: ~15% (MongoDB, DynamoDB, Cassandra)
- Legacy hierarchical/network: ~5% (IMS, remaining CODASYL)
- Other (graph, time-series, etc.): ~5%
Relational's dominance is so complete that even "NoSQL" systems increasingly adopt relational features (SQL support, transactions, joins). The model Codd proposed has become the default paradigm.
COBOL programmers maintaining IMS systems command premium rates precisely because few new people learn these technologies. If you encounter legacy systems, understanding their model helps you interface with them—but building new skills on relational foundations remains the wiser career investment.
Lessons from Relational Dominance
The relational model's triumph offers broader lessons about technology adoption and the value of good abstractions.
1. Abstraction Wins Over Time
Low-level control feels powerful but creates coupling. Declarative approaches seem slower initially but enable optimization and adaptation. As systems grow, abstraction's benefits compound.
2. Developer Productivity Matters More Than Raw Performance
Most applications aren't performance-limited. Development time, maintenance cost, and flexibility determine success. Technologies that optimize for developer experience win markets.
3. Standards Create Ecosystems
SQL's standardization enabled competition, reduced risk, and spawned tool ecosystems. Proprietary advantages are temporary; ecosystem advantages compound.
4. Mathematical Foundations Pay Off
Codd's grounding in set theory wasn't academic decoration—it enabled query optimization, formal constraint checking, and provable correctness. Good theory enables good practice.
5. Network Effects Amplify Adoption
Once relational gained momentum: more developers learned SQL, more tools supported it, more books were written, more problems were solved. This created a self-reinforcing cycle.
- •Default to relational — Unless you have specific reasons otherwise, relational is the proven choice with the best ecosystem.
- •Understand the abstractions — Don't just use SQL; understand WHY it works. This helps you use it effectively and know when alternatives make sense.
- •Value flexibility — Requirements change. Technologies that accommodate change (like relational's data independence) save massive future costs.
- •Consider the ecosystem — A technology's tools, community, and support matter as much as raw capabilities.
- •Learn declarative thinking — Specifying WHAT over HOW is a valuable skill across many domains, not just databases.
Some argue we're seeing a new shift (NoSQL, NewSQL, graph databases). Perhaps. But notice: these alternatives largely accept relational concepts. They add capabilities rather than replacing the core model. The relational model's principles are expansive enough to absorb innovations. Don't bet against the fundamentals.
KEEP LEARNING
There’s more to understand.
You’re reading the introduction. Create a free account to read the complete lesson, save notes and keep track of your progress.