数据库设计目标是在满足无损连接和依赖保持的前提下,尽可能达到 Boyce-Codd 范式 (BCNF)。然而,实际应用中,同时满足这三个目标并非易事。因此,需要根据具体需求在 BCNF 和第三范式 (3NF) 之间做出权衡。

数据库模式分解主要有两种算法:

  • BCNF 分解算法: 优先满足 BCNF,可能无法完全保留依赖。
  • 3NF 分解算法: 确保依赖保持,但可能降低数据冗余的消除程度。