【问题标题】:Tuple relational calculus元组关系演算
【发布时间】:2011-01-03 12:21:20
【问题描述】:

安全元组关系演算是图灵完备的语言吗?

【问题讨论】:

    标签: turing-complete tuple-relational-calculus


    【解决方案1】:

    让我们忘记安全。通过Codd's theorem,关系演算等同于一阶逻辑。 FOL 是非常有限的,它不能表示在某个图中存在从 A 点到 B 点的路线(它可以表示从 A 点到 B 点的路线长度有限,例如∃ x ∃y ∃z ∃t route(a,x) and route(x,y) and route(y,z) and route(z,t) and route(t,b) 表示有一条长度为 4 的路线。

    请参阅descriptive complexity,了解不同逻辑的优势。

    【讨论】:

    • 这方面你好像比我了解的多,但是为什么下面的不能表示有路由呢? edge(x, y) -> route(x, y) edge(x, y) & edge(y, z) -> route(x, z) 如果图表示为一组关于边的事实,即边(a, b) & edge(b, c) & edge(c, d) 则查询 edge(a, d) 将可由 FOL 定理证明器(例如 prolog 解释器)证明。
    • 你是说路由是最小满足edge(x,y) -> route(x,y)的传递关系。这个定义需要最小不动点。要在元组演算中定义新关系,您可以使用交集、并集、投影......但不能说“路由它是满足以下条件的关系......”。您也可以对关系进行量化,但这是高阶逻辑,并且仅允许对 FOL 中的个体进行量化。
    • 感谢您的回复。真的很有用。
    【解决方案2】:

    根据Codd's Theorem,关系代数和关系演算是等价的。众所周知,关系代数不是图灵完备的,关系演算也不是。

    [编辑] 例如,您不能在关系代数/微积分中进行聚合运算(例如 sum、max)或递归查询。见here(接近尾声)。

    【讨论】:

    • 要么你错了,要么拉里·渡边是。我不知道这个话题,但这看起来很有趣! (去拿爆米花)
    • 现在关系代数不是图灵完备的更广为人知:)
    • 但是,通过阅读另一张海报对 Codd 定理的链接,关系代数不等同于关系微积分 - 关系代数本质上等同于命题逻辑,而关系代数等同于 FOL。
    • @Larry: en.wikipedia.org/wiki/Relational_calculus - “关系代数和关系演算在逻辑上本质上是等价的......这个结果被称为 Codd 定理。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    相关资源
    最近更新 更多