-1

鉴于下面的函数依赖关系,对我来说有点令人困惑,因为第三范式表示R的非主素属性并不依赖于主关键字。因此,我从表中删除了函数依赖关系 C - > DE,并将其置于新的关系中,但所有这些属性也可以由关系的主键确定。我想,我不能从该表中删除dË或者我应该删除,因为进一步BCNF也删除这些attributes.Question没有帮助的是当我删除第一功能依赖我也应该删除dE从第一个表? enter image description here规范化与第三范式的关系

+0

是的,你应该删除这些属性。考虑到从ABC关系中给定AB的一定值,对于C有一个(唯一的)值。通过该值,在第二个关系中,可以找到由AB确定的D和E的值。 – Renzo

+0

请尽可能使用文字而不是图片。部分图像无法搜索或剪切和粘贴。 – philipxy

+0

转到您提供的用于定义“传递性FD”的*参考*以及分解为3NF/BCNF的算法。那么,如果“所有这些属性也可以由关系的主键确定”呢? PK *总是*确定所有属性。做“关系”和“这种关系”是指原来还是“新关系”?而且,PKs并不重要,CK也可以。这与传导型FD和BCNF有什么关系?为什么BCNF如果你想要3NF?请编辑您的问题以清楚。说明你正在谈论的所有这些事情,并确保它总是清楚你指的是什么。 – philipxy

回答

0

要将关系放入给定的NF(正常形式),您应该遵循一个已被建议用于该NF的算法。 (例如,给定一些FD,根据阿姆斯特朗的公理,还有许多其他的FD;你也需要处理它们,例如,在可能的情况下“保留”FD有一定的好处,并且保留FD的分解为3NF分量总是可能的;但是如果我们分解使得某些FD属性在组件之间被分割,我们可能无法保留FD)。

请注意,这些算法不涉及首先归一化到较低的NF。 (这可以阻止“好的”更高NF设计从最终结果。)

当你分解以从与属性R的关系中去除FD X→Y时,如果组件具有属性集XUY和R-Y,则会丢失/不加入。通过重复分解,所有组件将最终在您想要的NF中(如果它是BCNF或更低)。但是你的整体分解不一定会像建议的算法会给你的那样“好”。