语言的边界就是世界的边界。
——Ludwig wittgenstein,《逻辑哲学轮》(1922)
数据模型可能是开发软件中最重要的部分,它们不仅对软件的编写方式,而且还对思考待解决问题都有深远影响
关系模型与文档模型
NoSQL的诞生
NoSQL:不仅仅是SQL
采用NoSQL数据库的驱动因素:
- 比关系数据库更好的扩展性需求,包括支持超大数据集或者超高写入吞吐量
- 普遍偏爱免费和开源软件而不是商业数据库产品(想不明白这是为什么,商业软件就没有数据NoSQL概念的?)
- 关系模型不能很好地支持一些特定的查询操作
- 对关系模式一些限制性感到沮丧,渴望更具动态和表达力的数据模型(文档模型,k-v模型?)
对象-关系不匹配
这一段没读明白,书中以简历作为例子,解释不适合以关系型数据库存储,而适合使用文档模型
多对一与多对多的关系
在表示一对多的关系中,文章模型的树状结构式不需要联结,支持联结通常也很弱。
文档数据库是否在重演历史
这一段讲了关系模型和网络模型数据库的争论历史
网络模型
CODASYL是层次的推广,在层次模型的树结构中,每个记录只有一个父节点;而在网络模型中,一个记录可以多个父节点;例如”大西雅图地区“可能有一个记录,居住在该地区的每个用户都链接指向它。从而支持多对一和多对多的关系进行建模
在网络模型中,记录主键的链接不是外键