在给定关系和 FD 的情况下找到一组属性的闭包
Posted
技术标签:
【中文标题】在给定关系和 FD 的情况下找到一组属性的闭包【英文标题】:Find the closures of a set of attributes given a relation and FDs 【发布时间】:2016-07-07 03:59:09 【问题描述】:我有以下关系:
R = BCDEFGHI
以及以下 FD
C -> D
E -> D
EF -> G
EG -> F
FG -> E
FH -> C
H -> B
我被要求找到以下一组属性的闭包:
BC
BDEFG
CEFG
EFG
EFGH
我的尝试
让BC+ = BC
.
C -> D
,我们有 DC+ = BCD
,我们完成了。
让BDEFG+ = BDEFG
.
让CEFG+ = CEFG
.
C -> D
,然后使用 CEFG+ = CEFGD
,我们就完成了。
让EFG+ = EFG
.
E -> D
,然后使用 EFG+ = EFGD
,我们就完成了。
让EFGH+ = EFGH
.
使用 FD E -> D
,然后使用 EFGH+ = EFGHD
。
使用 FD FH -> C
,然后使用 EFGH+ = EFGHDC
使用 FD H -> B
,然后使用 EFGH+ = EFGHDCB
,我们就完成了。
由于我对这些主题很陌生,我不确定我所做的是否正确。我会很感激你的一些反馈!谢谢!
【问题讨论】:
【参考方案1】:看起来不错。 (假设您正确地执行了您未提及的步骤,即决定重新处理您未提及的 FD 并重新停止。)
(不要说闭包等于某物,而实际上它不是。为算法的累加器使用一些名称,例如“1. Let F = BC. Using ... then let F = BCE; Done so BC+ = F = BCE”。或写类似“1. 找到 BC+:使用 ... 然后 BC+ >= BCE;完成 BC+ = BCE”。)
【讨论】:
以上是关于在给定关系和 FD 的情况下找到一组属性的闭包的主要内容,如果未能解决你的问题,请参考以下文章