目录
一、1NF
1. 第一范式的定义
作为二维表,关系要符合一个最基本的条件是每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。
2. 分量的定义
元组中的一个属性值。假如一个学生信息的关系模式S(Sno,Sname,Ssex,Sdept),那么表中的一个元组(20245311338,张三,男,信息学院)中的 "张三" 就是一个分量,"20245311338" 也是一个分量。
3. 不满足1NF
不满足第一范式的情况有两种,①表中有表②分量可再分
①表中有表
②分量可再分
二、 2NF
1. 第二范式的定义
非主属性就是除主码外的属性。
完全函数依赖和候选码请参考文章一篇文章讲清楚怎么求候选码-CSDN博客
2. 不满足2NF
其中Sno→Sdept、Sno→Sloc,而主码为(Sno,Cno),说明并不满足每一个非主属性都完全依赖于候选码,则关系模式S-L-C(Sno, Sdept, Sloc, Cno, Grade)不满足2NF。
3. 第二范式面临的问题
三、3NF
1. 第三范式的定义
如果关系模式R∈2NF,且每个非主属性都不传递函数依赖于任何一个候选码,则称R属于第三范式,简称3NF,记作R∈3NF。
2. 传递函数依赖
举例来说,假设一个关系模式S-L(Sno,School,Sloc)[注:Sloc:School Location],其中有Sno→School,School→Sloc,那么Sloc传递函数依赖于Sno,则关系模式S-L不满足3NF。
四、范式的判断
总结上面的定义
1. 第一范式:表中每一个分量必须是不可分的数据项。
2. 第二范式:每一个非主属性对候选码完全函数依赖。
如果一个关系模式SC(Sno,Cno,Sname,Cname)候选码是(Sno,Cno),2NF要求(Sno,Cno)→Sname,但Sno→Sname,表明非主属性对候选码部分函数依赖,不满足2NF。
3. 第三范式:前提是该关系模式∈2N,并且每个非主属性都不传递函数依赖于任何一个候选码。
如果一个关系模式S-L-C(Sno, School, Sloc, Cno, Grade ),分解为两个关系模式:SC(Sno,Cno,Grade)和S-L(Sno,School,Sloc),此时满足2NF,但S-L中Sno→School,School→Sloc,那么Sloc传递函数依赖于Sno,则关系模式S-L不满足3NF。
五、 规范化的方法
没有研究出独道的方法,但书上画函数依赖图的方法很直观很好用。
1.小框,框属性。
2.大框,框候选码。
3.实线箭头表示完全函数依赖。
4.虚线箭头表示部分函数依赖。
实际应用请看例题。
六、例题
只要会画图了,部分函数依赖和传递函数依赖在图中体现得十分完全,消除他们也很简单了。
我是真想吐槽一下,这第一问写函数依赖集才是最难的...
答案如下,我是真不会写函数依赖集......
七、参考资料
王珊 萨师煊. 数据库系统概论(第5版). 高等教育出版社. 2014
【1NF→4NF】那些让你醍醐灌顶的数据库范式……_哔哩哔哩_bilibili
第三范式_百度百科