IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    NoSQL聚合数据模型

    木书架发表于 2014-06-29 08:15:01
    love 0

    NoSQL聚合数据模型

    特点

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

    缺点

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

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

    规划数据访问方式

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

    面向聚合的数据库

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

      访问方式:通过键来查找

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

    相关:关系数据模型

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

    附 思维导图

    NoSQL:数据模型

    参考

    《NoSql精粹》



沪ICP备19023445号-2号
友情链接