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

  • 相关阅读:
    OC动态特性
    app之间的互相跳转
    将服务器返回的URL或者网址截取出来特定的字符,然后将字符返回,一般根据返回的字符判断用户是否登录等即时状态
    网络请求的封装
    代理传值
    sql脚本查询日期时间段日期
    SQL >日期函数
    Sql 中text类型字段判断是否为空
    修复IE9.0下PlaceHolder 属性问题js脚本
    迅雷专用下载的几种代码
  • 原文地址:https://www.cnblogs.com/me115/p/3809482.html
Copyright © 2011-2022 走看看