第六章关系数据库理论
6.3 范式
范式 是满足某一种级别的关系模式的集合。
种类:
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- BC范式(BCNF,Boyce 和 Codd 共同提出的范式)
- 第四范式(4NF)
- 第五范式(5NF)
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(normalization)
1NF定义:关系模式R的所有属性都是不可分的基本数据项,则R∈1NF
*一范式是对关系模型的最起码要求。不满足第一范式的数据库模式不能称为关系数据模式。
2NF定义:R∈1NF,且每个非主属性完全依赖于R的码,则R∈2NF
*关系模式R不属于2NF,就会产生问题:
- 插入异常
- 删除异常
- 数据冗余度大
- 修改复杂(冗余度大引起)
如图,(Sno,Cno)是SLC表的码,(Sno,Cno)–>(完全)Grade Grade完全函数依赖(Sno,Cno);(Sno,Cno)–>(部分)Sdept 由于Sdept完全依赖Sno,所以Sdept是部分函数依赖(SNO,Cno)
解决方法:采用投影分解法,将SLC关系模式分解成两个关系模式,消除部分函数依赖(Sno,Cno)–>Sloc;(Sno,Cno)–>Sdept非主属性完全依赖主属性(码)
BCNF 没有传递函数依赖和部分函数依赖的范式?