关于Codd的约简算法


12

Codd的算法将元组关系演算中的表达式转换为关系代数。

  1. 该算法有标准实现吗?
  2. 此算法可在任何地方使用吗?(似乎行业只需要SQL和变体,我不确定学术界的数据库理论家。)
  3. 减少的复杂性是什么?

这是一年多以前在SO上发布的,但是没有收到很好的答案。

Answers:


8

这种减少是一种有建设性的证明技术,可以证明子集(称为安全)元组关系演算(TRC)的表达不如关系代数(RA)。相反,Safe-TRC和RA具有同等的表达能力。例如,参见定理5.3.10。语法上的“安全性”限制可确保演算的领域独立性,因此是必需的。

在R-DBMS中,SQL可被视为TRC的具体(声明性)语言。RA对应项是将SQL表达式编译到的过程计划(一系列操作)。因此,转换实际上是编译过程的形式化描述。请注意,SQL引入了诸如DISTINCT,ORDER BY,GROUP BY之类的扩展,这些扩展显然不在TRC和RA理论的范围之内。

我不知道转换的确切理论复杂性,但显然它必须“便宜”。光子柯拉炎说它是线性的。

我不知道此算法的概念验证实现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.