3. Data Models and Query Languages
3. Data Models and Query Languages
Chapter 3 of Designing Data-Intensive Applications — 12 sections.
"The limits of my language mean the limits of my world." — Ludwig Wittgenstein
Why data models matter more than they look: they have a profound effect not only on how the software is written, but on how we think about the problem we are solving.
Sections
- 3.01The layer stackMost applications are built by layering one data model on another.
- 3.14Relational vs Document ModelsThe relational model: proposed by Edgar Codd in 1970.
- 3.22Graph-Like Data ModelsA graph has vertices (nodes, entities) and edges (relationships, arcs).
- 3.31Event Sourcing and CQRSA conference management system is a genuinely complex domain:
- 3.41DataFrames, Matrices, and ArraysModels you'll meet in analytical or scientific contexts that rarely feature in OLTP.
- 3.5Deep divesTechnology deep dives
- 3.6Failure catalogProduction failure catalog for this chapter
- 3.7Decision sheetDecision cheat sheetDocument if the data is a tree of one-to-many relationships typically loaded whole, the items are genuinely one-to-few, and you rarely need to reference nested items directly.
- 3.8TerminologyTerminology introduced here
- 3.9Worked examplesWorked examplesContrast the original posts ⋈ follows join, whose cost is linear in followee count — 200 lookups for a normal user, 10,000 for a power user.
- 3.10Self-testSelf-test
- 3.11Forward linksForward links