【发布时间】:2020-02-13 10:09:38
【问题描述】:
考虑 R(A, B, C, D, E, F, G) 是一个关系模式 以下函数依赖:AC → G,D → EG,BC → D,CG → BD, ACD → B, CE → AF。
可能的不同最小覆盖数 是
我该如何解决上述问题?
我尝试了什么:
------------------------------------------- -------------------
我找到可能的最小覆盖数量的方法是首先使用算法(如下所示),然后通过运行算法找到可以找到最小覆盖的不同方法(因此给出可能的最小覆盖的数量)。问题是我不确定我应该如何考虑“找到最小封面的不同方法”。例如:
找到最小覆盖的算法(教科书:“数据库系统基础” - Elmasri,Navathe):
输入:一组函数依赖 E.
设置 F := E.
将 F 中的每个函数依赖 X → {A1, A2, ..., An} 替换为 n 个函数依赖 X →A1, X →A2, ..., X → An.
对于每个功能依赖 X → A in F
对于每个属性 B 这是 X 的一个元素 if { {F – {X → A} } ∪ { (X – {B} ) → A} } 等价于 F 然后在 F 中将 X → A 替换为 (X – {B} ) → A。对于每个剩余的函数依赖 X → A in F if {F – {X → A} } 等价于 F,然后从 F 中移除 X → A。
在应用算法时,在 ACD → B 处,我发现 A 和 D 在第 3 步是无关的(将 ACD → B 替换为 C → B 给出了一组等效于 F 的函数依赖关系),但我不确定是否我必须用 C → B 或 ACD → B 用 AC → B 或 ACD → B 用 CD → B 替换 ACD → B。假设我用 AC → B 或 CD → B 替换 ACD → B,我不确定是否用 AC → B 替换 ACD → B 可能会导致一个可能的最小覆盖,而用 CD → B 替换 ACD → B 可能会导致另一个可能的最小覆盖。
-------------------------------------------------- -----------
注意:
- “可能的不同最小覆盖数”表示在给定上述关系和函数依赖关系的情况下可能的最小覆盖数。
- 假设问题中提到的所有函数依赖都成立。
【问题讨论】:
-
那些 FD 并不是所有的。 (我解释了两次。)测试的意思和应该说的是,这些 FD 构成了模式中所有 FD 的覆盖。
标签: database-design database-normalization functional-dependencies