《Designing Data-Intensive Application》阅读笔记

Part I Foundations of Data Systems

Chapter 2 Data Models and Query Languages

High Level Idea

每一层向上一层提供抽象:

应用特定数据 -> JSON,XML等 -> 数据库 -> 磁盘等硬件

Relational Model Versus Document Model

应用友好性:取决于应用,一些认为关系模型的数据格式和 OOP mismatch;文档模型不适合 interconnect 程度高,many to many 很多的数据

schema:关系模型更严格,文档模型更灵活

局部性:文档模型局部性更好,需要获得一个实例的全部数据时效率更高

二者正走向相互融合

Query Language

SQL 是 declaration language,与 imperative language 相比,可以隐藏数据库的实现细节

Chapter 3 Storage and Retrieval

Chapter 4 Encoding and Evolution

Part II Distributed Data

Chapter 5 Replication

Chapter 6 Partitioning

Chapter 7 Transactions

Chapter 8 The Trouble with Distributed Systems

Chapter 9 Consistency and Consensus

Part III Derived Data

Chapter 10 Batch Processing

Chapter 11 Stream Processing

Chapter 12 The Future of Data Systems