本系列笔记是在看完《neo4j权威指南》基础上做的记录。方便于自己后面查阅!!
1.图库介绍
图数据库(Graph Database)是基于图论实现的一种新型NoSQL数据库。它的数据存储结构和数据的查询方式都是以图论为基础的。图论中图的基本元素为节点和边,在图数据库中对应的就是节点和关系。在图数据库中,数据与数据之间的关系通过节点和关系构成一个图结构并在此结构上实现数据库的所有特性,如对图数据对象进行创建、读取、更新、删除(Create、Read、Update、Delete,简称:CRUD)等操作的能力,还有处理事务的能力和高可用性等。
市面比较流行的图数据库有以下几种:
以下是复杂关系图
2.图数据模型
图数据库模型有三种:属性图、三原组、超图,其中neo4j使用属性图来实现,超图是体现多对多关系的,如果使用一条抄边来体现关系,可能会隐藏很多信息,大多数超图都可以转为属性图,如下图所示:
三元组是语义网,是包含主谓宾的数据结构,使用rdf框架来增强只是推理和知识关联性。
属性图的图数据模型特征如下:
(1)包含节点和关系。
(2)关系上含有属性。
(3)节点有属性,节点对应一个或者多个标签。
(4)关系有名称和方向,并总是有一个开始节点和一个结束节点。
3.图计算引擎
跟关系型数据库一样,图数据库也是有一个计算引擎存在,它可存储大型图数据集并且实现全局图计算的一种数据库核心构件。图计算 引擎计算流程如下图所示:
图计算引擎相应客户端数据请求,周期性从数据记录系统进行数据抽取、转化、加载数,将数据从记录系统中读入图计算引擎中,进行查询分析 ,最后将结果反馈给终端或者应用程序。