【发布时间】:2021-01-09 02:06:04
【问题描述】:
在 R(A,B,C,D) 中, 让依赖成为
A->B
B->C
C->D
D-> B
R 分解为 (A,B), (B,C) 和 (B,D) 是无损的还是依赖保留的?
我的尝试:(A,B) 和 (B,C) 可以无损地组合,因为 B->C。但是,对于 (A,B,C) 和 (B,D),B 不构成任何一个的密钥。因此有损分解。
同样对于依赖保留,关系(C-D)不能从任何分解的关系中得到,因此分解不是依赖保留。
但是给出的答案是分解既无损又保留依赖性。那我哪里错了?
关系 R 的键也只有 {A} 不是吗?
【问题讨论】:
-
您的“我有这些 FD”没有意义。 “这些都是持有的FD”?--不可能。 “这些都是持有的不平凡的FD”?--不可能。 “这些是一些持有的FD”?--问题无法回答。找出什么是 cover 以及应用特定定义/规则/算法的确切条件。要确定 CK 和 NF,我们必须得到构成掩护的 FD。有时是最小/不可约覆盖。并且必须给出所有属性的集合。 See this answer. 例如“B 不构成任何一个键”--false。
-
请提出 1 个问题。给出明确的推理——有任何机会解决、交流和证明你付出了合理的研究努力。通过明确合理的小步骤将声明与您给出的定义和定理联系起来。例如“因为 B->C”和“B 不构成任何一个键”——为什么? “无法得到关系(C-D)”——不清楚。无论您是什么意思,这如何适用于确定无损性? PS 如果给定的 FD 形成一个掩护,那么 {A} 是唯一的 CK。但是,如果您不确定,那么将其作为单独帖子的第一个问题提出,并推理到被卡住/不确定。
标签: database database-normalization functional-dependencies