关系数据库规范化理论---范式

此篇博文是个人第一篇文章,在复习数据库范式部分的时候作的笔记。数据库

范式指:规范化的关系模式,因为规范程度不一样,产生了不一样的范式、数据库设计

一个低一级的关系范式经过模式分解能够转换成若干高一级范式的关系模式的集合。这个过程称为关系模式的规范化。
关系模式规范化的必要性:关系模式规范化,使之达到较高的范式是设计好关系模式的惟一途径。不然,所设计的关系数据库会产生一系列的问题。
关系模式应知足的基本要求:
1 元组的每一个份量必须是不可分的书记向
2 数据库中的数据冗余应尽量的少
3 关系数据库不能由于数据更新操做而引发数据不一致的问题
4 当执行插入操做时,数据库中的数据不能产生插入异常现象
5 数据库中的数据不能在执行删除操做时产生删除异常问题
6 数据库设计应考虑查询要求,数据组织应合理。

范式是衡量关系模式优劣的标准,范式的级别越高,其数据冗余和操做异常现象就越少。范式之间的联系能够表示为  1NF←2NF←3NF←4NF←5NF,后面范式能够看作是前面范式的特例。1NF 2NF不重要,最重要的是3NF 和BCNF。
第一范式:
若是一个关系模式R的全部属性都是不可分的基本数据项,则这个关系属于第一范式。
第二范式:
若关系模式R属于第一范式,且每一个非主属性都彻底函数依赖于主键,则R属于第二范式。
第二范式不容许关系模式中的非主属性部分函数依赖于主键。
第三范式:
若关系模式R属于第一范式,且每一个非主属性都不传递函数依赖于主关键字,则R属于第三范式。若R属于第三范式,则每一个非主属性既不部分函数依赖于主键,也不传递函数依赖于主键。

3NF是一个可用的关系模式应知足的最低范式,也就是说,一个关系模式若是不服从3NF,实际上它是不能用的。函数

BC范式:spa

若关系模式R属于第一范式,且每一个属性都不传递依赖于主关键字,则R属于BC范式,一般BC范式的条件有多重等价的表示:每一个非平凡以依赖的左边必须包含主关键字;每一个决定因素必须包含主关键字。从定义能够看出,BC范式既检查非主属性,又检查主属性,显然比第三范式限制更严,当只检查非主属性而不检查主属性时,就成了第三范式。所以能够说任何知足BC范式的关系都必须知足第三范式。设计

在关系数据库中,对关系模式的基本要求是知足第一范式。在此基础上,为了消除关系模式存在插入异常、删除异常、修改异常和数据冗余等毛病,要对关系模式进一步规范化,使之逐步达到2NF、3NF、BCNF、4NF。 对于一个已经知足1NF的关系模式,当消除了非主属性对主键的部分函数依赖后,它就属于2NF,当消除了主属性对主键的部分和传递依赖函数,它就属于3NF,当消除了主属性对主键的部分和传递函数依赖,它就属于BCNF,当消除了非平凡且非函数依赖的多值依赖,它就属于4NF。