导入
什么是归一化?
在本节课中,我们将学习不同的规范化形式以及使用规范化技术的原因。
规范化应是数据库设计过程的一部分。然而,由于规范化过程与实体关系建模过程难以分离,因此应将这两种技术同时使用。
我们使用实体关系图(ERD)来提供组织数据需求和操作的宏观视图。这一过程通过迭代方式进行,包括识别相关实体、其属性以及它们之间的关系。
规范化过程则关注特定实体的特征,体现了实体关系图中实体的微观视图。
什么是规范化?
规范化是关系理论的一个分支,提供了设计方面的洞察。它是判断表中冗余程度的过程。规范化的目标包括:
- 能够描述关系模式中冗余的程度。
- 提供机制以转换模式,从而消除冗余。
规范化大量依赖于函数依赖理论。规范化理论定义了六种范式(NF)。每一种范式都要求模式满足一组依赖特性,且每种范式都对更新异常的存在或缺失提供了保证。这意味着范式级别越高,冗余越少,相应地,更新问题也越少。
范式
共有六种范式,但我们将仅讨论前四种,分别是:
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- Boyce-Codd 范式(BCNF)
范式的实际应用
在商业和政府环境中的大多数实际设计项目,通常会从以往的设计、遗留系统模型等现有数据库设计中获取方案。这些项目非常关注设计方案的质量,并希望其能在长时间内保持稳定。现有的设计方案通过范式测试进行评估,实践中也会进行规范化处理,以确保最终设计质量高且数据冗余最少。
在下一课中,我们将详细讨论第一范式。