关系数据库的数据模型:行,表
NoSQL数据库的数据模型:键值,文档,列族,图
NoSQL数据库的数据模型是面向聚合的
1.聚合
把一组相互关联的对象视为一个整体单元来操作,这个单元就叫聚合。
1.1 关系模型与聚合模型示例
聚合模型建模其实不是划分聚合边界,而是规划数据的访问方式。
1.2 面向聚合的影响
关系数据库的数据模型是聚合无知的。
聚合的边界一般都很难正确的划分,当不同场景要使用同一份数据时,更是如此。
在操作数据时,如果没有一种占主导地位的结构,那么选用聚合无知型的数据模型效果会更好(也就是关系数据库模型)
选用面向聚合模型的决定性因素,就在于它非常适合在集群上运行。
2.键值数据模型与文档数据模型
键值数据模型与文档数据模型的区别是:
键值数据库的模型的聚合不透明,只包含一些没有太多意义的大块信息,与此相反,在文档数据库的聚合中,可以看到其结构;键值数据库可以存储任意数据,没有什么限制,文档数据库则要限制其中存放的内容,比如存放的数据结构及数据类型等,这样做的好处是能够更加灵活的访问数据;键值数据库只能通过键来查找聚合内容,文档数据库则可以用聚合中的字段查询,还可以只获取一部分聚合,按聚合内容创建索引。
3.列族存储
列族模型是两级聚合结构。