我已经开始学习Prolog,并想知道与SQL语言的理论差异。
例如:
还有其他共同点吗?有什么显着差异吗?
这里的大多数(较早的)答案反映了以下事实:大多数人不知道什么是SQL(它是关系演算的实现)或它的含义(它是谓词逻辑的一种形式)。以下语句对于Prolog和SQL都是正确的:
通常,人们并不了解它们之间的这些对等关系:
那么他们有什么区别呢?尽管它们跨越相同的概念领域,但它们的重点却完全不同。用Prolog术语来说,SQL主要是事实和关系(set)引擎,而Prolog主要是规则和推理引擎。每个人都可以在有限的范围内做其他事情,但是随着复杂度的微小增加,它变得越来越困难。例如,您可以使用SQL进行推理,但实际上它几乎完全是手动的,根本不像Prolog的自动前向推理那样。是的,您可以在Prolog中存储数据(事实),但是SQL根本不是为“存储,检索,投影和减少具有成千上万同时用户的数以百万计的行而设计的”数据。
另外,SQL主要是服务器语言范例,而Prolog主要是客户端语言范例。