【发布时间】:2017-12-09 03:11:13
【问题描述】:
假设我们有一个关系 R(A,B,C,D,E) 与候选键 {A,B} , {C,D} 并让 E 是一个非素数属性。
如果存在依赖 C->E 那么它是部分依赖,因为 E 依赖于候选键 {C,D} 的一部分
依赖BC->E是部分的吗?
【问题讨论】:
-
在this answer 之后,
C → E不是部分依赖(而CD → E是)。如果在关系中,除了C → E,还存在一个依赖BC → E,那么后者也是部分依赖,因为B可以从左侧部分中删除,而C → E依赖仍然成立。另一方面,如果C → E不成立并且BC → E成立(连同键所暗示的依赖关系),那么后者不是部分依赖关系(根据答案中引用的定义)。跨度> -
CD -> E 不是部分依赖。 CD 是候选键,因此它可以唯一确定 E,即 CD->E ,现在 C->E 是部分的,因为非素数属性(E)取决于候选键的一部分。
-
“if”句与回答最后一个问题有关系吗?为什么会在那里?您是否想问如果 C->E 那么 BC->E 是否部分? (您是否意识到“部分”仅适用于持有的 FD,即只有持有的 FD 才能成为 partila?)在您的最后一句话中,您是想说,如果 BC->E 成立,它是部分的吗?因为你没有说那些话。
-
@Renzo 根据我的回答 1。只要 {} 不能确定 E 2,C → E 就不是部分的。如果 C → E 成立,那么 BC → E 必须成立并且是部分的。 3. 如果 C → E 不成立,那么只要 B → E & {} → E 不成立,BC → E 就不是偏的。该死的那些滑溜溜的ifs。但我当然会同意您评论的声音版本略有不同。
标签: database database-design normalization database-normalization functional-dependencies