选择和投影是否相关联?

时间:2011-10-10 03:33:06

标签: database relational-algebra

选择(p)(投影(R))==投影(选择(p)(R))总是吗?

2 个答案:

答案 0 :(得分:5)

如果考虑选择是否在投影中使用的列的子集上,则为是,

但如果没有,则可能存在您对不存在的列进行选择的情况。

答案 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 op b)op c?= a op(b op c),对于所有a,b,c。你有两个操作符(投影和选择)和一个​​参数。

这也意味着分布性问题(在严格的数学意义上)也不适用,尽管你的情景确实类似于算子分布的数学例子,在某些方面,并给予足够的伸展。严格的数学意义上的分配涉及两个二元运算符(即取两个参数)。投射和限制是一元的。

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