4.5 关系模式规范化步骤
2025年09月26日
4.5 关系模式规范化步骤
规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”。即采用“一事一地”的模式设计原则,让一个关系描述一个概念、一个实体或实体间的一种联系。若多于一个概念就把它“分离”出去。因此所谓规范化实质上是概念的单一化。
关系模式规范化的基本步骤如图4-1所示。
①对1NF关系进行投影,消除原关系中非主属性对码的函数依赖,将1NF关系转换成为若干个2NF关系。
②对2NF关系进行投影,消除原关系中非主属性对码的传递函数依赖,从而产生一组3NF。
③对3NF关系进行投影,消除原关系中主属性对码的部分函数依赖和传递函数依赖(也就是说,使决定属性都成为投影的候选码),得到一组BCNF关系。
图4-1 规范化步骤
以上三步也可以合并为一步:对原关系进行投影,消除决定属性不是候选码任何函数依赖。
④对BCNF关系进行投影,消除原关系中非平凡且非函数依赖的多值依赖,从而产生一组4NF关系。
⑤对4NF关系进行投影,消除原关系中不是由候选码所蕴含的连接依赖,即可得到一组5NF关系。
5NF是最终范式。
规范化程度过低的关系可能会存在插入异常、删除异常、修改复杂、数据冗余等问题,需要对其进行规范化,转换成高级范式。但这并不意味着规范化程度越高的关系模式就越好。在设计数据库模式结构时,必须以现实世界的实际情况和用户应用需求做进一步分析,确定一个合适的、能够反映现实世界的模式。即上面的规范化步骤可以在其中任何一步终止。