此篇博文是我的第一篇文章,在复习数据库范式部分的时候做的笔记。
范式指:规范化的关系模式,由于规范程度不同,产生了不同的范式、
一个低一级的关系范式通过模式分解可以转换成若干高一级范式的关系模式的集合。这个过程称为关系模式的规范化。关系模式规范化的必要性:关系模式规范化,使之达到较高的范式是设计好关系模式的唯一途径。否则,所设计的关系数据库会产生一系列的问题。
关系模式应满足的基本要求:
1 元组的每个分量必须是不可分的书记向
2 数据库中的数据冗余应尽可能的少
3 关系数据库不能因为数据更新操作而引起数据不一致的问题
4 当执行插入操作时,数据库中的数据不能产生插入异常现象
5 数据库中的数据不能在执行删除操作时产生删除异常问题
6 数据库设计应考虑查询要求,数据组织应合理。
范式是衡量关系模式优劣的标准,范式的级别越高,其数据冗余和操作异常现象就越少。范式之间的联系可以表示为 1NF←2NF←3NF←4NF←5NF,后面范式可以看做是前面范式的特例。1NF 2NF不重要,最重要的是3NF 和BCNF。
第一范式:
如果一个关系模式R的所有属性都是不可分的基本数据项,则这个关系属于第一范式。
第二范式:
若关系模式R属于第一范式,且每个非主属性都完全函数依赖于主键,则R属于第二范式。
第二范式不允许关系模式中的非主属性部分函数依赖于主键。
第三范式:
若关系模式R属于第一范式,且每个非主属性都不传递函数依赖于主关键字,则R属于第三范式。若R属于第三范式,则每个非主属性既不部分函数依赖于主键,也不传递函数依赖于主键。
3NF是一个可用的关系模式应满足的最低范式,也就是说,一个关系模式如果不服从3NF,实际上它是不能用的。
BC范式:
若关系模式R属于第一范式,且每个属性都不传递依赖于主关键字,则R属于BC范式,通常BC范式的条件有多重等价的表示:每个非平凡以依赖的左边必须包含主关键字;每个决定因素必须包含主关键字。从定义可以看出,BC范式既检查非主属性,又检查主属性,显然比第三范式限制更严,当只检查非主属性而不检查主属性时,就成了第三范式。因此可以说任何满足BC范式的关系都必须满足第三范式。
在关系数据库中,对关系模式的基本要求是满足第一范式。在此基础上,为了消除关系模式存在插入异常、删除异常、修改异常和数据冗余等毛病,要对关系模式进一步规范化,使之逐步达到2NF、3NF、BCNF、4NF。对于一个已经满足1NF的关系模式,当消除了非主属性对主键的部分函数依赖后,它就属于2NF,当消除了主属性对主键的部分和传递依赖函数,它就属于3NF,当消除了主属性对主键的部分和传递函数依赖,它就属于BCNF,当消除了非平凡且非函数依赖的多值依赖,它就属于4NF。