考虑以下关系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)))
注意:这是数值类型的问题。
(A) 3
(B) 1
(C) 2
(D) 4答案: (B)
说明: Query-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)}将返回查询1中所有不在查询2中的元组。
这个问题的测验
这个问题的测验