求最小函数依赖集

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+ + + + + + + +
因为 H 的函数依赖集在第三步发生了改变,因此我们需要回到第二步。 最后得到的函数依赖集为 H={ADC, CB, ADF, BE}
源自文库
例:求 F={ABDAC,CBE,ADBF,BE}的最小函数依赖集 Fm 注意:当在函数依赖已经改变的地方开始一个新步骤时,重写函数依赖集很重要,这样可以 在下一步中方便引用。 第一步 对 F 中的函数依赖运用分解原则来创建一个等价函数依赖集 H, 该集合中每一个函 数依赖的右部是单个属性: H={①ABDA,②ABDC,③CB,④CE,⑤ADB,⑥ADF,⑦BE} 第二步 考察每一个函数依赖是否是必须的,去除非必要的函数依赖 (1) ABDA 是平凡的函数依赖,所以显然是非必要的函数依赖,因此去除。保留在 H 中的函数依赖是 H={②ABDC,③CB,④CE,⑤ADB,⑥ADF,⑦ BE} (2) 考察 ABDC, 去掉此函数依赖将会得到新的函数依赖集 J= {③CB, ④CE, ⑤ ADB,⑥ ADF,⑦ BE } 。如果 ABDC 是非必要的,则 C∈(ABD)J 。 (ABD)J =ABDFE,不包含 C,因此 ABDC 是必要的函数依赖,不能去掉。 H={②ABDC,③CB,④CE,⑤ADB,⑥ADF,⑦BE} (3) 考察 CB,J={②ABDC,④CE,⑤ADB,⑥ADF,⑦BE} 。(C)J =CE, 不包含 B,因此 CB 是必要的函数依赖,保留在 H 中。 (4) 考察 CE, J= {②ABDC, ③CB, ⑤ADB, ⑥ADF, ⑦BE} 。 (C)J =CBE, 包含 E, 因此是不必要的, 去除后得到的函数依赖集为 H= {②ABDC, ③CB, ⑤ADB,⑥ADF,⑦BE} (5) 同理考察函数依赖⑤、⑥和⑦,最后得到的函数依赖集为 H={②ABDC,③ CB,⑤ADB,⑥ADF,⑦BE} 。为了第三步方便引用,我们进行重新编 号:H={①ABDC,②CB,③ADB,④ ADF,⑤ BE} 。 第三步 考察每一个左部为多个属性的函数依赖, 看左部的每个属性是否是必须的, 能否用 更小的属性集替代原有的属性集。 首先从函数依赖①ABDC 开始。 (1) 去除 A?如果 A 可以去除, 那么可得到新的函数依赖集 J= {①BDC, ②CB, ③ADB,④ ADF,⑤ BE} 。去掉 A 后 BD 在 J 上的闭包将比在 H 下函数决 定更多的属性,如果(BD)J =(BD)H (或者 C∈(BD)H ) ,则说明去掉 A 得到的函 数依赖集和原有的函数依赖集是等价的,可以用 BDC 替换 ABDC。 (BD)H =BDE,不包含 C,所以 A 不能去掉。 (2) 去掉 B?J={①ADC,②CB,③ADB,④ ADF,⑤ BE} 。 (3) 去掉 D?J={①AC,②CB,③ADB,④ ADF,⑤ BE} 。
相关文档
最新文档