数据库规范化:闭包求解

理论

什么是属性集X关于F的闭包?

在这里插入图片描述
说白话一点:闭包就是由一个属性直接或间接推导出的所有属性的集合。

如何求属性及关于F的闭包?

在这里插入图片描述

例子

在这里插入图片描述
例(2): 设有关系模式R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→I,E→C},计算(AE)+
解: (1) 令X={AE},X(0)=AE
(2)在F中寻找尚未使用过的左边是AE的子集的函数依赖,结果是: A→D, E→C;所以 X(1)=X(0)DC=ACDE, 显然 X(1)≠X(0).
(3) 在F中寻找尚未使用过的左边是ACDE的子集的函数依赖, 结果是: CD→I;所以 X(2)=X(1)I=ACDEI。虽然X(2)≠X(1),但F中寻找尚未使用过函数依赖的左边已经没有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI。

例如:f={a->b,b->c,a->d,e->f};由a可直接得到b和d,间接得到c,则a的闭包就是{a,b,c,d}

猜你喜欢

转载自blog.csdn.net/weixin_43314519/article/details/106635309