「读书」数据密集型应用 Day 2

106 阅读2分钟

第二章

数据模型

一个复杂的数据模型都是由很多中间层,很多 API 组成,而且掌握一个数据模型需要花费很多精力。

关系模型

你今天在⽹上看到的⼤部分内容依旧是由关系数据库来提供⽀持,⽆论是在线发布,讨论,社交⽹络,电⼦商务,游戏,软件即服务⽣产⼒应⽤程序等等内容。

NoSQL

  • 需要⽐关系数据库更好的可扩展性,包括⾮常⼤的数据集或⾮常⾼的写⼊吞吐量
  • 相⽐商业数据库产品,免费和开源软件更受偏爱。
  • 关系模型不能很好地⽀持⼀些特殊的查询操作
  • 受挫于关系模型的限制性,渴望⼀种更具多动态性与表现⼒的数据模型

对象关系不匹配

多对一和多对多的关系

  • 人和地点多对一
  • 人和学校或者公司多对多

文档数据库是否在重蹈覆辙

网络模型

⽹络模型中记录之间的链接不是外键,⽽更像编程语⾔中的指针(同时仍然存储在磁盘上)。访问记录的唯⼀⽅法是跟随从根记录起沿这些链路所形成的路径。这被称为访问路径(access path)。

关系模型

文档模型中的架构灵活性

查询的数据局部性

局部性仅仅适⽤于同时需要⽂档绝⼤部分内容的情况。数据库通常需要加载整个⽂档,即使只访问其中的⼀⼩部分,这对于⼤型⽂档来说是很浪费的。更新⽂档时,通常需要整个重写。只有不改变⽂档⼤⼩的修改才可以容易地原地执⾏。

关键词

  • 混合持久化
  • 阻抗不匹配(模型之间的不连贯)
  • 对象关系映射
  • 层次模型
  • 关系模型
  • 网络模型
  • 访问路径
  • 无模式
  • 读时模式
  • 写时模式
  • 多表索引集群表