【发布时间】:2020-08-29 12:25:33
【问题描述】:
我正在为 DB 课做作业。
即使我得到了答案(我认为),其中一个问题也让我感到困惑..
问题很简单。
对于给定关系 R(A,B,C,D,E) 和函数依赖关系 F(AB -> C, D->E, DE ->B)
1. R 在 2NF 中吗?
2。 R 在 3NF 中吗?
3. R 在 BCNF 中吗?
我认为由于 F 中所有 FD 的右侧没有 A 和 D,因此 A 和 D 必须是候选键的一部分。
所以我检查了 AD 的 Closure,我得到了 AD+ : {A,B,C,D,E}。
这意味着AD是超级关键。
另外,由于 A 和 D 都必须是候选键的一部分,并且 AD 不能被归约(AD 的子集没有闭包是 {A,B,C,D,E}),所以 AD 是候选键并且唯一可能的候选键。 (我这样做对吗?)
对于候选键AD,D->E是部分依赖于候选键AD。
所以它违反了2NF的条件。
在 DE -> B 上,这个 FD 是否违反了 2NF?
如果是这样的话..
是否违反因为我们可以从 D->E 得到 D->DE 。所以 DE -> B 等价于 D -> B。这是 D->B 违反 2NF 吗??
或
DE->B 本身违反了 2NF 没有任何转换,因为 D 在左侧?
当 XY -> Z X 是候选键的一部分而 Y,Z 是非主键时,我真的很困惑。
因为我不能说它是否违反了 2NF。我认为它违反了 2NF,但我不能清楚地说明原因。
我已经找了几个小时的示例、解释和剪辑,但没有得到任何令人满意的答案。
如果我不在乎具体原因,只想要信用,那也没关系。但我不能以这种态度暴露自己。
【问题讨论】:
-
显示你的工作步骤,按照你的教科书进行说明,并在你被卡住的第一个地方问一个特定的研究过的非重复问题。否则,答案只是在猜测您有误解的地方时重写您的教科书。请参阅How to Ask,点击谷歌搜索“stackexchange 作业”和投票箭头鼠标悬停文本。
-
您的“我有这些 FD”没有意义。 “这些都是持有的FD”?--不可能。 “这些都是持有的不平凡的FD”?--不可能。 “这些是一些持有的FD”?--问题无法回答。找出什么是cover以及应用特定定义/规则/算法的确切条件。要确定 CK 和 NF,我们必须得到构成掩护的 FD。有时是最小/不可约覆盖。并且必须给出所有属性的集合。 See this answer.
标签: database database-normalization functional-dependencies 3nf bcnf