浅谈数据库范式

来源:互联网 发布:幸运转盘的php源码 编辑:程序博客网 时间:2024/06/07 21:57

一、相关概念

超键(super key):能唯一标识元组的属性集。

候选键(candidate key):不含有多余属性的超键(最小的超键)。

主键(primary key):选作元组标识的一个候选键。

外键(foreign key):如果关系模式R1中的某属性集不是R1的主键,而是另一个关系R2的主键,则该属性集是关系模式R1的外键。

主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。

非主属性:一个属性没有在任何候选码中出现过,这个属性就是非主属性。

 

二、六大范式

1、1NF

每个属性值都是不可再分的最小数据单位(原子性)。

 

2、2NF

如果关系模式R是1NF,而且每一个非主属性都完全依赖于R的候选键,则R为2NF。

1NF消除非主属性对候选键的部分函数依赖=>2NF

性质:不存在非主属性对候选键的部分依赖。

 

3、3NF

如果关系模式R是2NF,而且每一个非主属性都不传递依赖于R的任何候选键,则R是3NF。

2NF消除非主属性对键的传递函数依赖=>3NF

性质:不存在非主属性对候选键的部分和传递依赖。

 

4、BCNF

如果关系模式R是1NF,如果对R中的每个属性(包括主属性、非主属性),不存在对键的传递或部分依赖,则R是BCNF。

3NF消除主属性对键的部分和传递函数依赖=>BCNF

性质:不存在属性(主属性,非主属性)对候选键的传递和部分依赖。

 

BCNF包含3NF,3NF包含2NF,2NF包含1NF。

一般一个数据库设计符合3NF或BCNF就可以了。

 

5、4NF

把同一表内的多对多关系删除。

BCNF消除非平凡且非函数依赖的多值依赖=>4NF

 

6、5NF

4NF消除非平凡连接依赖=>5NF

1 0
原创粉丝点击