Answer

问题及解答

Prop. 如果从函数依赖集 $\mathcal{F}$ 推出的某个 FD 违反了 BCNF, 则 $\mathcal{F}$ 自身必包含一个违反 BCNF 的 FD.

Posted by haifeng on 2018-01-07 11:00:45 last update 2018-01-07 11:07:06 | Edit | Answers (1)

写成数学的语言:

  • 记函数依赖集为 $\mathcal{F}:=\mathrm{FDs}$. 
  • $\overline{\mathcal{F}}$ 是 $\mathcal{F}$ 的完备化, 即 $\mathcal{F}$ 的所有导出的函数依赖的集合.
  • $\mathrm{BCNF}$ 指所有符合 BCNF 的函数依赖集合.

则该性质可以写为:

 

Prop. 若存在 $f\in\overline{\mathcal{F}}$, $f\not\in\mathrm{BCNF}$, 则必存在 $g\in\mathcal{F}$, 使得 $g\not\in\mathrm{BCNF}$.

1

Posted by haifeng on 2018-01-07 11:47:28

Pf. (反证法) 假设 $\mathcal{F}$ 中所有的函数依赖都属于 $\mathrm{BCNF}$. 则这些函数依赖的左边都是超键. 由它们所推出的函数依赖的左边也一定是超键. 因此与假设矛盾.