闭包
在关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体叫作F的闭包,记为 F + F^{+} F+
求闭包的算法
求闭包就是由一个属性直接或间接推导出的所有属性的集合,例如:
f={ a->b, b->c, a->d, e->f }
由a
可直接得到b
和d
,间接得到c
,则a
的闭包就是{ a, b, c, d }
。
例 设关系R(A, B, C, D, E, G)有函数依赖集F={AB→C, BC→AD,D→E, CG→B},求AB的闭包。
- 首先从AB出发,令
X={A, B}
,由于函数依赖AB→C左边的所有属性都在X中,所以可以把右边的C添加到X中,这时X={A, B, C}
- 其次考虑函数依赖BC→AD,左边B,C均在X中,右边D不在X中,将其添加到X中,此时X={A, B, C, D}
- 再考虑函数依赖D→E,同理可将E添加到X中,此时X={A, B, C, D, E}。
- 上述方法再不能向X中添加属性,所以得到 A B + = { A , B , C , D , E } AB^{+}=\{A, B, C, D, E\} AB+={A,B,C,D,E}。