题目
4.2 设一个关系为R(A,B,C,D,E),它的最小函数依赖[1]集为FD=(A→B,A→C,(A,D)→E),则该关系的候选码为什么?该关系属于第几范式,请简要地说明理由。上传附件提示:如果要切换输入法,请按Ctrl+ Shift切换,或者Windows键+空格键;如果要切换中英文,请按Shift键切换。
4.2 设一个关系为R(A,B,C,D,E),它的最小函数依赖[1]集为FD={A→B,A→C,(A,D)→E},则该关系的候选码为什么?该关系属于第几范式,请简要地说明理由。
上传附件
提示:如果要切换输入法,请按Ctrl+ Shift切换,或者Windows键+空格键;如果要切换中英文,请按Shift键切换。
题目解答
答案
根据题意,$ R(A, B, C, D, E) $ 的最小函数依赖集为 $ FD = \{ A \to B, A \to C, (A, D) \to E \} $。
- $ A^+ = \{A, B, C\} $,无法覆盖所有属性。
- $ (A, D)^+ = \{A, B, C, D, E\} $,可唯一标识元组[2],故候选码为 $ (A, D) $。
- 分析范式:
- $ A \to B $ 和 $ A \to C $ 表明 $ B $ 和 $ C $ 只依赖于候选码的一部分 $ A $,属于部分依赖。
- 因此,该关系不满足 2NF,仅属于 1NF。
答案:
候选码为 $ (A, D) $。
该关系属于第一范式[3](1NF),因为存在部分函数依赖[4] $ A \to B $ 和 $ A \to C $,违反了 2NF 要求。
解析
关键知识点:
- 候选码的确定:通过函数依赖集,找到能唯一标识元组的最小属性集合。
- 范式判断:根据函数依赖是否满足各范式条件,重点分析是否存在部分依赖或传递依赖。
解题核心思路:
- 候选码:从最小函数依赖集出发,逐步推导哪些属性组合能决定所有其他属性。
- 范式:检查非主属性是否对候选码存在部分依赖或传递依赖,判断是否满足2NF及以上范式。
候选码的确定
- 计算属性闭包:
- A的闭包:根据 $A \to B$ 和 $A \to C$,得 $A^+ = \{A, B, C\}$,无法覆盖所有属性。
- (A, D)的闭包:
- 由 $A \to B, A \to C$,得 $\{A, D\}^+ = \{A, B, C, D\}$。
- 再结合 $(A, D) \to E$,最终 $(A, D)^+ = \{A, B, C, D, E\}$,覆盖所有属性。
- 结论:候选码为 $(A, D)$。
范式判断
- 分析函数依赖:
- $A \to B$ 和 $A \to C$ 中,$A$ 是候选码 $(A, D)$ 的真子集,属于部分依赖。
- $(A, D) \to E$ 中,$E$ 依赖于整个候选码,无部分依赖或传递依赖。
- 范式结论:
- 存在部分依赖,不满足2NF,因此属于第一范式(1NF)。