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 [订阅]
    微博:新浪微博

  • 相关阅读:
    Python+selenium之调用JavaScript
    Python+selenium 之操作Cookie
    Python+selenium整合自动发邮件功能
    Python之查询最新的文件
    jQuery之回调对象
    jQuery之XML的加载和解析
    jQuery之DOM属性
    jQuery之Ajax--快捷方法
    jQuery之Ajax--底层接口
    jQuery之Ajax--辅助函数
  • 原文地址:https://www.cnblogs.com/me115/p/3809482.html
Copyright © 2011-2022 走看看