电子商务数据库技术(第3版)
上QQ阅读APP看书,第一时间看更新

3.1.4 关系模式规范化的基本原则

一个低级范式的关系模式,通过关系模式的投影分解,可以转换成若干个高一级范式的关系模式的集合,这种过程就叫规范化。规范化的基本思想是:逐步消除数据依赖中不合适的部分,使各关系模式达到一定程度的分离,即“一事一地”的模式设计原则,使概念单一化,也就是让一个关系描述一个概念、一个实体或者实体间的一种联系。

规范化的程度越高,数据的冗余和更新异常相对越少,但由于连接运算费时,查询时所花的时间也就越多。因此,规范化应当根据具体情况权衡利弊,适可而止。对于数据变动不频繁的数据库,其规范化程度可以低一些。实际工作中,一般达到多数关系模式为3NF即可。

另外需要注意的是,规范化仅仅从一个侧面提供了改善关系模式的理论和方法。一个关系模式的好坏,规范化是衡量的标准之一,但并不是唯一的标准。数据库设计者的任务是在一定的制约条件下,寻求较好地满足用户需求的关系模式。规范化的程度不是越高越好,它取决于应用。

根据关系数据库设计理论,优化关系数据库设计的过程实际上是对关系模式进行规范化的过程,即不断通过投影分解使非规范化的关系模式达到规范化的要求。一般来说,关系模式R(A1,A2,A3,……,An)的分解就是用R的一组子集{R1,R2,R3,……,Rk{来代替R,且这组子集满足条件:

其中,任意两个子集Ri和Rj相互的交集不要求为空,即它们可以有共同的属性。通过分解,可消除数据冗余,从而消除插入、删除或更新的异常。对于关系分解,我们不仅要求消除数据冗余,还要求分解后的关系模式和分解前的关系模式能表示相同的信息,即所谓的无损连接分解。在关系模式的规范化过程中,一般都采用无损连接分解。可以证明,利用函数依赖和多值依赖所做的投影分解都是无损连接分解。

在关系模式规范化时,一般要遵循以下原则。

1.关系模式进行无损连接分解

关系模式在分解过程中数据不能丢失或增加,必须把全局关系模式中的所有数据无损地分解到各个子关系模式中,以保证数据的完整性。

2.合理选择规范化程度

从存取效率考虑,低级范式造成的冗余度很大,既浪费了存储空间,又影响了数据的一致性,因此,一个子模式的属性越少越好,即取高级范式;但从查询效率考虑,低级范式又比高级范式好,因为此时连接运算的代价小。这是一对矛盾,所以应当根据实际情况,合理选择规范化程度。

3.正确性和可实现性原则

前面的两个原则要求关系模式的分解既要是无损连接的,又要具有函数依赖保持性。但是根据目前的研究结果,关系模式的分解很难尽如人意。因此,在关系模式的规范化过程中,需要注意根据实际情况选择如何遵循上述两个原则,从而保证关系模式的正确性并具有可实现性。