Date: 2016-01-27
Title: 图形数据库-1
Published: true
Type: post
Excerpt:
Category: GraphDBnode
若是您对此文章感兴趣,欢迎发邮件至andy.zhangtao@hotmail.com
数据库
在咱们生存的实际世界当中,处处都存在着"关系"。世界当中没有独立存在的事物,在咱们身边充斥着大量的,相互交织的各类关系。post
若是须要处理这些相互交织的关系数据,凭借关系型数据库是没法完成的。此时,就须要一种以关系为核心,而且能够高效存储,高效处理的数据库。性能
相对于图形数据库而言,关系型数据库虽然也能够计算这些"关系"数据,但计算的代价倒是异常昂贵。得益于图形数据库天生以"关系"为核心,所以其在检索关系数据时很是高效,目前能够支持每颗CPU每秒处理百万次关系检索,效率比RDBMS高出好几个数量级。对象
那图形数据库会替代RDBMS吗?首先来讲,二者适用场景不一样。图形数据库更加侧重于处理海量数据下的,高度连接的关系拓扑关系和复杂的查询需求,而这些偏偏不是RDBMS的强项。索引
若是读者接触过对象模型或者实体图,那么想必对下面的模型必然不陌生。在图形数据库模型中,一个实体称之为一个节点(node),每一个node都有很是多的属性,这些属性经过key-value来表示。相同的node在不一样的场景当中能够拥有不一样的标签信息(lable)。而这些Lable信息,除了能够用来标记node以外,也能够用来附加一些metadata(例如索引信息或者约束信息等).get
而在两个节点之间,有向而且语义清楚的链接就称之为关系。it
一般来讲,一个关系包括方向,类型,起点node和结束node四个要素。而对于node来讲,一个关系则能够同时拥有多个属性。例如权重,代价,距离,级别,新鲜度或者优点度等等。由于在图形数据库当中,维护一条关系是一个代价很是小的事情,因此两个节点之间能够在不带来额外性能损失的状况下,拥有无限条的关系或者属性。效率
但有一点须要注意,尽管关系是有向的,但关系自己却不关心方向。只有node才会关心方向。meta
虽然关系很便宜,但在图形数据库当中却有一条铁的纪律:"不容许存在死链"。由于每条关系都必须存在起始node和结束node,因此用户没法在删除全部关系以前删除掉与之相关联的node。用户能够认为,一条存在的关系必然会链接两个存在的node。