1

我有一组功能依赖项:

V = {ABCDEF} F = {AB → CD,ABDE → F,BC → A,C → DF}

候选键是:{ABE, BCE} 规范覆盖是:{AB→ C, BC→ A, C→ DF} [这是我的想法,可能是错误的]

但是,正如您所见,候选键的一个属性 E 不在我的规范封面中,据我所知,候选键在规范封面中应该是相同的。如果您考虑阿姆斯特朗演算中的增强规则,我们可以说它是正确的,但我很困惑。属性 E 是否必须在规范封面中表示?

4

2 回答 2

0

你说:

据我所知,候选键在规范封面中应该相同

这不是真的。相反,如果一个属性不属于规范覆盖的函数依赖的任何正确部分,它必须出现在任何候选键中(这是因为它不能从任何其他属性子集派生,所以,因为候选键必须确定所有属性,它应该存在于任何键中)。您的规范封面和候选键是正确的。

请注意,如果属性不属于任何功能依赖项(在左侧和右侧部分),如E您的示例所示,这是上面的一个特例(它不属于右侧部分),并且必须存在在任何候选键中。

最后,请注意,这可以被认为是关系中出现问题的“症状”,实际上模式不在 3NF 或 BCNF 中。

于 2018-06-15T18:22:59.207 回答
0

好吧,当我尝试从这个关系(ABCDEF)进行伯恩斯坦综合时,我必须使用基础:{AB→C,BC→A,C→DF} 我需要添加候选键,因为当我们形成关系时不存在候选键来自功能依赖关系:R1(ABC)和R2(CDF),我想知道我们是否需要在此处添加E,因为我们的基础不包含E,并且我们在进行综合时会考虑基础。这就是为什么我有点困惑。但是,我认为我们需要添加 E,因为我们正在从原始 R(ABCDEF) 进行合成,所以它应该是 R1(ABC)、R(CDF) 和 R3(ABCE)。R3 包含所有候选键。

于 2018-06-16T08:47:13.587 回答