聚合数据模型的特色就是把常常访问的数据放在一块儿(聚合在一块);
这样带来的好处很明显,对于某个查询请求,可以在与数据库一次交互中将全部数据都取出来;
固然,以这种方式存储不可避免的会有重复,重复是为了更少的交互;sql
聚合结构对某些交互有利,却阻碍另外一些交互;
好比:以学生学号聚合学生信息(含学生姓名、班级、年龄、等信息,甚至英语学科成绩),经过学号查询时,可以在一次交互中查询出该学生的全部信息,但若是想经过学生姓名来查询,就很困难;数据库
不支持跨越多个聚合的ACID事务
聚合结构在事务方面的支持有限;有一些NOSQL产品实现了简单的事务支持,但对于跨越多个聚合结构的事务并不完善;oracle
选用NoSQL数据库,首要的工做就是设计键名及存放的数据;
设计的原则是尽可能减小所须要访问的聚合个数,在尽可能少的交互中拿到所须要的数据;
若是发现须要经过多种查询条件来获取数据,可能就选用NOSQL就不合适;关系数据库才是首选;nosql
键值数据库
能够存储任意数据,存储的数据对用户不透明,从外面看,只是包含了没有太多意义的大块数据;设计
访问方式:经过键来查找 blog
文档数据库
文档数据库存储时定义了其容许的结构和数据类型,从外面看,能够看到内部结构;
在存储时限制其中存放的数据,这样带来的好处是可以更灵活的访问数据;
访问方式:
1.可用键名查询
2.可用聚合中的字段查询(定义存储的数据的结构所带来的好处)
3.可按照聚合内容建立索引索引
对于数据模型,咱们最熟悉的莫过于关系数据模型;
关系数据模型是一种“聚合无知模型”;
在组织数据时,使用E-R模型规划清晰;
这样带来的好处是很容易以不一样的方式来查询数据(各类where条件甚至join)
关系型数据库都是使用关系数据模型,好比oracle;事务
《NoSql精粹》ip
Posted by: 大CC | 27APR,2014
博客:blog.me115.com [订阅]
微博:新浪微博文档