NoSQL聚合数据模型

http://www.cnblogs.com/me115/p/3809482.html

NoSQL聚合数据模型

NoSQL聚合数据模型

特点

聚合数据模型的特点就是把经常访问的数据放在一起(聚合在一块); 
这样带来的好处很明显,对于某个查询请求,能够在与数据库一次交互中将所有数据都取出来; 
当然,以这种方式存储不可避免的会有重复,重复是为了更少的交互;

缺点

  • 聚合结构对某些交互有利,却阻碍另一些交互; 
    比如:以学生学号聚合学生信息(含学生姓名、班级、年龄、等信息,甚至英语学科成绩),通过学号查询时,能够在一次交互中查询出该学生的所有信息,但如果想通过学生姓名来查询,就很困难;

  • 不支持跨越多个聚合的ACID事务 
    聚合结构在事务方面的支持有限;有一些NOSQL产品实现了简单的事务支持,但对于跨越多个聚合结构的事务并不完善;

规划数据访问方式

选用NoSQL数据库,首要的工作就是设计键名及存放的数据; 

设计的原则是尽量减少所需要访问的聚合个数,在尽量少的交互中拿到所需要的数据; 
如果发现需要通过多种查询条件来获取数据,可能就选用NOSQL就不合适;关系数据库才是首选;

面向聚合的数据库

  • 键值数据库 
    可以存储任意数据,存储的数据对用户不透明,从外面看,只是包含了没有太多意义的大块数据;

    访问方式:通过键来查找

  • 文档数据库 
    文档数据库存储时定义了其允许的结构和数据类型,从外面看,可以看到内部结构; 
    在存储时限制其中存放的数据,这样带来的好处是能够更灵活的访问数据; 
    访问方式: 
    1.可用键名查询 
    2.可用聚合中的字段查询(定义存储的数据的结构所带来的好处) 
    3.可按照聚合内容创建索引

相关:关系数据模型

对于数据模型,我们最熟悉的莫过于关系数据模型; 
关系数据模型是一种“聚合无知模型”; 
在组织数据时,使用E-R模型规划清晰; 
这样带来的好处是很容易以不同的方式来查询数据(各种where条件甚至join) 
关系型数据库都是使用关系数据模型,比如oracle;

附 思维导图

NoSQL:数据模型

http://blog.csdn.net/u010892841/article/details/43061671

NoSQL数据模型详解(四)の聚合型小结

分类:数据库

背景

在前三篇文章中已经介绍了NoSQL中属于聚合模型的三种数据库:键值型、文档型、列族型。下面针对三种聚合数据模型的共同点和不同点加以分析以便很好的来认识掌握各自的特点。

相同点

三种面向聚合的数据模型的共同点是,他们都是用聚合这一概念,而且聚合中都有一个可以查找其内容的索引键。在集群上运行时,聚合都是重点环节,因为数据库必须保证将聚合内的数据存在同一节点上。聚合还是”更新“操作的最小数据单位,对于事务控制来说,以聚合为操作单元,其大小正合适。

不同点

键值数据模型将聚合看作不透明的整体,这意味着只能根据键来查出整个聚合,而不能仅仅查询或获取其中的一部分。

文档模型的聚合对数据透明,于是就可以只查询或获取其中的一部分数据,不过,由于文档没有模式,因此想优化存储并获取聚合中的部分内容时,数据库不太好调整文档结构。

列族模型把聚合分为列族,让数据库将其视为行聚合内的一个数据单元。此类聚合的结构有某种限制,但是数据库可利用此种结构的优点来提高其易访问性。


猜你喜欢

转载自blog.csdn.net/mrhelicopter/article/details/70885644