以下问题已在 GATE CS 2007 考试中提出。
1) 关于学生集合的信息由关系stdinfo(studId, name, sex) 给出。关系enroll(studId, courseId)给出了哪个学生注册了(或参加了)该课程。假设每门课程都由至少一名男学生和至少一名女学生参加。下面的关系代数表达式代表什么?
(A) 所有女学生都参加的课程。
(B) 注册了适当的女学生子集的课程。
(C) 只招收男学生的课程。
(D) 以上都不是
答案 (B)
有问题的表达式按顺序执行以下步骤。
a) 选择所有女学生的stuids ,选择所有课程的所有courseids。
b) 然后查询执行上述笛卡尔积从不同表中选择两列。
c) 最后从上述步骤 (b) 的结果中减去登记表。这将删除其存在于登记表中的所有(studid,courseid)对。如果所有女学生都注册了一个课程,那么该课程将不会出现在减法结果中。
因此,完整的表达式返回其中注册了适当的女学生子集的课程。
studinfo table
studid name sex
------------------------
1 a Male
2 c Female
3 d Female
enroll table
studid courseid
------------------
1 1
2 1
3 1
2 2
3 3
3 2
Result of step b
studid courseid
---------------------
2 1
2 2
2 3
3 1
3 2
3 3
Result of step c
studid courseid
-------------------
2 3
2) 考虑以姓名为键的关系employee(name, sex, supervisorName)。 supervisorName 给出正在考虑的员工的主管的姓名。以下元组关系演算查询产生什么?
(A) 有男性主管的员工姓名。
(B) 没有直接男性下属的员工姓名。
(C) 没有直接女性下属的员工姓名。
(D) 有女性主管的员工姓名。
答案 (C)
该查询选择所有直属下属为“男性”的员工。换句话说,它选择没有直接女性下属的员工姓名
3)考虑表employee(empId,name,department,salary)和下面的两个查询Q1,Q2。假设部门 5 有不止一名员工,并且我们想要找到比部门 5 中任何人薪水都高的员工,对于任意员工表,以下哪一项语句是正确的?
Q1 : Select e.empId
From employee e
Where not exists
(Select * From employee s where s.department = “5” and
s.salary >=e.salary)
Q2 : Select e.empId
From employee e
Where e.salary > Any
(Select distinct salary From employee s Where s.department = “5”)
(A) Q1 是正确的查询
(B) Q2 是正确的查询
(C) Q1 和 Q2 产生相同的答案。
(D) Q1 和 Q2 都不是正确的查询
答案 (B)
让员工(empId,姓名,部门,工资)有以下实例。
empId 名称 部门工资
—————————————————
e1 ———— A———— 1——10000
e2 ——-B ———— 5 ———5000
e3 ——-C ———— 5——-7000
e4 ——-D ———— 2——-2000
e5 ——-E ———— 3——-6000
现在实际结果应该包含 empId : e1 、 e3 和 e5 (因为他们的薪水比部门“5”中的任何员工都要高)
—————————————————————
现在第一季度:
注意:EXISTS(empty set) 给出 FALSE,NOT EXISTS(empty set) 给出 TRUE。
选择 e.empId
来自员工e
不存在的地方
(选择 * From employee s where s.department = “5” and
s.salary >=e.salary)
Q1 将仅产生 empId e1。
————————————————————
而 Q2 :
选择 e.empId
来自员工e
e.salary > Any
(从员工 s 中选择不同的工资,其中 s.department = “5”)
Q2 将产生 empId e1、e3 和 e5。
—————————————————————
因此 Q2 是正确的查询。
4) 以下哪一项陈述为假?
(A) 任何具有两个属性的关系都在 BCNF 中
(B) 每个键只有一个属性的关系是 2NF
(C) 素数属性可以传递依赖于 3 NF 关系中的键。
(D) 主要属性可以传递依赖于 BCNF 关系中的键。
答案 (D)
5) 考虑以下涉及两个事务的时间表。以下哪一项陈述是正确的?
(A) S1 和 S2 都是冲突可序列化的。
(B) S1 是冲突可序列化的,S2 不是冲突可序列化的。
(C) S1 不是冲突可序列化的,S2 是冲突可序列化的。
(D) S1 和 S2 都不是冲突可序列化的。
答案 (C)
S1 不是冲突可序列化的,但 S2 是冲突可序列化的
Schedule S1
T1 T2
---------------------
r1(X)
r1(Y)
r2(X)
r2(Y)
w2(Y)
w1(X)
The schedule is neither conflict equivalent to T1T2, nor T2T1.
Schedule S2
T1 T2
---------------------
r1(X)
r2(X)
r2(Y)
w2(Y)
r1(Y)
w1(X)
The schedule is conflict equivalent to T2T1.