NoSQL聚合数据模型
NoSQL聚合数据模型
特点
聚合数据模型的特点就是把经常访问的数据放在一起(聚合在一块);
这样带来的好处很明显,对于某个查询请求,能够在与数据库一次交互中将所有数据都取出来;
当然,以这种方式存储不可避免的会有重复,重复是为了更少的交互;
缺点
聚合结构对某些交互有利,却阻碍另一些交互;
比如:以学生学号聚合学生信息(含学生姓名、班级、年龄、等信息,甚至英语学科成绩),通过学号查询时,能够在一次交互中查询出该学生的所有信息,但如果想通过学生姓名来查询,就很困难;不支持跨越多个聚合的ACID事务
聚合结构在事务方面的支持有限;有一些NOSQL产品实现了简单的事务支持,但对于跨越多个聚合结构的事务并不完善;
规划数据访问方式
选用NoSQL数据库,首要的工作就是设计键名及存放的数据;
设计的原则是尽量减少所需要访问的聚合个数,在尽量少的交互中拿到所需要的数据;
如果发现需要通过多种查询条件来获取数据,可能就选用NOSQL就不合适;关系数据库才是首选;
面向聚合的数据库
键值数据库
可以存储任意数据,存储的数据对用户不透明,从外面看,只是包含了没有太多意义的大块数据;访问方式:通过键来查找
文档数据库
文档数据库存储时定义了其允许的结构和数据类型,从外面看,可以看到内部结构;
在存储时限制其中存放的数据,这样带来的好处是能够更灵活的访问数据;
访问方式:
1.可用键名查询
2.可用聚合中的字段查询(定义存储的数据的结构所带来的好处)
3.可按照聚合内容创建索引
相关:关系数据模型
对于数据模型,我们最熟悉的莫过于关系数据模型;
关系数据模型是一种“聚合无知模型”;
在组织数据时,使用E-R模型规划清晰;
这样带来的好处是很容易以不同的方式来查询数据(各种where条件甚至join)
关系型数据库都是使用关系数据模型,比如oracle;
附 思维导图

参考
Posted by: 大CC | 27APR,2014
博客:blog.me115.com [订阅]
微博:新浪微博
NoSQL聚合数据模型的更多相关文章
- 《NoSQL精粹》思维导图读书笔记
<NoSQL精粹>思维导图读书笔记 各主题笔记 这本书短小精悍,虽不能解答所有NoSQL疑问,但在读书过程中会抛给你不少未曾想过的问题,给人以更深入的思考: 这里对每一个主题分别做了笔记: ...
- 1、NoSQL概述
最近抽时间把Redis学了一下,所以就在网上找了一些资料.然后找到尚硅谷-周阳老师的视频教程,觉得里面的讲的挺好.所以就把他视频当中的资料教程整理出来. 单机MySQL的美好时代 在90年代,一个网站 ...
- 大数据架构师NoSQL建模技术
从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而 ...
- NoSQL精粹(NoSQL Distilled)——序言
之前说到博客长草的问题,想了想除了很忙特别忙非常忙各种瞎忙忙你妹啊外,主要还是不知道写什么好--到这家公司的两年中从JS到领域驱动到缓存服务器从前端到后端各种折腾,有些东西虽然有所心得,不过既然前人已 ...
- NoSQL 数据建模技术(转)
本文转载自:http://coolshell.cn/articles/7270.html ================================================ 全文译自墙外 ...
- NoSQL数据建模技术
原文来自“NoSQL Data Modeling Techniques”,由酷壳网陈皓编译<NoSQL数据建模技术>.这篇文章看完之后,你可能会对NoSQL的数据结构会有些感觉.我的感觉是 ...
- 《NoSQL精粹》读书笔记
NoSQL数据库数据模型的一般分类: 1. 键值数据模型 2. 文档数据模型 3. 列族数据模型 4. 图数据模型 常见NoSQL数据库: Redis, Cassandra, MongoDB, Neo ...
- 1.NoSQL入门和概述
入门概述: 1.为什么要用到NoSQL a) 单机MySQL的美好年代,在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付.在那个时候,更多的都是静态网页,动态交互类型的网站不多. ...
- 大数据架构师必读的NoSQL建模技术
大数据架构师必读的NoSQL建模技术 从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企 ...
随机推荐
- git使用记录(新手入门)
最近参与了公司的项目开发,最后要用git来把代码添加到远程库,但是没怎么接触过git,记录一下使用的流程 首先,当然是先下载git,这个略过不提,下载完之后,在你想要保存代码的目录下,用git ini ...
- autohotkey --- win10运行不兼容
在win10下许多脚本运行有问题, 将AutoHotkey.exe设置为兼容模式为win7 同时要设置为以管理员身份运行此程序 这个必须得记录一下.
- LoadRunner并发用户和集合点的深入讨论
看到51上三个高手Zee, 大漠飞鹰,xingcyx的一场非常精彩的关于并发用户数和集合点的讨论,很有意义.如果对这两个概念不清楚的朋友,一定要仔细领悟了. 故事开始于xingcyx的一番话: 声明: ...
- semantic-ui and IE only message
<![if !IE]> <div class="ui message red"> <i class="close icon"> ...
- Environment中针对的读写权限判断
Android应用开发中,常使用Environment类去获取外部存储目录,在访问外部存储之前一定要先判断外部存储是否已经是可使用(已挂载&可使用)状态,并且需要在AndroidManifes ...
- NDK
Android NDK是Google提供的开发Android原生程序的工具包,很多软件和病毒采用基于Android NDK动态库的调用技术,隐藏了在实现上的很多细节. 一.(windows版) 下载地 ...
- Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.
这行代码: List<Cat> catList =session.createQuery("from Cat p where p.name.first_name=?") ...
- PHP将XML数据转换为数组
<?php $s=join(,file('httpapi.elong.comxmlv2.0hotelcn0132701501.xml')); $result = xml_to_array($s) ...
- ACM学习之路————一个大整数与一个小整数不得不说得的秘密
这个相对于两个大整数的运算来说,只能说是,low爆了. 只要利用好除法的性质,这类题便迎刃而解.O(∩_∩)O哈哈~ //大整数除一个int数 #include<iostream> #in ...
- 修改tomcat的logo
每页的<head> 里添加 <link rel="icon" href="favicon.gif" /> 图片名称必须是favi ...