考虑以下关系 R = (ABCDEFGH),这组函数依赖关系在该关系上成立: {BE -> GH, G -> FA, D -> C, F -> B} R 的候选键是什么?
我发现答案可以是 BED、DEG、FED。但是,这个问题是单选题,所以我不能选择多个答案......
希望有人能给我正确的答案和他使用的方法。
考虑以下关系 R = (ABCDEFGH),这组函数依赖关系在该关系上成立: {BE -> GH, G -> FA, D -> C, F -> B} R 的候选键是什么?
我发现答案可以是 BED、DEG、FED。但是,这个问题是单选题,所以我不能选择多个答案......
希望有人能给我正确的答案和他使用的方法。
让我解释一下如何以简单的方式找到候选键:
形成左、右、中三列
在左栏中,添加仅出现在 FD 左侧的属性
在右栏中,添加仅出现在 FD 右侧的属性
在中间列中,添加出现在 FD 左右两侧的属性
解释:
左栏的属性表示,每个可能的候选键都必须包含这些属性
和
右列的属性表示候选键不应包含它
和
中间的属性可能包含在候选键中,也可能不包含在候选键中
在这个例子中,我们在左列得到 E、D,在中间得到 B、F、G,在右列得到 A、C、H
然后,应用Closure 属性,
床+=ABCDEFGH
自从
BE->GH给定
BE->FA分解规则和传递性规则BE->G 和 G->FA
BED->C 由于 D->H给出
类似地,可以证明 DEF 和 DEG 是候选键。
因此,这三个都是候选键
希望能帮助到你!