今天,让我们来一起谈谈关于图数据库。一些行业人士称图数据库是增长速度最快的数据库类型。如果说的是事实的话,那么我们了解他是非常有必要的。

那么先从最基本的开始说起:什么是图数据库呢?它的用途又是什么?

在这里做个简单的回答。在关系数据库中发现,图数据库存储一些顶点和边与表中的数据。他们用最有效的方法来寻找数据项之间、模式之间的关系,或多个数据项之间的相互作用。在传统的关系型数据库中查询一些项目的信息,或者在许多项目中进行相同类型的资金总额/平均值的查询。

现在,让我们回顾下什么是图数据库。标准类型的数据库是关系型数据库——像这类数据库管理系统是由Oracle、IBM、微软等公司生产的。一个关系型数据库由多个表组成的矩形网格的信息,看上去就像一个电子表格。每个表可以有不同数量的行和列,并且还持有一组不同类型的信息。例如,公司员工数据库中的一个片段可能会持有这样的数据:

图数据库 mysql优缺点 图数据库的好处_概念

然而,在同一个数据库中的另一个表可能存有经理的信息:

图数据库 mysql优缺点 图数据库的好处_特点_02

图数据库,至少在概念上来说,它是存储在不同数据结构中的有向图。有向图是由泡泡和箭头组成的,如:

图数据库 mysql优缺点 图数据库的好处_图数据库 mysql优缺点_03

泡泡被称为“节点”(顶点),箭头则称为“关系”(边)。

数据项存储在关系表的一个字段中,而在图数据库中,则存储在图的每个节点里。例如,在数据描述中,“Department managed”或“Reports to”如上表,则连接在图的边上。例如,如果我们把管理表格表示成图数据库,它可能看起来会像是这样:

图数据库 mysql优缺点 图数据库的好处_图数据库 mysql优缺点_04


图数据库 mysql优缺点 图数据库的好处_关系型数据库_05

所以,关系数据库和图数据库之间最大的区别在于他们是如何表示数据的。有趣的是,每个使用的查询语言并非都是不同的。SPARQL,是标准图数据库的查询语言,它的查询看起来和SQL很像,建立标准的关系数据库。现在,重要的问题是:他们每个都好吗?

然而,关系数据库是伟大的。他们经过40年的发展和改进。如今,他们是非常可靠,强大并且很实用,他们可以保存大量的数据。他们中的一些数据库系统可以每秒更新数千次。如果你想查询关系型数据库里对销售、销售产品,或在每个区域内的销售情况的信息的话,在任何时间里你都要可以查询关于项目的信息,或你想查询许多项目在相同类型中的总额或平均值,你将会很快得到想要的答案。

那么,关系型数据库不擅长什么呢?当你寻找数据项、关系模式或多个数据项之间的关系时,他们常会以失败告终。接下来,就让我们对比一下这两个查询:
首先,假设你写了一个查询:

显示所有在我们休斯敦店工作的员工

接下来关系型数据库将会对员工表进行扫描,在表中寻找“休斯敦“所匹配的”位置“字段。你将能快速的查询到结果。现在,假设你要查询:

显示所有员工的管理链,包括教新员工培训班的老师们

员工雇佣日期可能在同一个员工表的字段中,但是新员工培训班的名单可能在另外一张表中。所以,通过查询每个员工且对班级名单进行搜索,才能找到他们参加新员工培训的班级。假设要找到某班的老师。现在我们不得不做一个复杂的搜索。我们将爬取员工的管理链。我们在爬取员工的管理链时,将会发生两种情况:关系型数据库需要几分钟,甚至数小时,才能获得当前所有的查询结果,或者是数据库系统耗尽资源也查不到任何结果。而图数据库,可以在毫秒时间内返回到当前查询的操作,因为它们是通过对图的搜索。如果它们成功的话,就可以通过管理链遍历许多倍关系数据库。

这样你可能会推断出,因为SPARQL看起来很像SQL,关系数据库擅长处理大量相同类型的查询。而图数据库可能不会那么快,但它很好的解决一些复杂查询。如果真的发生的话上述情况的话,那些复杂的查询在关系数据库是也无法处理好的。

因此,什么样的应用程序可以很好地利用图数据库?

让应用程序可以发现数据项之间的关系模式,并且知道在哪里它是有用的。然而,不是每个数据库应用程序,都像关系型数据库那么受欢迎,图数据库的受欢迎也绝非偶然,有许多重要的图应用程序,它不能准确和有效地通过关系数据库进行分析:

  1. 在许多情报和执法程序中,重要的是要寻找一个模式的事件。这些事件中的任何一个都可能看起来是无害的,但他们观点以及他们是怎样直接或间接相关的,概念是不一样的。例如,首席坏人将电子邮件发送给坏人A,然后打电话给坏人B,并发快递消息给坏的金融家。坏人乘火车到了柏林。坏人B坐飞机也到了柏林。坏的金融家汇钱给了住在柏林的坏人C。坏人A和B又从柏林飞往亚特兰大。
  2. 同样,投资银行防范内幕交易,必须寻找一个可疑的行为模式,而不是任何单一的行为。投资银行家A获得关于股票S的内幕信息发邮件给在同一家银行的信息技术专家乔,乔又打电话给银行家A。在交易关闭前,银行A和乔在几秒钟内就开始了,那晚,乔购买了股票S。
  3. 生物信息学研究界基本上采用了图数据库和SPARQL查询语言。它们是一种天然契合于人类身体中所有化学物质之间关系的巨大网络。我们生物信息学中的一个客户发现了一种“this interacts with this”的关系,从中设计一种对抗艾滋病的药物,通过各种蛋白质、人体细胞和其他分子,从而发现了相同的药物可能有效预防乳腺癌。
  4. 社会网络分析(SNA)对许多供应商的消费品非常感兴趣,他是构建人与人之间的关系图。Facebook是一个社交网络,它可以与家人和朋友之间保持联系。然而,图搜索能很好地显示出这个人在他/她的朋友圈中是否有影响力,这群朋友是否有着共同的兴趣爱好。因此,这也可能会导致一些非常复杂,具有较高针对性的营销策略。

好吧,以上能很好的解释数据库为什么值得使用。文中,基本上总结了图数据库可以解决一些复杂的问题,而关系数据库却不能。一个真正成熟、有效的分析环境应该包括关系型数据库和图数据库的。

原文: Graph Databases 101