考虑以下关系 P(X, Y, Z), Q(X, Y, T) 和 R(Y, V):
以下关系代数查询将返回多少个元组?
πx(σ(P.Y = R.Y ∧ R.V = V(P X R))) - πx(σ(Q.Y = R.Y ∧ Q.T > 2(Q X R)))
注意:这是数字类型问题。
(一) 3
(乙) 1
(三) 2
(四) 4答案:(乙)
说明:查询 1:
πx(σ(P.Y = R.Y ∧ R.V = V(P X R)))
它只会满足一行:
X Y Z Y V
-------------------
X2 Y2 Z2 Y2 V2
-------------------
只会选择 X 列。
X
-----
X2
-----
查询 2:
πx(σ(Q.Y = R.Y ∧ Q.T > 2(Q X R)))
它将满足三行:
X Y T Y V
-------------------
X1 Y2 5 Y2 V3
X1 Y2 5 Y2 V2
X1 Y1 6 Y1 V1
-------------------
只会选择 X 列。
X
-----
X1
-----
请注意,关系代数仅返回唯一的元组。
现在,
= πx(σ(P.Y = R.Y ∧ R.V = V(P X R)))
= (Query-1) - (Query-2)
= X2 - X1
= X2
所以,答案是1 。
请注意,{(Query-1) – (Query-2)} 将返回 query-1 中所有不在 query-2 中的元组。
这个问题的测验
这个问题的测验