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等与传统企 ...
随机推荐
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.2.MVC的主要工具-Ninject
这三个工具,应该是每个MVC程序员的兵工厂中的一部分.DI容器,单元测试框架,mocking 工具.Ninject是我们偏爱的DI容器,它简单,高雅,并且容易使用.这里有很多复杂的替代品,但是我们喜欢 ...
- Linux软件管理——yum命令详解
yum install <softwarename> #安装指定软件 yum remove <softwarename> #卸载指定软件 yum update <soft ...
- memcache缓存的使用
今天在,本地测试了一个关于memcache的demo. 本地集成环境(wamp)环境如下:php 5.5.12 .Apache 2.4.9 .mysql 5.6.17 1.除了添加配置.添加php的 ...
- HDU 1498:50 years, 50 colors(二分图匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=1498 题意:给出一个 n*n 的矩阵,里面的数字代表一种颜色,每次能炸掉一排或者一列的相同颜色的气球,问有哪些颜 ...
- java 打印出99乘法口诀表
public class Mutiplay { /** *实现99乘法表 * @param args */ public static void main(String[] args) { Syste ...
- c#线程创建
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Unity-Animator深入系列---剪辑播放后位置预判(Animator.Target)
回到 Animator深入系列总目录 animator.SetTarget(...);可以在播放前预判剪辑播放后的位置,但只限于人形动画 参数1是预判的关节,参数2是映射的剪辑时间 调用后通过targ ...
- [转]Unity: make your lists functional with ReorderableList
原文地址:http://va.lent.in/unity-make-your-lists-functional-with-reorderablelist/ This article is reprod ...
- 新蒂下午茶体基本版SentyTEA-Basic
一.目前的最新版新蒂下午茶体包含了7600+常用汉字,每个字都是手写而成,是一套充满手写感的中文字体,轻松.惬意,如同慢饮一杯下午茶.SentyTEA-Basic.ttf 这个一个新蒂下午茶体基本版 ...
- hdu Interesting Fibonacci
Interesting Fibonacci Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...