📜  门| GATE-CS-2017(套装1)|第 36 题

📅  最后修改于: 2021-09-26 03:54:16             🧑  作者: Mango

考虑一个具有关系模式 EMP(EmpId、EmpName、DepId)和 DEPT(DeptName、DeptId)的数据库。请注意,在关系 EMP 中可以允许 DepId 为 NULL。考虑以下以元组关系演算表示的数据库查询。

我。 {t | ∃ u ∈ EMP (t[EMPName] = u[EmpName] ∧ ∀ v ∈ DEPT (t[DeptId] ≠ DeptId]))}

二、 {t | ∃ u ∈ EMP (t[EMPName] = u[EmpName] ∧ ∃ v ∈ DEPT (t[DeptId] ≠ DeptId]))}

. {t | ∃ u ∈ EMP (t[EMPName] = u[EmpName] ∧ ∃ v ∈ DEPT (t[DeptId] = DeptId]))}
(A)仅 I 和 II
(B)仅 I 和 III
(C)仅 II 和 III
(D) I、II 和 III答案: (D)
说明:安全表达式是保证产生有限数量的元组作为其结果的表达式。否则,它被称为UNSAFE

鉴于,可以允许 DepId 为 NULL

我。 {t | ∃ u ∈ EMP (t[EMPName] = u[EmpName] ∧ ∀ v ∈ DEPT (t[DeptId] ≠ DeptId]))} : 给出不属于任何部门的 empname

二、 {t | ∃ u ∈ EMP (t[EMPName] = u[EmpName] ∧ ∃ v ∈ DEPT (t[DeptId] ≠ DeptId]))} : 给出不属于某个部门的 empname

. {t | ∃ u ∈ EMP (t[EMPName] = u[EmpName] ∧ ∃ v ∈ DEPT (t[DeptId] = DeptId]))}:给出不属于同一部门的 empname

所有这些查询都给出了一些有限的结果,因此都是安全的表达式。

因此,选项 D是正确的。
这个问题的测验