1

我有以下 SQL 命令:

SELECT X,Y,Z FROM A,B,C WHERE A.U=B.U AND A.V=C.V
ORDER BY X,Y

我需要为此查询编写关系代数公式。到目前为止,我在:

E =  (π{X,Y,Z}(S{X,Y} ( σ {A.B.U AND A.V=C.V} (A))) * 
     (π{X,Y,Z}(S{X,Y} ( σ {A.B.U AND A.V=C.V} (B))) * 
     (π{X,Y,Z}(S{X,Y} ( σ {A.B.U AND A.V=C.V} (C)))

这个对吗 ?我不确定我在 A、B、C 之间是否有联合或笛卡尔积?

我还需要将此表达式转换为最佳表达式。谁能给我一步一步的例子来说明如何做到这一点?

谢谢 !

4

2 回答 2

2

它应该是这样的:

τ(X,A),(Y,A)(πx,y,z(σa.u=b.u,a.v = c.v(A,B,C)))
于 2014-12-02T16:33:28.800 回答
0

这不可能。原因是在关系代数中,您不能对结果集应用任何排序。这意味着没有办法做这样的事情order by

于 2013-02-14T19:57:45.313 回答