Cover of Designing Data-Intensive Applications by Martin Kleppmann - Business and Economics Book

From "Designing Data-Intensive Applications"

Author: Martin Kleppmann
Publisher: "O'Reilly Media, Inc."
Year: 2017
Category: Computers

🎧 Free Preview Complete

You've listened to your free 10-minute preview.
Sign up free to continue listening to the full summary.

🎧 Listen to Summary

Free 10-min Preview
0:00
Speed:
10:00 free remaining
Chapter 2: Data Models and Query Languages
Key Insight 2 from this chapter

The Relational Model: History, Dominance, and Limitations

Key Insight

The relational model, proposed by Edgar Codd in 1970 and embodied by SQL, remains arguably the most recognized data model, organizing data into tables (relations) comprising unordered collections of rows (tuples). Despite initial doubts about its implementation efficiency, relational database management systems (RDBMSes) and SQL rapidly became the standard by the mid-1980s for storing and querying structured data, sustaining their dominance for approximately 25-30 years in computing history.

Originating from 1960s-70s business data processing on mainframe computers, relational databases addressed mundane but critical use cases such as transaction processing for sales, banking, airline reservations, and stock-keeping, alongside batch processing for invoicing and payroll. The model's core innovation was to abstract away the internal data representation, offering application developers a cleaner interface, and it remarkably generalized beyond its initial scope to power a vast array of modern web applications, including online publishing, social networking, and e-commerce.

A prevalent criticism of the SQL data model, especially in contemporary object-oriented programming environments, is the 'object-relational impedance mismatch,' which necessitates an awkward translation layer between application-level objects and the database's table-centric structure. While Object-Relational Mapping (ORM) frameworks like ActiveRecord and Hibernate help reduce the boilerplate code for this translation, they cannot entirely eliminate the fundamental differences and conceptual disconnect between the two modeling paradigms.

📚 Continue Your Learning Journey — No Payment Required

Access the complete Designing Data-Intensive Applications summary with audio narration, key takeaways, and actionable insights from Martin Kleppmann.