面试简单易懂数据库三大范式(带案例讲解)

2 篇文章 0 订阅
1 篇文章 0 订阅

关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则成为规范化形式,即范式

范式按照规范化的级别分为5种,即第一范式(1NF第二范式(2NF第三范式(3NF、第四范式(4NF)、第五范式(5NF)。在实际的数据库设计过程中,通常需要用到的是前3个范式。

 

1,第一范式(1NF

第一范式要求每一个数据项都不能拆分成两个或两个以上的数据项,即数据库表中的字段都是单一属性的,不可再分。

学号

姓名

性别

年龄

家庭地址

180127

艾珊珊

19

武汉市江汉区友谊路48号,邮编430022

180133

肖梦仪

18

武汉市汉阳区鹦鹉大道102号,邮编430050

                                             不符合第一范式的学生信息表

 

学号

姓名

性别

年龄

家庭地址

邮编

180127

艾珊珊

19

武汉市江汉区友谊路48号

430022

180133

肖梦仪

18

武汉市汉阳区鹦鹉大道102号

430050

                                            符合第一范式的学生信息表

 

2,第二范式(2NF

如果一个表已经满足了第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段,那么该数据表满足第二范式。

学号

姓名

年龄

课程名

成绩

学分

180127

艾珊珊

19

数据库原理及应用

87

4

180133

肖梦仪

18

公共英语

79

2

不符合第二范式的学生选课信息表

例如,上表中若以学号为关键字(即主键),就会存在如下决定关系。

(学号) 决定 (姓名、年龄、课程名、成绩、学分)

但是,学分取决于课程

在上面的决定关系中,还可以进一步拆分为如下两种决定关系

(学号) 决定 (姓名、年龄)

(课程) 决定 (学分)

所以这个关系表不满足第二范式。

对于上面的这种关系,可以更改为如下3个表:

学号

姓名

年龄

180127

艾珊珊

19

180133

肖梦仪

18

表1学生信息表

课程编号

课程名

学分

Z003

数据库原理及应用

4

J001

公共英语

2

表2 课程信息表

学号

课程号

成绩

180127

Z003

87

180133

J001

79

表3 选课信息表

 

3,第三范式(3NF

如果一个数据表已经满足了第二范式,而且该数据表中的任何两个非主键字段的数值之间不存在函数依赖关系,那么该数据表满足第三范式。

学号

姓名

年龄

所在学院

学院地点

学院电话

180127

艾珊珊

19

信息学院

4号教学楼

81655887

180133

肖梦仪

18

电子学院

2号教学楼

81655896

例如,上表中若以学号为关键字(即主键),就会存在如下决定关系。

(学号) 决定 (姓名、年龄、所在学院、学院地点、学院电话)

姓名、年龄、所在学院、学院地点、学院电话的确与学号有关,这个数据库是符合第二范式的。

但实际上,学号决定学生所在学院,而学院地点、学院电话其实是与所在学院有关,即

学号 -> 所在学院 -> 学院地点、学院电话

学院地点和学院电话与学号存在传递函数依赖。

应该把该表拆分成一下2个表

学号

姓名

年龄

所在学院

180127

艾珊珊

19

信息学院

180133

肖梦仪

18

电子学院

表1 学生信息表

学院名称

学院地点

学院电话

信息学院

4号教学楼

81655887

电子学院

2号教学楼

81655896

表2 学院信息表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值