【问题标题】:Are selection and projection associative?选择和投影是否相关?
【发布时间】:2011-10-10 03:33:05
【问题描述】:

selection(p)(projection(R)) == projection(selection(p)(R)) 总是吗?

【问题讨论】:

  • 你需要证明吗?
  • @csviri:我不需要证明。我只想知道它适用于哪些情况,哪些情况不适用。
  • 提出这个问题的谷歌友好方式是:“可以通过选择推动投影”(反之亦然)。

标签: database relational-algebra


【解决方案1】:

如果认为选择是在投影中使用的列的子集上,那么是,

但如果没有,可能会出现您在不存在的列上进行选择的情况。

【讨论】:

  • 能否为这个猜想提供参考。
  • 抱歉,我没有任何参考文献。但是,如果您考虑一下,我们只能将这两种情况分开,如果前提条件成立(选择是在投影中使用的列的子集上),这是微不足道的情况,因为投影定义了仅与列子集的关系。如果不成立,并且您正在对不存在的列进行选择,如果错误,则无法执行此操作。所以它并不总是可交换的,只要提到的前提条件成立。
【解决方案2】:

首先,“交换性”的属性根本不适用于您的情况。

交换性是所有 x,y 的性质:x op y == y op x。

例如,对于所有 R1,R2 :R1 NATURAL JOIN R2 == R2 NATURAL JOIN R1。

其次,答案是否定的。

如果投影保留了限制条件中涉及的所有属性,则只能在限制内移动投影。否则,整个表达式就会变得无效。

编辑

(有点牵强,您可能会争辩说涉及交换性,因为您的示例案例是关于 FUNCTION COMPOSITION 是否可交换的问题(f°g?= g°f)。了解您的数学应该可以提出问题然而,在这种情况下,这是一种修辞。)

编辑 2

将问题改为它们是否具有关联性也不好。关联性是一个只有一个运算符和三个参数的情况,问题是对于所有 a,b,c 是否 (a op b) op c ?= a op (b op c)。您有两个运算符(投影和选择)和一个​​参数。

这也意味着 DISTRIBUTIVITY 的问题(在其严格的数学意义上)也不适用,尽管您的场景在某些方面确实类似于算子分布的数学案例,并且有足够的延伸。严格数学意义上的分配性涉及两个 二元 运算符(即采用两个参数)。投影和限制是一元的。

我认为 csviri 已经正确回答了您的问题。你应该接受它。

【讨论】:

    猜你喜欢
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2015-04-11
    • 2011-03-12
    相关资源
    最近更新 更多