以下哪个关系演算表达式不安全?
(A) A
(B) B
(C) C
(D) D答案: (C)
说明:元组关系演算表达式有时可能会生成无限关系。它还可能包含甚至不出现在数据库中的值。此类表达被认为是不安全的。
一个安全的元组关系演算表达式肯定会产生有限的结果。
为了限制元组关系演算中表达式的不安全性,存在一个由dom(P)表示的元组关系公式的域的概念,该域是P引用的一组值,即P中的值或关系的元组中的值在P中提到。
例如:表达式{t | ¬(t€R)}是不安全的,因为存在无数个在R关系中不存在的元组。
在上面的问题中,选项(A),(B)和选项(D)生成有限的元组集,因为每个元组都给出了受特定关系限制的元组,因此是安全的。
选项(C)会生成无数个元组,因为它会生成不在R1中的所有元组,即它可以具有除R1以外的任何其他关系中的元组,因此这是不安全的。
codex.cs.yale.edu/avi/db-book/db6/slide-dir/PPT-dir/ch6.ppt
该解决方案由Yashika Arora提供。
这个问题的测验