数据库保持依赖算法
存在一个关系模式R,将此关系模式分解成{RiRi},且i ∈∈{1,2,3,4,……n}
此关系模式对应有函数依赖 F
有如下算法(伪代码)判断是否该关系模式分解为保持依赖的:
for each (α→β)∈F(α→β)∈F //计算F中α在所有Ri上的属性闭包α+Ri上的属性闭包α+
result := α
for each Ri∈{Ri}Ri∈{Ri}
t=(result∩Ri)+∩Rit=(result∩Ri)+∩Ri
result=result∩tresult=result∩t
if β∈resultβ∈result
//对于α toβ函数依赖,α+中存在β中的所有元素,即α→β成立对于α toβ函数依赖,α+中存在β中的所有元素,即α→β成立
continue
else
NO-depredent-preserving-decomposition