2

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

4

2 回答 2

5

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

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

于 2011-10-10T07:03:14.017 回答
3

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

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

例如,对于所有 R1,R2 : R1 自然连接 R2 == R2 自然连接 R1。

其次,答案是否定的。

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

编辑

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

编辑 2

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

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

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

于 2011-10-13T17:39:53.783 回答