前言
学无止境,为了“钱”途,得多给自己“充充电”,这不又来理解和总结知识。数据库真是一个庞大的工程,路漫漫其修远兮,吾将上下而求索!
范式
范式分为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。
● 第一范式(1NF)
在关系模式R中,如果它的每个属性都是不可再分的,则称这个关系是符合第一范式。
示例——学生信息
姓名 | 性别 | 专业 |
---|---|---|
老宋 | 男 | 物电学院电气及其自动化 |
老贾 | 女 | 生命科学学院生物科学 |
根据定义我们发现,上述关系是不符合第一范式的,因为它的专业属性中的内容是可以分为学院和专业,故更改为:
姓名 | 性别 | 学院 | 专业 |
---|---|---|---|
老宋 | 男 | 物电学院 | 电气及其自动化 |
老贾 | 女 | 生命科学学院 | 生物科学 |
● 第二范式(2NF)
在关系模式R中,它是满足第一范式的,若R中不存在非主属性对主键部分函数依赖,则称该关系是符合第二范式。
示例——选课关系
学号 | 课程号 | 成绩 | 学分 |
---|---|---|---|
001 | C001 | 99 | 3 |
002 | X001 | 100 | 2.5 |
主键:(学号,课程号)
函数关系:
(学号、课程号)→成绩
(学号、课程号)→学分
课程号→学分(部分函数依赖)
综上上述函数关系不符合第二范式,故更改如下(我的理解是把存在部分函数依赖的属性隔离):
学号 | 课程号 | 成绩 |
---|---|---|
001 | C001 | 99 |
002 | X001 | 100 |
课程号 | 学分 |
---|---|
001 | 3 |
002 | 2.5 |
● 第三范式(3NF)
在关系模式R中,它是满足第二范式的,若R中不存在非主属性对主键的传递函数依赖,则称该关系是符合第三范式。
示例——学生信息
学号 | 姓名 | 系号 | 系名 | 系地址 |
---|---|---|---|---|
001 | 老宋 | W001 | 物电学院 | 数理楼 |
002 | 老贾 | S001 | 生科学院 | 至善楼 |
学号→系号,系号 \→学号,系号→系地址
所以学号→系地址,故不满足第三范式,更改如下(同理第二范式):
扫描二维码关注公众号,回复:
3321292 查看本文章
学号 | 姓名 | 系号 |
---|---|---|
001 | 老宋 | W001 |
002 | 老贾 | S001 |
系号 | 系名 | 系地址 |
---|---|---|
W001 | 物电学院 | 数理楼 |
S001 | 生科学院 | 至善楼 |
小结
之前对范式这一部分懵懵懂懂,但学习就是一个不断重复的过程,现在又回来温习了一遍,顺便把自己的理解总结出来,给自己点个赞!加油!