您的位置:首页 > 数据库

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数据库有个共同点,那就是他们都没有模式。灵活自由的存储类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nosql