多选题
3113.已知关系R具有属性A,B,C,D,E,F.假设该关系有如下函数依赖AB→C,BC→AD,D→E,CF→B,则下列依赖蕴含于给定的这些函数依赖的有().
A
B→C
B
AB→D
C
AB→E
D
AB→F
答案解析
正确答案:ABC
解析:
题目分析:
题干给出了关系模式 R(A, B, C, D, E, F) 及其上的函数依赖集:
- AB → C
- BC → AD
- D → E
- CF → B
要求判断哪些选项中的函数依赖是**由上述函数依赖集逻辑蕴含**的,即可以通过Armstrong公理系统(自反律、增广律、传递律)或闭包计算推导得出。
我们逐项分析各选项是否被蕴含。
---
**核心知识点回顾:**
1. **函数依赖的逻辑蕴含**:若从给定的函数依赖集 F 出发,能通过推理规则推出某个函数依赖 α → β,则称该依赖被 F 蕴含。
2. **属性集闭包 α⁺**:在函数依赖集 F 下,属性集 α 的闭包是指所有被 α 函数决定的属性集合。若 β ⊆ α⁺,则 α → β 成立。
3. 常用推理规则:
- 传递律:若 α → β,β → γ,则 α → γ
- 增广律:若 α → β,则 αγ → βγ
- 分解律:若 α → βγ,则 α → β 且 α → γ
---
我们使用**属性闭包法**来验证每个选项。
---
### 给定函数依赖集 F:
F = { AB → C, BC → AD, D → E, CF → B }
注意:BC → AD 表示 BC → A 且 BC → D(由分解律)
所以可等价拆分为:
- AB → C
- BC → A
- BC → D
- D → E
- CF → B
---
### 选项 A: B → C
判断是否存在 B → C?
计算 B⁺(B 在 F 下的闭包):
初始:B⁺ = {B}
查看是否有左部为 B 或被 B 包含的函数依赖:
- AB → C:需要 A 和 B,当前只有 B,不满足
- BC → A/D:需要 C,没有
- D → E:无 D
- CF → B:右部是 B,不影响
无法从 B 推出 C。
因此 B⁺ = {B},不包含 C ⇒ B → C 不成立。
但答案给出 ABC 正确,说明此处可能存在问题。
重新审视:是否遗漏了某些推导路径?
尝试进一步推理。
观察是否存在间接路径。
目前没有任何函数依赖的左部仅含 B 或被 B 所包含,除了 CF → B 是反过来的。
所以 B 无法推出任何其他属性。
结论:B → C **不被蕴含**
然而标准答案包含 A,说明我们需要更仔细检查是否有误。
再考虑是否存在隐含依赖。
例如,能否从已有依赖中推导出 B → C?
假设我们尝试利用其他依赖组合。
比如,已知 AB → C,如果我们有 B → A,则可结合得到 B → C(因为 B → A 且 AB → C,可通过增广和传递推出)。
那么是否存在 B → A?
计算 B⁺ 是否包含 A?
如前所述,B⁺ = {B},无法推出 A。
或者是否存在其他方式?
考虑 BC → A 和 BC → D。
如果我们有 B → C,则 BC 就变成 BB → ... 即 B → ...,但这正是我们要证明的,不能循环论证。
因此,**没有依据支持 B → C 成立**。
初步判断:选项 A 错误。
但题目答案为 ABC,包含 A,需再次核查。
或许存在笔误或理解偏差?
换一种思路:是否存在从 AB → C 和 BC → D 等推导出更强结论?
暂记疑问,先分析其他选项。
---
### 选项 B: AB → D
判断 AB → D 是否成立。
计算 AB⁺(AB 的闭包)
初始:AB⁺ = {A, B}
步骤一:使用 AB → C ⇒ 加入 C → AB⁺ = {A, B, C}
现在有 A, B, C
步骤二:使用 BC → D(因 BC → AD ⇒ 包含 D)⇒ B,C 存在 ⇒ 加入 D → AB⁺ = {A,B,C,D}
步骤三:使用 D → E ⇒ 加入 E → AB⁺ = {A,B,C,D,E}
至此,AB⁺ = {A,B,C,D,E}(缺少 F)
由于 D ∈ AB⁺ ⇒ AB → D 成立
✅ 选项 B 正确
---
### 选项 C: AB → E
继续上面的闭包计算:
AB⁺ 已包含 E(由 D → E,而 D ∈ AB⁺ ⇒ E ∈ AB⁺)
所以 E ∈ AB⁺ ⇒ AB → E 成立
✅ 选项 C 正确
---
### 选项 D: AB → F
检查 F 是否在 AB⁺ 中
前面计算 AB⁺ = {A,B,C,D,E},不含 F
是否存在任何能引入 F 的依赖?
现有依赖中,只有 CF → B 涉及 F,且它是右部为 B,左部含 F
无法从已有属性推出 F
也没有任何依赖可以生成 F
因此 F ∉ AB⁺ ⇒ AB → F 不成立
❌ 选项 D 错误
---
回到选项 A: B → C
我们已经确认 AB → C,但 B 单独不能推出 C
除非存在 B → A 或类似依赖
但我们没有这样的依赖
尝试计算 B⁺:
B⁺ 初始 = {B}
检查所有依赖左部是否被 B 包含:
- AB → C:AB ⊈ B,不行
- BC → A:BC ⊈ B,不行
- D → E:D ∉ B
- CF → B:方向相反
无法扩展 ⇒ B⁺ = {B}
C ∉ B⁺ ⇒ B → C 不成立
因此选项 A 不正确
但题目给出的答案是 ABC,意味着 A 被认为正确
这可能存在错误,或我们遗漏了什么
再次检查是否可以从给定依赖中推导出 B → C
尝试推导:
1. AB → C (已知)
2. BC → D (由 BC → AD 分解)
3. D → E (已知)
4. CF → B (已知)
能否构造出 B → C?
假设我们试图用伪传递或其他方法
例如,如果存在 X → B 且 XB → C,则可能推出 X → C?不适用
或者,若 B → X,X → C,则 B → C
但没有发现任何关于 B 能推出的依赖
另一个角度:是否存在冗余或等价变换?
考虑将 AB → C 与 BC → D 结合?
AB → C
BC → D
D → E
仍无法消去 A 得到 B → C
除非 A 是多余的,但 AB → C 中 A 是否多余?
检查:若 B → C 成立,则 AB → C 可由增广律得到,但反过来不成立
要判断 AB → C 中 A 是否冗余,需验证 B → C 是否成立 —— 这正是问题所在,无法确认
因此不能认为 A 冗余
结论:**B → C 不能由给定函数依赖集推导出**
即选项 A 不正确
相关知识点:
给定函数依赖蕴含多种结果
题目纠错
人工智能训练师题库
相关题目
单选题
1739.机器学习的流程包括:分析案例、数据获取、()和模型验证这四个过程。()
单选题
1738.CSV文件是以什么标点符号为分隔符的()。
单选题
1737.决策树中的分类结果是最末端的节点,这些节点称为?()
单选题
1736.机器人具有语言识别和理解、文字识别、环境互动的功能,这属于人工智能研究()方面的内容。()
单选题
1735.人工智能是一门利用计算机模拟人类智能行为科学的统称,它涵盖了训练计算机使其能够完成()等人类行为的范畴。
单选题
1734.函数要返回一个数据到调用处,使用()语句。()
单选题
1733.MD5是一种()算法。
单选题
1732.1937年,图灵在发表的论文()中,首次提出图灵机的概念。
单选题
1731.人工智能的发展阶段不包括()。
单选题
1730.人类历史上第一部完全由机器人“小冰”所写的诗集叫()。
