扫一扫二维码
进群一起备考
查看更多
当前 - 选择题 - 数据库理论简单
单选题
2021年5月第32题
收藏
分享
#数据库系统
#数据库理论
#第二版教材
#凯恩建议必须掌握
给定关系模式R(U ,F),其中:属性集U={A,B,C,D,E,G},函数依赖集F={A→BC,C→D,A→D,E→G}。关系R中(问题1), 函数依赖集F中(问题2)。
正确答案B
凯恩解析
本题考察的是候选码的判定与属性闭包计算。计算闭包可快速判定候选码的最小超码。
问题 1:
以AE为例,AE⁺:由A→BC、A→D可得A、B、C、D;由E→G可得G,连同E本身,AE⁺={A,B,C,D,E,G}=U,且A⁺={A,B,C,D}不含E、G,E⁺={E,G}不含A、B、C、D,故AE为最小超码,即候选码。
A选项有1个候选码A:A⁺={A,B,C,D},缺少E、G,不是超码,错误。
B选项有1个候选码AE:AE⁺=U且最小,正确。
C选项有2个候选码AC和AE:AC⁺由A→BC、A→D得{A,B,C,D},缺E、G,不是候选码,错误。
D选项有2个候选码CE和AE:CE⁺由C→D、E→G得{C,E,D,G},缺A、B,不是候选码,错误。
因此选B。
问题 2:
考察的是传递依赖与冗余函数依赖的判定。由A→C且C→D可推出A→D,说明在F的蕴涵下存在传递依赖A→D;而F中又显式给出了A→D,这条依赖可由其他依赖推得,因此是冗余的。
A选项存在传递依赖,但不存在冗余函数依赖:传递依赖存在,但A→D是冗余,否定后半句,错误。
B选项既不存在传递依赖,也不存在冗余函数依赖:与事实不符,错误。
C选项存在传递依赖,并且存在冗余函数依赖A→D:符合A→C、C→D ⟹ A→D且A→D已在F中的事实,正确。
D选项不存在传递依赖,但存在冗余函数依赖A→D:传递依赖确实存在,错误。
因此,选C。
