将一个不属于 BCNF 的关系模式 R 分解为满足 BCNF 的形式,可以按照以下步骤进行:

  1. 找出一个违反 BCNF 的函数依赖(FD)X → Y。如果 X 不是 R 的 超键,且该函数依赖是非平凡的,则它违反了 BCNF。
  2. 在 R 所满足的所有函数依赖的集合下,计算 X 的 闭包(记作 )。
  3. 用两个新的关系模式替换 R:
    • 第一个模式 R1,包含 中的所有属性。
    • 第二个模式 R2,包含 R 中的所有属性,但去掉那些属于 但不属于 X 的属性。这可以表示为
  4. 将原始的函数依赖集分别投影到新的关系 R1 和 R2 上。
  5. 对 R1 和 R2 递归地应用上述分解过程,直到所有生成的关系模式都满足 BCNF。

这个过程确保了每个新关系要么已经满足 BCNF,要么可以进一步分解,直到满足 BCNF 的要求。