给定关系R(A1,A2,A3,A4, A5)上的函数依赖集 F={A1→A2A5,A2→A3A4,A3→A2},R的候选关键字为 (问题1) 。函数依赖 (问题2) ∈ F+。
关系数据库中,候选码可通过属性闭包法判定:从某属性(组)出发,依据给定函数依赖推导所有能确定的属性,若最终覆盖关系的全部属性,且该属性(组)无冗余,即去掉任意一个属性后无法覆盖全属性,则为候选码。判断某函数依赖是否属于函数依赖集的闭包F+,可借助阿姆斯特朗公理及其推论:自反、增广、传递公理是基础规则,结合合并规则,如若X→Y且X→Z,则X→YZ、分解规则,如若X→YZ,则X→Y且X→Z、伪传递规则,如若X→Y且WY→Z,则WX→Z等推论,通过闭包推导验证新依赖的有效性,比如已知X→Y、Y→ZW,可先传递推出X→ZW,再结合分解或合并规则推导更多衍生依赖。
本题考察的是关系数据库函数依赖、候选码与闭包推导的基本理论。
问题 1:
确定候选码可用属性闭包法。对 A1 取闭包:A1+,由 A1→A2A5 得到 A2、A5;由 A2→A3A4 得到 A3、A4;又因 A3→A2 已在闭包中,不新增属性。最终 A1+ = {A1,A2,A3,A4,A5},覆盖全属性,因此 A1 是候选码。
A选项 A1:A1 的闭包覆盖全属性,满足唯一标识元组的要求,正确。
B选项 A1A2:包含冗余属性 A2,因 A1 已能唯一标识,A1A2 不是最小的键,不是候选码,错误。
C选项 A1A3:同理包含冗余属性 A3,非最小,错误。
D选项 A1A2A3:冗余更明显,非最小,错误。
因此,候选关键字为 A1。
问题 2:
判断依赖是否属于 F+ 可用阿姆斯特朗公理与闭包推导。
A选项 A5→A1A2:由 F 中无任何以 A5 为决定属性的依赖,且无法经传递推出 A1 或 A2,错误。
B选项 A4→A1A2:F 中无以 A4 为决定属性的依赖,无法推出 A1 或 A2,错误。
C选项 A3→A2A4:F 中直接有 A3→A2;又由 A2→A3A4,可联合得出 A3→A4;合并得到 A3→A2A4,成立,正确。
D选项 A2→A1A5:虽有 A2→A3A4,但无法推出 A1 或 A5,错误。
因此,属于 F+ 的依赖为 A3→A2A4。
