Neo4j - 图数据基础

图数据基础

图数据库介绍

图数据库(Graph Database) 是基于图论实现的一种新型 NoSQL 数据库。它的数据存储结构和数据查询方式都是以图论为基础的。图论中图的基本元素为节点和边,在图数据库中对应的就是节点和关系。

在图数据库中,数据与数据之间的关系通过节点和关系构成一个图结构并在此结构上实现数据库的所有特性,如对图数据对象进行创建、读取、更新、删除等操作,还有处理事务对能力和高可用性等。

请添加图片描述

图数据库模型

图数据要具体存储到图数据库中,最终落实为具体到数据文件,自然就涉及特定到图数据模型,即如何存、采用什么实现方式来存图数据。常用到有三种:属性图(Property Graphs)、超图(Hypergraphs)和三元组(Triples)

属性图

属性图模型直观更易于理解,能描述绝大部分使用场景,也是当下最流行到图数据模型。Neo4j采用到就是这种属性图模型。符合以下特征的图数据模型就称为属性图:

  • 它包含节点和关系
  • 节点可以有属性(键值对)
  • 节点可以又一个或多个标签
  • 关系有名字和方向。并总是有一个开始节点和一个结束节点
  • 关系也可以有属性

在属性图数据模型中,关系应该是定向的。如果我们尝试创建没有方向的关系,那么它将抛出一个错误消息。

在Neo4j中,关系也应该是有方向性的。如果我们尝试创建没有方向的关系,那么Neo4j会抛出一个错误消息,“关系应该是方向性的”。

Neo4j图数据库将其所有数据存储在节点和关系中。我们不需要任何额外的RDBMS数据库或无SQL数据库来存储Neo4j数据库数据。它以图形的形式存储其数据的本机格式。

Neo4j使用本机GPE(图形处理引擎)引擎来使用它的本机图存储格式。

图形数据库模型主要构建块

  • 节点
  • 关系
  • 属性

请添加图片描述

超图

超图是一种更为广义对图模型,在超图中,一个关系(称为超边)可以关联任意数量对节点,无论是开始节点端还是结束节点端,而属性图中一个关系只允许一个开始节点和一个结束节点,因此,超图更适合表示多对多关系。比如常见对房产拥有关系。

请添加图片描述

在房产证上张三与李四共同拥有三套房,在超图中就只需一条超边(拥有)就能表示出来。

但现实中,仅仅一条超边来表示拥有关系,可能会隐藏很多细节,例如房产证中每套房张三、李四各自占比的比率,因此,如果用属性图来表示将更为丰富,只是将一条超边转换为图中的关系

请添加图片描述

三元组

三元组思想来源于语义网(Semantic Web),虽然迄今为止,只有很少的网络资源用语义网来表示的,但研究人员发现可以使用带语义但标签网来表示图数据。三元组是一个包含主谓宾的数据结构,张三和李四拥有三套房子等。显然,单个三元组的语义还是比较有限,需要借助资源描述框架(Resource Descrption Feamework,RDF)来增强其知识推理及数据关联性。

图计算引擎

与关系数据库相同,图数据库的核心也是构建在一个引擎之上,那就是图计算引擎。图计算引擎是能够组织存储大型图数据集并且实现了全图计算算法的一种数据库核心构件。

请添加图片描述

上图展示了一个图计算引擎的工作流程。它包括一个具有联机事务处理过程(On-Line-Transaction Processing , OLTP)的数据库记录系统,图计算引擎用于响应用户终端或应用程序运行时发来的查询请求,周期性从记录系统中进行数据抽取、装换和加载,然后将数据从记录数据系统读入到图计算引擎并进行离线查询和分析,最后将查询、分析结果返回给用户终端或应用程序。

目前较流行的图计算引擎有两种:单机图计算引擎和分布式图计算引擎

单机图计算引擎的典型代表是 Cassovary,Cassovary 是一个用 Scala 编写的基于 Java 虚拟机的图计算引擎。在 Twitter 上 Cassovary 用来为其提供许多基于图的功能,如谁关注了谁、谁被谁关注

分布式图计算引擎的典型代表是 Pegasus 和 Giraph 。Pegasus 是一个运行在 Hadoop 云计算平台之上的分布式图计算引擎,最初它是为了 Google 的网页数据处理设计出来的,Giraph 是 Apache 一个高可扩展图计算项目,它最初起源于Google 开发的 Pregel 图形处理项目

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值