图数据库和关系数据库有哪些区别

小编 3028

图数据库和关系数据库的区别主要体现在以下4点:1.存储模型不同;2.查询模型不同;3.分析模型不同;4.实时查询性能不同。图数据库是基于图模型的数据库,相比关系型数据库,能够有效解决实时的个性化推荐等应用问题。

1.图数据库和关系数据库的存储模型不同

关系型数据库在表中存储信息(行/列)。每个实体都有一个表(如:账户,人员等),在一个实际的应用中,关系型数据库通常会有几十甚至几百张表。

在图数据库中,所有的信息存储为点和边的集合,而不是存在二维的表格中,这样每个点和边均可存储一系列属性。

2.图数据库和关系数据库的查询模型不同

关系型数据库主要的计算模型是基于扫描行(select),连接行(join),过滤行(filter)等。

而图数据库的计算模型是从一系列的初始点开始,通过多步遍历图形。每一步从当前的节点开始,遵守一定的关联关系(边)到达相邻点。

3.图数据库和关系数据库的分析模型不同

实际上,关系型数据库更适合一两个表的简单数据查找以及描述性统计,而不太适用预测性和探测性的分析。例如:你很难编写SQL来回答一下的问题:“这三个用户如何关联?”,“点A和点B之间最短路线是什么?”

但在图数据库中,上述这些问题都能得到自然、高效的表达和解决。

4.图数据库和关系数据库的实时查询性能不同

由于在关系型数据库中,每个表采用物理分隔的方式存储,因此建立两个表之间的关联慢而且需要中间表过度。大家都知道表和表之间,是不应该存在多对多的关系的。一旦有了多对多的关系,是需要增加中间表来应对的。

而图数据库中,关于点的一切都已经有了关联性,所以查询性能大大提高。

延伸阅读:

何时使用图形数据库?

每个故事总是有两个方面,而图形数据库并不是解决每个问题的完美解决方案。离得很远。在很多用例中,您应该坚持使用关系数据库,或者除了图数据库之外,还应该搜索其他替代方案。

您可以问自己三个简单的问题,以决定使用图形数据库是否有任何好处。

1.我的数据是否高度连接?

图形解决方案专注于高度关联的数据,这些数据具有进行关系分析的内在需求。如果数据中的连接不是主要焦点,并且数据具有事务性,则图形数据库可能不是最合适的。有时,存储数据非常重要,不需要进行复杂的分析。

在我们的示例中,如果只存储没有关系的人,那么最终将得到一个稀疏连接的图。是的,由于节点Person和之间的连接,将保留许多更简单的图Location,但是这种连接程度和数据结构的一致性非常适合关系数据库。

2.检索数据对我来说比存储更重要吗?

图形数据库针对数据检索进行了优化,如果您选择一个数据库,则可能应该经常使用此功能。如果您的重点是写数据库,而不关心分析数据,那么图形数据库将不是一个合适的解决方案。一个好的经验法则是,如果您不想在查询中使用JOIN操作,那么图形就不是必须的。

在我们的示例中,如果仅出于记录交互作用而存储数据,并且不打算在以后进行分析,那么图形数据库并不是特别有用。但是,如果要存储的数据中有许多连接,则可能需要考虑图形。

3.我的数据模型是否经常更改?

如果您的数据模型不一致并且需要频繁更改,那么使用图形数据库可能是可行的方法。因为图形数据库比模式结构更多地涉及数据本身,所以它们提供了一定程度的灵活性。

另一方面,拥有易于理解的预定义和一致的表通常会带来好处。开发人员很自在,并且习惯使用关系数据库,这一事实不能被轻描淡写。

例如,如果您要存储个人信息,例如姓名,出生日期,位置等,而又不希望出现许多新字段或数据类型发生变化,则关系数据库是优选的解决方案。另一方面,在以下情况下,图形数据库可能会很有用:

  • 某些时候可以添加其他属性,
  • 并非所有实体都具有表中的所有属性,并且
  • 没有严格定义属性类型。

在我们的示例中,由于特定的用例,一个人的属性和关系可以一成不变,并且不需要进一步的更改。

何时不使用图形数据库?

1.当查询不包含特定起点时

如果您需要运行频繁的表扫描并搜索适合已定义类别的数据,那么图形数据库将不会很有帮助。当您有一个特定的起点或至少一组起点(带有相同标签的节点)时,图形数据库就可以很好地遍历关系。它们不适合经常遍历整个图形。尽管可以运行此类查询,但其他存储解决方案可能会针对此类批量扫描进行更优化。

如果在我们的示例中,大多数查询都包括整个网络上按属性值进行的搜索,那么图形数据库将不合适。

2.当您需要键/值存储时

很多时候,数据库用于查找 信息存储在键/值对。当您拥有一个已知键并需要检索与其关联的数据时,图形数据库并不是特别有用。

例如,如果数据库的少数目的是存储用户的个人信息并通过名称或ID检索它,则不要使用图表。但是,如果还涉及其他实体(例如访问的位置),并且需要大量连接才能将它们映射到用户,则图形数据库可以带来性能上的好处。一个好的经验法则是,如果大多数查询都通过简单的标识符(键)返回单个节点,则只需跳过图形数据库。

3.当您需要存储大量信息时

如果模型中的实体具有非常大的属性,例如BLOB,CLOB,长文本等,则图数据库不是优异解决方案。尽管您可以将这些对象存储为节点并将它们链接到其他节点,以利用遍历关系的功能,但有时将它们直接与它们所连接的实体一起存储更有意义。

在我们的示例中,如果每个人都有一个很长的传记,需要将其包含在同一数据库中,那么图表将无法解决问题。但是,如果您需要将这些传记与数据库中的其他实体(例如,其中提到的人)联系起来,则图形数据库的优势可能会超出限制。

图形数据库值得吗?

这在很大程度上取决于您的特定用例。在处理互连数据时,图形数据库是一个非常强大的工具。如果您很难决定,那么请遍历上述要求,并检查是否有任何适用于您的方案的要求。

在本文中,您已经了解了关系数据库和图形数据库之间的根本差异。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部