考虑具有关系模式EMP(EmpId,EmpName,DepId)和DEPT(DeptName,DeptId)的数据库。注意,在关系EMP中,可以允许DepId为NULL。考虑以下以元组关系演算表示的数据库查询。
I. {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
I. {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] DE v∈DEPT(t [DeptId] = DeptId]))}:给出不属于同一部门的empname
所有这些查询都给出了一些有限的结果,因此都是安全的表达式。
因此,选项D是正确的。
这个问题的测验