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 1 from this chapter

Fundamentals of Data Models and Their Impact

Key Insight

Data models are a foundational aspect of software development, profoundly affecting how software is written and how problems are conceptualized. Applications are typically constructed by layering multiple data models, where each layer represents data in terms of the one below it. This hierarchy includes modeling real-world entities into application-specific objects, translating these into general-purpose data models like JSON documents or relational tables, representing that data as bytes in memory or on disk, and finally, hardware engineers mapping bytes to electrical currents or magnetic fields.

Each data model inherently assumes specific usage patterns, making some operations effortless while others are inefficient or unsupported, and some data transformations natural while others are awkward. Mastering a single data model demands considerable effort, yet its profound influence on software capabilities necessitates careful selection of an appropriate model for each application. This chapter specifically examines general-purpose data models for data storage and querying, including the relational, document, and graph models.

Crucially, these layered data models act as abstractions, effectively concealing the complexities of underlying layers by presenting a clean interface. This abstraction facilitates efficient collaboration among different specialist groups, such as database vendors designing the core systems and application developers utilizing those systems, enabling them to work together without needing to understand every underlying detail.

📚 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.