首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中电与SQL有何关系?

问中电与SQL有何关系?
EN

Stack Overflow用户
提问于 2010-03-03 21:33:10
回答 2查看 631关注 0票数 4

在阅读有关constraint-logic programming的文章时,我不禁注意到与SQL编程之间的明显关系。SQL是运行中的“约束逻辑编程”的一个例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-03 22:26:11

从高层次上看,它们非常相似。两者都是声明性的或基于集合的,而不是迭代的(这意味着你需要你想要的东西-你不会逐个循环和处理单独的项目)。

CLP可以用SQL建模,但它是一个寻找更好的问题解决方案的案例。SQL很适合在已经显式定义的给定数据集中查找答案。CLP很适合在定义松散甚至有时甚至没有完全定义的域中查找答案。

作为一个例子。如果我想使用SQL返回1到1000万之间的所有偶数,我需要一个表,其中列出了所有可供选择的数字(一个现有的数据集)。使用CLP,我只需要一个界限(10M),而不必显式创建所有记录。

在内部,CLP引擎(CSP问题)还可以推断约束以使其更快。你必须弄清楚这些规则,并明确地声明它们。例如,如果您的SQL是A=B和B=C,则CLP引擎可能会找出该A=C,并在SQL不能的地方使用它来更快地运行。它们还可以类似地推断域以优化运行时(如果我知道偶数从未返回,CLP将把它们从考虑范围中剔除- SQL仍然会考虑它们,但不会作为“解决方案”返回)。

希望这对你有所帮助--如果你需要的话,我可以提供更多的技术支持。要记住的关键点是,这两者是相似的,但您使用哪一个取决于问题模型。如果你能说“这些是我的变量,这些是如何相互关联的,请给我任何有效的解决方案”,那么中电是一个很好的候选者。如果你可以说“这是我的变量,这些是细节,给我一个适合的现有数据的子集”,那么SQL是一个更好的选择。

票数 5
EN

Stack Overflow用户

发布于 2010-03-03 21:43:34

我没有完整的答案,但您可能会发现看看Datalog和DLV会很有趣。它们可能是逻辑编程(但不是CLP)和SQL之间的“缺失的一环”,这将帮助您更清楚地理解事物。

由于这更多的是关于LP而不是中电,我可能遗漏了一些东西-如果是这样的话,对不起。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2371625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档