zoukankan      html  css  js  c++  java
  • NoSQL聚合数据模型

    NoSQL聚合数据模型

    特点

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

    缺点

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

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

    规划数据访问方式

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

    面向聚合的数据库

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

      访问方式:通过键来查找

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

    相关:关系数据模型

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

    附 思维导图

    NoSQL:数据模型

    参考

    《NoSql精粹》

    Posted by: 大CC | 27APR,2014
    博客:blog.me115.com [订阅]
    微博:新浪微博

  • 相关阅读:
    成为 Linux 内核高手的四个方法
    专访CEO何朝曦:深信服高速成长的秘诀
    世界上最让人痛苦的是无所事事(年纪轻轻当项目经理、研发总监真的不好)
    2015 8月之后"云计算"学习计划
    程辉:创造云计算的第四种商业模式(送源码的托管云)
    配置restful webservice 框架restkit
    跟我一起玩转Sencha Touch 移动 WebApp 开发1
    数据更新最佳实践
    addEventListener和attachEvent以及element.onclick的区别
    java线程池:ThreadPoolExecutor
  • 原文地址:https://www.cnblogs.com/me115/p/3809482.html
Copyright © 2011-2022 走看看