关系范式
Last updated
Last updated
范式(Normal Form,NF)是指规范化的关系模式。由规范化程度不同,就产生不同的范式。根据满足条件的不同,经常称某一关系模式R为“第几范式”。
关系规范化理论是研究如何将一个不十分合理的关系模型转化为一个最佳的数据关系模型的理论,它是围绕范式而建立的。
各种范式之间存在联系:
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。关系规范化的理论已经讨论到第四和第五范式,但是一般数据库设计满足第三范式就可以了。
第一范式:每个表应该有唯一标识每一行的主键(原子性)
第二范式:在复合主键的情况下,非主键部分不应该依赖于部分主键(消除部分依赖)
第三范式:非主键之间不应该有依赖关系(消除传递依赖)
消除表中的多值依赖。以解除信息冗余,达到“一事一表”,也就是一对一的关系。
多值依赖定义:一个关系,至少存在三个属性(A,B,C),才能存在这种关系。对于每一个A值,有一组确定的B值和C值,并且这组B的值独立于这组C的值。
这个表除了主键,就没有其他字段了,所以满足BC范式(内部也不存在传递依赖和部分依赖),但是却存在多值依赖导致的异常。
加入下学期想采用一本新的英版高数教材,但是还没确定哪个老师来教。那么就没法在这个表中维护Course高数和Book英版高数教材之间的关系。
解决方法:把这个多值依赖的表拆解成2个表,分别建立关系。
规范化和性能的关系:
为满足某种商业目标,数据库性能比规范化数据库更重要:
通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
通过在给定的表中插入计算列(如成绩总分),以方便查询
进行规范化的同时,还需要综合考虑数据库的性能。