给定关系模式R(U,F),U={A,B,C,D},F={A→C,A→D,C→B,B→D},F中冗余函数依赖为( );若将R 分解为ρ={AC,CB,BD},则ρ满足(请作答此空)。
- A.不具有无损连接性,而且不保持函数依赖
- B.不具有无损连接性,但保持函数依赖
- C.具有无损连接性,而且保持函数依赖
- D.具有无损连接性,但不保持函数依赖
正确答案及解析
正确答案
C
解析
本题考查关系数据库规范化理论方面基础知识。判断一个函数依赖相对于一个F是否冗余,只需要判断该函数依赖是否能通过F推导出来;即判断函数依赖左边属性闭包是否包含右边属性。由于A→C,C→B,B→D,可以推出A→D(传递律),所以函数依赖集A→D是冗余。保持函数依赖判断:如果F上每一个函数依赖都在其分解后某一个关系上成立,则该分解是保持函数依赖。由于A→C被AC保持,C→B被CB保持,B→D被BD保持,A→D在ρ上没有子模式保持,但是49已经证明A→D为冗余函数依赖,因此该分解保持函数依赖。ρ将R分解为3个关系模式,需要采用Chase法来判读是否为无损连接。综上所述,本题答案为C选项。