gpt4 book ai didi

algorithm - 关系数据库与图数据库的转换

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:53:14 26 4
gpt4 key购买 nike

我知道有一些算法(甚至工具)可以将关系数据库 (RDBMS) 转换为图形数据库,反之亦然。

我确实有几个问题比这大一点:

  1. 是否有用于此类转换的通用实践工作算法,例如 RDBMS => 图(或多个)?

  2. 这个算法是双射的吗?更准确地说:

    2.1。给定所述算法,转换 RDBMS => 图单射(一对一)吗?说白了,是否存在任意两个关系型数据库可以转化为同一个图数据库?

    2.2。同样,是不是任何Graph DB都可以用关系DB来表示?基本上,我问的是算法函数是否满射(上)?

最佳答案

长话短说

从图的特定数学概念(节点集、边关系)到关系表示通常存在明显的双射。本质上是因为数学使用集合和关系。

没有标准的图形 DBMS。并且没有标准的方法来使用一个来表示应用程序/业务情况。因此,图数据库状态和关系状态之间没有标准映射,更不用说在另一个状态中给出对所表示情况自然的表示了。

如果没有关系值属性,非关系结构和关系结构之间的映射并不总是双射的,因为我们有时必须选择关系替代值 1:1 与我们将使用的关系值。


有时我们对特定情况不感兴趣,我们只对数据结构感兴趣。然后我们可以想出它的(各种)关系版本。

但是数据库或数据结构变量通常表示应用程序/业务情况。从情况到表示通常存在一对多或一对一的映射。在关系模型下,每个表都有一个相关联的(特征)谓词(语句模板),并保存从其谓词中构成真实命题(语句)的行。其他数据结构以特殊方式用于表示情况。

关系模型的特别之处在于,您可以通过谓词逻辑和/或关系运算符进行一般查询——查询表达式确定谓词,其结果包含从其谓词中得出真命题的行。 (根据一定的复杂性保证和一定的自动优化机会进行计算。)

表示相同情况的结构之间的映射 取决于数据库如何表示情况。因此,表示之间不存在一般映射,即使对于使用相同数据结构的两个表示也是如此。

另一方面,您可以在两个结构之间定义一些通用映射,它可能是双射的,但是当一种情况由一个表示时,另一个会告诉您该情况的另一种表示 ,因此情况只是间接的,而不是直接的情况本身。因此,不要指望描述其他结构表示的关系版本是该应用程序/业务的良好关系设计。

这是 ORM 和对象数据库的问题。您可以定义从特定的面向对象状态到关系的映射,但关系仅描述面向对象的状态,而不是其表示的情况。每当一个对象值持有一个对象引用而不是包含的对象时,该引用对象表示一个关系/关联实体实例。但通常对于与此类对象集对应的关系没有明确的谓词。取而代之的是,我们得到了从某个完整的表示状态到表示情况的表示函数。而在关系设计中,每个表(基础或查询结果)的每个超键值与某些(可能关联的)实体是 1:1 的。

关于algorithm - 关系数据库与图数据库的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45014075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com