图数据库是什么?一文快速了解相关概念

一、图是什么?

说到“图”,大部分人首先想到的是这样的——图片(如图1):

图1

或者是折线图、饼状图等,如图2所示:

图2

其实,它们都不是!

我们所说的“图”是下面这样的:

图3

上面的数字1到数字6,都叫做“”;连接点与点之间的线,叫做“” ;引申来说,由点和连接每对点的边所构成的图就叫做“”。举例来说,当我们想知道达芬奇卢浮宫之间有有什么关系时,就可以通过点与点之间关联关系构成一张图了。

图4

那么,什么是图呢?简单来说就是一种极其适合表达实体间复杂关系的数据形式;而专门用来存储和处理这种图数据的数据库系统就被称为图数据库。

二、图源自哪里?

“图”并不是一个新生事物或新概念,反而非常古老。其最早起源于300年前数学家欧拉提交的一篇名为《哥尼斯堡的七座桥》的论文,这也成为图论和拓扑学最早的开端。

图5

在欧拉之后,直到上世纪六十年代,才出现了随机图理论,也是从彼时开始,图论由纸上谈兵转为大量的实际应用和突破,比如地图染色算法、最短、最优路径计算,动态规划,社区识别等各类图算法等。

三、图的基本概念

图数据库是一种专门用于存储、管理和查询图结构数据的数据库类型。图结构数据由(顶点)和(关系)组成,适用于表示实体及其之间的复杂关系。与传统的关系型数据库不同,图数据库更加擅长处理复杂的关系查询,并且能够更自然地表示数据之间的关联。

图6: Areith works as Waiter

1、点(Node)

 是图数据库中的实体,类似于关系型数据库中的记录。每个节点通常代表一个对象或实体。图1中用圆圈表示的Areith和Waiter就是点(Node)。节点可以包含属性,例如一个“人”节点可以包含名字、年龄、住址等属性。

2、边(Edge)

表示节点之间的关系,类似于关系型数据库中的外键。每条边通常代表两个点之间的连接,例如“朋友关系”、“工作于”或“购买”。边也可以包含属性,例如“朋友关系”边可以包含“认识的时间”等信息。

3、Schema

图1中代码里出现的Person、Job和workAs是Schema(模式)。Schema表示点、边的不同类型。

4、属性(Property)

图1中代码里出现的name和title是属性(Property)。属性是Schema的组成部分,用来具体描述Schema的特征。

5、路径(Path)

图7:三种点Schema和两种边Schema

图2中由Areith、workAs、Waiter所形成的连续且点、边交替出现的序列是一条路径(Path)。同理,由Waiter、workAs、Areith、studyAt、Oxford构成的序列也是一条路径。

路径以点开始、以点结束,包含至少一条边。路径表达了实体之间的多步关联关系,也是图计算中经常出现的查询目标。

6、图(Graph):

图是节点和边的集合,通过它们的连接关系来描述一个完整的网络结构。图可以是有向的或无向的。

(1)有向图与无向图?

有向图: 当图中的边有明确的方向时,且在图中的各类操作可以利用这种方向的时候,我们称其为有向图。

无向图: 无向图指的是忽略了边的方向。

聪明的你一定能够想到,有向图是分方向的,即会分方向(左)与方向(右):

· 方向 (左): 表示边的方向,向左,即在图中的点的入方向,例如 a<--
· 方向 (右): 表示边的方向,向右,即在图中的点的出方向,例如 a-->jiaquan 

 (2)加权图是什么?

由点和边所构成的图,还可以给边加上一个值。这个值就叫作边的“权重”或“权”,加了权的图被称为“加权图”。

没有权的边只能表示两个点的连接状态,而有权的边就可以表示顶点之间的“连接程度”。

图8

这个“程度”是什么意思呢?

就是根据“图”的内容不同,“程度”表示的意思也不同。

比如在地铁线路中,如果把车站与车站间的票价加在边上,就能在“图”中看出乘车费了。

四、图给我们带来什么?

简而言之,你所知道的许多大型互联网企业、金融科技公司都是基于图计算技术而诞生的,例如:

·Facebook。Facebook的技术框架核心是它的社交图谱(Social Graph)​,即朋友关联朋友再关联朋友。

·LinkedIn。LinkedIn是专业职场社交网络,最核心的社交特点是推荐距离你2步至3步的职场人,提供这种推荐服务必须使用图计算引擎(或图数据库)​。这个问题,我们后面再详细着墨。

·高盛集团。在2007—2008年爆发的世界金融危机中,莱曼兄弟公司破产,高盛集团却能全身而退,背后的真实原因是高盛集团应用了强有力的图数据库系统SecDB,它成功计算并预测到即将发生的金融危机。

当然,图算法在我们的日常生活中,亦带来很多思维上的乐趣与指引,比如你打算租房,那么如何在公司、家与交通线以及租金等问题上,达成一个和谐且节省(性价比最优)的答案呢?就可以用图来解决。

五、如何考察图数据库?

除了要满足一般数据库的基本要求,如事务ACID、可扩展性、安全性等,图数据库还需满足其他一些方面的要求。

(1)存储是否原生

原生图存储指的是数据库的存储引擎经过专门的设计和优化,能够高效地存储和管理图中的节点和边,以满足复杂查询和分析(如遍历、路径查找、图算法等)的性能需求。

原生图存储引擎是针对节点和边数据设计的,而不是复用关系型数据库中的表格存储,因此原生图存储引擎通常具有独特的数据结构和算法。

图9

需要注意,并不是所有的“图数据库”产品都是真正的原生图数据库。一般来讲,那些仍基于关系型数据库或NoSQL数据库(如键值存储、文档数据库)等构建的产品,虽然能通过扩展功能或插件实现的图计算功能、图处理框架、图库层等,由于在内部实现上不完全符合原生图存储的标准,它们在查询性能、灵活性等方面和真正的图数据库存在较大差距。

那么,有没有什么便捷的方式来甄别一款图数据库是真正具有高性能的呢?

专家观察:高并发图数据库系统如何实现?

(2)算法是否正确

除了要面对分布式、并发操作、事务机制等带来的计算正确性问题的挑战,图数据库还必须确保其图查询、图算法等计算过程是正确无误的。

图数据库支持的图算法,如最短路径、K步邻居、连通性检测和社区划分等,其内部实现相当复杂。此外,图结构可能涉及到各种边界条件,如环路、孤点等,处理这些情况需要特殊的算法支持,如果处理不当,可能导致计算错误。

图10

图算法的正确性需要通过精心的算法设计和严格的算法测试来保证,同时图数据库引擎自身的计算能力也需要不断提高,以保证图数据库在各种复杂情境下的计算结果准确性。

(3)结果是否可视化

除了基本操作的可视化,如图建模、数据导入、算法执行和用户管理等,图数据库应该特别关注提升查询结果的可视化能力。

图数据本身是一种比传统表格更高维的数据形式,人脑对于高维数据的直观感知和处理速度天然超越了机器。因此,图数据库的真正价值在于能够提供以图的方式呈现计算结果,使人们能够直观地洞察数据。

图数据库应该能够将查询或分析结果以2D或3D图的形式展现出来,其中节点可以用形状或图标表示,边则可以用线条或箭头表示。节点和边的不同颜色、大小、形状可以表示不同的信息,帮助用户更直观地理解和分析数据。这种可视化能力不仅提高了用户对数据的理解,也使得复杂关系和模式更容易被发现和分析。

图11
图12

 · END ·

更多了解,请阅读

《图数据库原理、架构与应用》

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值