属性集的闭包
1.已知关系模式R(U,F),其中U={A,B,C,D,E},F是这样的关系集合{AB->C,B—>D,C—>E,EC—>B,AC—>B}
求AB的闭包。
解:
1.第一步,设x0= AB ,在F中找出这样的关系,左边是AB的子集,即左边为A,AB,B从题目中可以的到
AB->C ,B->D
2.第二步 ,将x0的子集推出属性,这里是C,D与x0拼起来得到了x1=ABCD,因为x1!=x0继续运算
3.重复第一步,但是此时注意,我们要寻找的是x1的子集,而且是从来没有用过的子集,想A,B,AB就不需要重新计算了,此时我们找到的是C->E,AC——>B
4.重复第二步,的到x2=ABCDE,此时虽然是X2!=x1但是x2却包含所有属性集合了,也可以停止运算,即AB的闭包为ABCDE
总结:也就是说,我没找一个属性集的闭包是,就是在找该属性所有可能直接或者是间接推导出来的属性,然后就是不断的合并。
2.最小函数依赖集,首先要满足下列条件:
1.,一个函数依赖中右部分只能包含有一个属性。
2.不含多余依赖,及去掉某一个函数依赖后形成的集合B和原来的集合A等价的,说白了就是,B可以退出去掉的函数依赖
3.不含部分依赖,像F{AB——>C,A–>C}就不是最小依赖集
已知关系模式R(U,F),其中U={A,B,C},F是这样的关系集合{A—>BC,B—>C,AB—>C,A—>B}
求该模式的最小函数依赖集。
答案:F={B—>C,A—>B},A—>BC不满足一个函数依赖中右部分只能含有一个属性,B—>C,AB—>C存在部分依赖,
也可看做多余依赖,因为B—>C,AB—>C是绝对成立的,有跟没有无差别
例题1.
如果右边不仅包含的属性(就是首要将其完全分开成只包含右部的情况)
第三步删除重复的内容
tips :在求解FH关于F的闭包的时候虽然是存在的但是可以(由于可以全部退出然后存在包含所有的闭包)