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