判断是否为无损连接分解
不分享无用的东西
软考备考选择题过程中遇到的问题
例题
设有关系模式R(U,V,W,X,Y,Z),其函数依赖集:F={U→V,W→Z,Y→U,WY→X},现有下列分解:p={UVY,WXYZ}
判断分解p是否为无损连接
一、画出这样的二维图
U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|
UVY | ||||||
WXYZ |
二、在纵轴每个关系中拥有的元素添加ai(看下面)
U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|
UVY | a1 | a2 | a5 | |||
WXYZ | a3 | a4 | a5 | a6 |
三、根据函数依赖集(F={U→V,W→Z,Y→U,WY→X})中的每个依赖,填充二维表(看下面)
根据 U→V
观察U列与V列,看是否有其中一行是U列跟V列都有元素这里a1跟a2,如果有,则把V列所有空都填上V列中对应行的元素,这里是a2。(
我描述的有点乱,但具体操作起来很简单
)
U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|
UVY | a1 | a2 | a5 | |||
WXYZ | a2 | a3 | a4 | a5 | a6 |
根据 W→Z
与上述同理,a3跟a6在同一行,则Z列全部填上a6
U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|
UVY | a1 | a2 | a5 | a6 | ||
WXYZ | a2 | a3 | a4 | a5 | a6 |
根据 Y→U
与上述同理,a5跟a1在同一行,则U列全部填上a1
U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|
UVY | a1 | a2 | a5 | a6 | ||
WXYZ | a1 | a2 | a3 | a4 | a5 | a6 |
根据
WY→X
这里注意!!!!!!!这里是WY推出X,应该考虑WY都有的那一行再跟X比较
U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|
UVY | a1 | a2 | a4 | a5 | a6 | |
WXYZ | a1 | a2 | a3 | a4 | a5 | a6 |
而无损连接分解在二维图里的表示方式就是,有其中一行全部覆盖了ai(这里是WXYZ行)。
我们的二维图,WXYZ行全部覆盖了ai,故该分解为无损连接分解