求最小函数依赖集 数据库闭包怎么计算?
数据库闭包怎么计算?
闭包是直接或间接从属性派生的所有属性的集合。例如,f={a->B,B->C,a->D,e->F}。如果B和D可以直接从a得到,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}。由于闭包会使函数中的变量都保存在内存中,内存消耗非常大,因此不能滥用闭包,否则会造成网页性能问题,可能导致ie内存泄漏。解决方法是在退出函数前删除所有未使用的局部变量。2闭包将在父函数外部,并更改父函数内部变量的值。因此,如果将父函数用作对象,将闭包用作其公共方法,将内部变量用作其私有值,则必须小心不要更改父函数的内部变量的值。
关于数据库闭包的问题?
数据库闭包的计算?
已知R<U,F>,其中u={a,B,C,D,e};F={ab→C,B→D,C→e,EC→B,AC→B}。求(AB)F,设x(0)=AB;(1)计算x(1):逐个扫描F集合中的每个函数依赖项,找出左边是a、B或AB的函数依赖项,得到两个结果:AB→C、B→D。所以x(1)=AB∪CD=ABCD。(2) 因为x(0)≠x(1),我们找出左部是ABCD子集的函数依赖,得到ab→C,B→D,C→e,AC→B,那么x(2)=x(1)∪BCDE=ABCDE。(3) 因为x(2)=u,算法停止,所以(AB)f=ABCDE。求属性集X(XU)关于函数依赖集f对U的闭包XF输入:X,f输出:XF步骤:(1)设X(0)=X,I=0(2)求B,其中B={a |(V)(W)(V→Wf∧VX(I)∪aW)};(3)X(I 1)=B∪X(I)(4)判断X(I 1)=X(I)(5)如果相等或X(I)=U,则X(I)为XF,算法停止。(6) 如果不是,I=I,返回步骤(2)。对于算法6。五十、 设AI=| x(I)|,{AI}构成一个步长大于1的严格递增序列,序列的上界为| u |,因此算法最多终止| u |-| x |。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。