F={AB→C,BC→D,ACD→B,D→EG,BE→C,CG→BD},计算与其等价的最小依赖集。
时间: 2023-11-18 19:20:19 浏览: 144
首先,我们可以使用 Armstrong's Axioms 将依赖集 F 转换成等效的依赖集:
1. 添加冗余依赖 AC→B,因为它可以由 AB→C 和 ACD→B 推导出来。
2. 添加冗余依赖 ACD→BC,因为它可以由 AB→C 和 BC→D 推导出来。
3. 添加冗余依赖 AC→D,因为它可以由 AC→B 和 BC→D 推导出来。
4. 添加冗余依赖 ACD→BD,因为它可以由 ACD→B 和 CG→BD 推导出来。
5. 添加冗余依赖 ACDG→BDE,因为它可以由 ACD→B、D→EG 和 CG→BD 推导出来。
6. 添加冗余依赖 ACDG→CDE,因为它可以由 ACD→B、D→EG、BE→C 和 CG→BD 推导出来。
因此,我们得到等价的最小依赖集:
F'={AB→C,BC→D,D→EG,BE→C,CG→BD,ACD→B,ACDG→BDE,ACDG→CDE}
相关问题
设U={A,B,C,D,E,,G},F={ AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG } 求(BD)F+。
首先,计算出所有可能推出BD的函数依赖式,包括BD本身:
- BD
- B → BD(由CG→BD和CE→AG推出)
- D → BD(由D→EG推出)
- ACD → B → BD(由ACD→B和B → BD推出)
- AB → C → BC → BD(由AB→C、C→A和BC→D推出)
- BE → C → BC → BD(由BE→C和BC→D推出)
- CE → AG → BD(由CE→AG和D→EG推出)
将以上六个函数依赖式合并,得到(BD)F+ = {BD, B → BD, D → BD, ACD → B → BD, AB → C → BC → BD, BE → C → BC → BD, CE → AG → BD}。
习题1:设U={A,B,C,D,E,G},F={AB→C,C→A,BC→D, ACD→B,D→EG,BE→C,CG→BD,CE→AG}求(BD)F+
首先,计算出所有满足右部为BD的函数依赖:
- BC → D,因此 BD 可以由 B 和 C 推出。
- CG → BD,因此 BD 可以由 C 和 G 推出。
因此,(BD)F+ 的值可以由以下函数依赖推出:
- B+ → BD
- C+ → BD
- G+ → BD
其中,B+ 表示能够由 B 推出的所有属性集合。同理,C+ 和 G+ 分别表示能够由 C 和 G 推出的所有属性集合。
现在我们来计算 B+:
- 由 AB → C 可以推出 A+ → C,因此 A 可以被忽略。
- 由 ACD → B 可以推出 CD+ → B,因此 C 可以被忽略,而 D 可以被包含进 B+。
- 由 D → EG 可以推出 E+ → G,因此 E 可以被忽略。
综上,B+={D}。同理,可以计算出 C+={B,D} 和 G+={B,D}。
因此,(BD)F+ = B+ ∩ C+ ∩ G+ = {B,D}。
阅读全文