gpt4 book ai didi

sql - 比较 SQL 和 Prolog

转载 作者:行者123 更新时间:2023-12-03 05:38:09 25 4
gpt4 key购买 nike

我已经开始学习 Prolog 并想知道它与 SQL 语言的理论差异。

例如:

  • 两者都是声明性语言
  • 两者都支持事实驱动的知识数据库
  • 两者都支持问题式数据检索
  • 两者都支持函数依赖

还有什么共同点吗?有什么显着差异吗?

最佳答案

这里的大多数(早期)答案反射(reflect)了这样一个事实:大多数人不知道 SQL 是什么(它是关系微积分的实现)或者它意味着什么(它是谓词逻辑的一种形式)。以下陈述对于 Prolog 和 SQL 均成立:

  • 它们都是逻辑驱动的
  • 它们都可以存储、表达和使用关系(Prolog 中的逻辑关系)
  • 它们既可以存储也可以表达复杂的逻辑条件
  • 它们都有事实(SQL 中的数据)并且可以从这些事实中得出结论
  • 他们都有疑问,实际上意味着同样的事情
  • 它们都有数据(Prolog 中的事实)并以类似的方式使用它们
  • 它们都是编程语言
  • 它们都是图灵完备的(尽管在它们中访问这一点有些困难)
  • 等等,等等.

通常,人们不知道它们之间的这些等价性:

  1. “事实”和“数据”是同一件事。这直接来自 Codd 的原始论文。
  2. 关系理论中的“关系”与 SQL 中的“表”相同,与谓词逻辑中的关系或关系函数相同,与集合论中的元组集相同<
  3. SQL 中的别名表表达式(即 View 等)与 Prolog 中的规则相同。

那么他们有什么区别呢?尽管它们跨越相同的概念领域,但它们的侧重点完全不同。在 Prolog 术语中,SQL 主要是一个事实和关系(集)引擎,而 Prolog 主要是一个规则和推理引擎。在有限的范围内,每个人都可以做另一个人,但随着复杂性的微小增加,它也会变得越来越困难。例如,您可以在 SQL 中进行推理,但它本质上几乎完全是手动的,完全不像 Prolog 的自动前向推理。是的,您可以在 Prolog 中存储数据(事实),但它根本不是为 SQL 那样的“存储、检索、投影和减少数万亿行以及数千个并发用户”而设计的。

另外,SQL 主要是一种服务器语言范例,而 Prolog 主要是一种客户端语言范例。

关于sql - 比较 SQL 和 Prolog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2117651/

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