1. 举例说明函数依赖 X→Y 如何用于判定候选键,并阐述 Armstrong 公理(自反律、增广律、传递律)及其推论的完整推导。
请举一个具体例子,说明函数依赖 X→Y 如何用于判定候选键,并完整阐述 Armstrong 公理(自反律、增广律、传递律)及其推论(分解律、合并律、伪传递律)的推导过程?
- 函数依赖定义与属性闭包计算判定候选键
- Armstrong 三条基本公理的内容
- 由基本公理推导分解律、合并律、伪传递律
函数依赖 X→Y 表示关系中任意两行元组在 X 上取值相同则 Y 上也必然相同。判定候选键的方法:对属性集 X 反复应用已知函数依赖求其闭包 X⁺,若 X⁺ 覆盖关系全部属性(X 是超键),且 X 的任一真子集的闭包都不能覆盖全部属性(无冗余),则 X 是候选键。例如关系 R(A,B,C,D) 上有依赖 A→B、A→C、B→D,计算 A 的闭包:A⁺={A},由 A→B 加入 B,由 A→C 加入 C,由 B→D 加入 D,得 A⁺={A,B,C,D}=全属性,且 A 的任一真子集为空集不能决定任何属性,故 A 是候选键。
Armstrong 公理:自反律(若 Y⊆X 则 X→Y)、增广律(若 X→Y 则 XZ→YZ)、传递律(若 X→Y 且 Y→Z 则 X→Z)。推论推导:分解律(X→YZ 则 X→Y),由 Y⊆YZ 及自反律得 YZ→Y,再与 X→YZ 用传递律得 X→Y;合并律(X→Y 且 X→Z 则 X→YZ),由 X→Y 增广 Z 得 XZ→YZ,由 X→Z 增广 X 得 X→XZ,传递得 X→YZ;伪传递律(X→Y 且 WY→Z 则 WX→Z),由 X→Y 增广 W 得 WX→WY,再与 WY→Z 传递得 WX→Z。Armstrong 公理是完备且可靠的:可靠指推出的依赖必然成立,完备指所有蕴含的依赖都能推出,这两点共同保证可用闭包算法穷尽所有可推导依赖。
候选键判定本质是闭包计算:反复应用依赖直到闭包不再增长,闭包覆盖全部属性即为超键,去掉冗余属性才得到候选键。答题时先讲方法再举例,再完整陈述公理与推论推导,体现对"可靠性+完备性"的理解,这是数据库理论面试的高频考点。