规范覆盖后的候选键
Candidate keys after canonical cover
我有一组函数依赖:
V = {ABCDEF} F = {AB → CD,ABDE → F,BC → A,C → DF}
候选键是:{ABE, BCE}
Canonical cover是:{AB→ C, BC→ A, C→ DF} [这是我的想法,可能有误]
但是,如您所见,候选键的属性 E 不在我的规范封面中,据我所知,候选键在规范封面中应该相同。
如果你考虑阿姆斯特朗微积分的增广规则,我们可以说它是正确的,但我很困惑。属性 E 是否必须在规范封面中表示?
你说:
as far as I know candidate keys should be same in the canonical cover
这不是真的。相反,如果一个属性不属于规范覆盖的函数依赖的任何正确部分,它 必须 出现在 any 候选中键(这是因为它不能从任何其他属性子集派生,因此,由于候选键必须确定所有属性,因此它应该出现在任何键中)。您的规范封面和候选键是正确的。
请注意,如果一个属性不属于任何函数依赖(左右两部分),如您示例中的E
,这是上述的特例(它不属于右侧),并且必须出现在任何候选键中。
最后,请注意,这可以被认为是关系中出现问题的“症状”,实际上模式不在 3NF 或 BCNF 中。
好吧,当我尝试从这个关系 (ABCDEF) 进行 Bernnstein 综合时,我必须使用基础:{AB→C,BC→A,C→DF} 我需要添加候选键,因为不存在候选键当我们从函数依赖关系中形成关系时:R1(ABC) 和 R2(CDF) 我想知道我们是否需要在这里添加 E 因为我们的基础不包含 E 并且我们在进行综合时考虑基础。这就是为什么我有点困惑。但是,我认为我们需要添加 E,因为我们正在从原始 R(ABCDEF) 进行合成,所以它应该是 R1(ABC)、R(CDF) 和 R3(ABCE)。 R3 包含所有候选键。
我有一组函数依赖:
V = {ABCDEF} F = {AB → CD,ABDE → F,BC → A,C → DF}
候选键是:{ABE, BCE} Canonical cover是:{AB→ C, BC→ A, C→ DF} [这是我的想法,可能有误]
但是,如您所见,候选键的属性 E 不在我的规范封面中,据我所知,候选键在规范封面中应该相同。 如果你考虑阿姆斯特朗微积分的增广规则,我们可以说它是正确的,但我很困惑。属性 E 是否必须在规范封面中表示?
你说:
as far as I know candidate keys should be same in the canonical cover
这不是真的。相反,如果一个属性不属于规范覆盖的函数依赖的任何正确部分,它 必须 出现在 any 候选中键(这是因为它不能从任何其他属性子集派生,因此,由于候选键必须确定所有属性,因此它应该出现在任何键中)。您的规范封面和候选键是正确的。
请注意,如果一个属性不属于任何函数依赖(左右两部分),如您示例中的E
,这是上述的特例(它不属于右侧),并且必须出现在任何候选键中。
最后,请注意,这可以被认为是关系中出现问题的“症状”,实际上模式不在 3NF 或 BCNF 中。
好吧,当我尝试从这个关系 (ABCDEF) 进行 Bernnstein 综合时,我必须使用基础:{AB→C,BC→A,C→DF} 我需要添加候选键,因为不存在候选键当我们从函数依赖关系中形成关系时:R1(ABC) 和 R2(CDF) 我想知道我们是否需要在这里添加 E 因为我们的基础不包含 E 并且我们在进行综合时考虑基础。这就是为什么我有点困惑。但是,我认为我们需要添加 E,因为我们正在从原始 R(ABCDEF) 进行合成,所以它应该是 R1(ABC)、R(CDF) 和 R3(ABCE)。 R3 包含所有候选键。