📜  门| GATE CS 2019 |简体中文第63章

📅  最后修改于: 2021-06-29 11:39:54             🧑  作者: Mango

考虑以下关系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中的元组。

这个问题的测验

这个问题的测验