属性闭包计算方法
[Algorithm]: 计算一属性集关于一组函数依赖的属性闭包
[Input]:有限属性集合 U U U, U U U 上的函数依赖集合 F F F,及 U U U 的子集 X X X
[Output]: X X X 关于 F F F 的属性闭包 X + X^+ X+,记作 X F + X^+_F XF+
[Method]:按下列规则递归计算属性序列 X ( 0 ) , X ( 1 ) , . . . X^{(0)}, X^{(1)},... X(0),X(1),...
- 令 X ( 0 ) = X , i = 0 X^{(0)} = X, i = 0 X(0)=X,i=0
- B = { A ∣ ( ∃ V ) ( ∃ W ) ( ) V → W ∈ F ∧ V ⊆ X ( i ) ∧ A ⊆ W } B=\{A|(\exist V)(\exist W)()V \rightarrow W \in F \wedge V \subseteq X^{(i) }\wedge A \subseteq W\} B={A∣(∃V)(∃W)()V→W∈F∧V⊆X(i)∧A⊆W}
- X ( i + 1 ) = B ∪ X ( i ) X^{(i+1)}=B \cup X^{(i)} X(i+1)=B∪X(i)
if
X ( i + 1 ) ≠ X ( i ) X^{(i+1)} ≠ X^{(i)} X(i+1)=X(i)then
i = i + 1 ; i=i+1; i=i+1;goto
2.- X F + = X ( i ) X^+_F = X^{(i)} XF+=X(i),算法终止
例子: