Nosql 理解篇+实战篇 三 数据模型Ⅱ 聚合数据库关系处理及图数据库
2017-02-22 09:41
399 查看
三 数据模型Ⅱ 聚合数据库关系处理及图数据库
聚合数据库中的关系?为什么引入图数据库?
1) 关系
目前为止,我们知道大多数的NoSQL数据库的关键特征在于它们都使用了聚合,而各种面向聚合的数据库对聚合的建模方式不同。聚合是NoSQL的核心内容。
前面我们知道,聚合的方便之处在于能把经常访问的数据放在一起。但是有些情况下
我们需要以不同的方式来访问相互关联的数据。
就如传统数据库客户订单,和历史记录为例,如果我们要查询客户的历史记录,应先找到与之对应的客户ID,然后根据客户ID遍历客户历史记录。过去我们常常用JOIN的方式去连接表关系。聚合也是相同的理念。我们吧客户ID嵌入订单的聚合数据中。这样。如果需要获取客户记录中的数据,可以先读取订单。从中查出客户ID,然后让数据库根据此ID查出客户数据。但是聚合数据库怎么描述数据间关联呢?
我们以Riak这种键值数据库举例:
我们把链接信息放在其元元数据中,这样它就支持“局部检索”和“链接遍历”。
2) 图数据库
首先放一张图,我们想想,如果在传统数据库来构建表及表间关系后,提出一个问题。“找出数据库方面的书,其作者必须是我的某位朋友所喜欢的人“
事实上,关系数据库当然能够实现我们题目的要求,但是繁琐的join语句所带来的性能问题是不容忽视的。SO,我们需要一种更好的数据模型来捕捉这类数据关系。“图数据库”应用而生。
图数据库的基本数据模型很简单:由边(或弧)连接而成的若干节点。除了这个共同特点外,图数据库所用的数据模型也有多种变化。尤其在节点和边的存储机制上。
例如:
FlockDB只存储节点与边,没有用于存储附加属性的机制
Neo4J可以用无模式的方式将Java对象作为属性,附加到节点与边之中
Infinite Graph可以把Java对象作为其内建类型的子类对象,存储成节点与边
3)无模式数据库
各种形式的NoSQL数据库有个共同点,那就是他们都没有模式。灵活自由的存储类型。
聚合数据库中的关系?为什么引入图数据库?
1) 关系
目前为止,我们知道大多数的NoSQL数据库的关键特征在于它们都使用了聚合,而各种面向聚合的数据库对聚合的建模方式不同。聚合是NoSQL的核心内容。
前面我们知道,聚合的方便之处在于能把经常访问的数据放在一起。但是有些情况下
我们需要以不同的方式来访问相互关联的数据。
就如传统数据库客户订单,和历史记录为例,如果我们要查询客户的历史记录,应先找到与之对应的客户ID,然后根据客户ID遍历客户历史记录。过去我们常常用JOIN的方式去连接表关系。聚合也是相同的理念。我们吧客户ID嵌入订单的聚合数据中。这样。如果需要获取客户记录中的数据,可以先读取订单。从中查出客户ID,然后让数据库根据此ID查出客户数据。但是聚合数据库怎么描述数据间关联呢?
我们以Riak这种键值数据库举例:
我们把链接信息放在其元元数据中,这样它就支持“局部检索”和“链接遍历”。
2) 图数据库
首先放一张图,我们想想,如果在传统数据库来构建表及表间关系后,提出一个问题。“找出数据库方面的书,其作者必须是我的某位朋友所喜欢的人“
事实上,关系数据库当然能够实现我们题目的要求,但是繁琐的join语句所带来的性能问题是不容忽视的。SO,我们需要一种更好的数据模型来捕捉这类数据关系。“图数据库”应用而生。
图数据库的基本数据模型很简单:由边(或弧)连接而成的若干节点。除了这个共同特点外,图数据库所用的数据模型也有多种变化。尤其在节点和边的存储机制上。
例如:
FlockDB只存储节点与边,没有用于存储附加属性的机制
Neo4J可以用无模式的方式将Java对象作为属性,附加到节点与边之中
Infinite Graph可以把Java对象作为其内建类型的子类对象,存储成节点与边
3)无模式数据库
各种形式的NoSQL数据库有个共同点,那就是他们都没有模式。灵活自由的存储类型。
相关文章推荐
- Nosql 理解篇+实战篇 二 NoSQL的数据模型Ⅰ
- 【Web API系列教程】3.9 — 实战:处理数据(添加新条目到数据库)
- 理解数据库关系模型的范式(复习)
- SpringMVC实战(四)-处理模型数据
- 关系数据库原理、数据模型
- Realm数据库读取数据时的处理:每次加载数据时,都将原有的数据删除,重新读取模型中的数据
- NoSQL聚合数据模型
- Entityframework~Fluent Api配置数据模型与数据库结构关系
- 关系数据库元数据处理类(一) 创建MSSQL元数据具体处理类
- (弥补关系数据库的不足,处理海量数据利器)NoSQL运动全解析
- 5.非关系数据库(Nosql)它mongodb:创建一个集合,导出和导入备份, 数据恢复,进出口
- 数据库表关系模型解析5——一对多数据模型中的一张表是自连接
- NOSQL(二)聚合数据模型
- 【Web API系列教程】3.2 — 实战:处理数据(添加模型和控制器)
- thinkphp5 数据库和模型详解 之4 模型数据处理(核心)和高级用法
- 【Web API系列教程】3.4 — 实战:处理数据(处理实体关系)
- 初学数据库——数据模型之关系数据模型
- 数据库表关系模型解析7——多对多数据模型中的一张表是自连接
- 数据库 - 关系数据模型
- 【Web API系列教程】3.3 — 实战:处理数据(建立数据库)