数据库范式第一第二第三范式的区别例题及解析
网站编辑2023-05-21 16:35:40734
第一范式(1NF)是指关系模式中的所有属性都是原子性的,即不可再分解的。

考虑一个学生信息表,其中包含学生的姓名、性别、出生日期和家庭地址等信息。其中,家庭地址包含省、市、区、街道和门牌号等多个属性,如下所示:
| 学生姓名 | 性别 | 出生日期 | 家庭地址 |
| -------- | ---- | -------- | -------- |
| 张三 | 男 | 1990-01-01 | 湖南省长沙市岳麓区麓谷街道xxx号 |
| 李四 | 女 | 1992-02-02 | 广东省深圳市南山区科技园xxx号 |
在上述表中,家庭地址包含多个属性,不满足第一范式的要求。
为了满足第一范式的要求,我们需要将家庭地址拆分成多个属性,如下所示:
| 学生姓名 | 性别 | 出生日期 | 省份 | 城市 | 区县 | 街道 | 门牌号 |
| -------- | ---- | -------- | ---- | ---- | ---- | ---- | ------ |
| 张三 | 男 | 1990-01-01 | 湖南 | 长沙 | 岳麓 | 麓谷街道 | xxx号 |
| 李四 | 女 | 1992-02-02 | 广东 | 深圳 | 南山 | 科技园 | xxx号 |
在上述表中,家庭地址被拆分成了多个属性,每个属性都是原子性的,满足第一范式的要求。
第二范式(2NF)是指关系模式中的非主属性必须完全依赖于主属性,而不能只依赖于主属性的一部分。
考虑一个订单信息表,其中包含订单号、商品编号、商品名称、商品单价和商品数量等信息。其中,商品名称和商品单价只与商品编号有关,与订单号无关,如下所示:
| 订单号 | 商品编号 | 商品名称 | 商品单价 | 商品数量 |
| ------ | -------- | -------- | -------- | -------- |
| 001 | 001 | 苹果 | 5.00 | 10 |
| 001 | 002 | 香蕉 | 3.00 | 20 |
| 002 | 001 | 苹果 | 5.00 | 5 |
| 002 | 003 | 葡萄 | 8.00 | 15 |
在上述表中,商品名称和商品单价只与商品编号有关,与订单号无关,不满足第二范式的要求。
为了满足第二范式的要求,我们需要将订单信息表拆分成两个表,一个是订单表,一个是商品表,如下所示:
订单表:
| 订单号 | 商品编号 | 商品数量 |
| ------ | -------- | -------- |
| 001 | 001 | 10 |
| 001 | 002 | 20 |
| 002 | 001 | 5 |
| 002 | 003 | 15 |
商品表:
| 商品编号 | 商品名称 | 商品单价 |
| -------- | -------- | -------- |
| 001 | 苹果 | 5.00 |
| 002 | 香蕉 | 3.00 |
| 003 | 葡萄 | 8.00 |
在上述表中,订单表中的商品编号是商品表的主键,商品名称和商品单价只与商品编号有关,与订单号无关,满足第二范式的要求。
第三范式(3NF)是指关系模式中的非主属性不依赖于其他非主属性。
考虑一个学生选课信息表,其中包含学生姓名、课程名称、授课教师和教师所在学院等信息。其中,教师所在学院只与授课教师有关,与课程名称无关,如下所示:
| 学生姓名 | 课程名称 | 授课教师 | 教师所在学院 |
| -------- | -------- | -------- | ------------ |
| 张三 | 数据库 | 李四 | 计算机学院 |
| 李四 | 数据结构 | 王五 | 电子信息学院 |
| 王五 | 计算机网络 | 张三 | 通信工程学院 |
在上述表中,教师所在学院只与授课教师有关,与课程名称无关,不满足第三范式的要求。
为了满足第三范式的要求,我们需要将学生选课信息表拆分成三个表,一个是学生表,一个是课程表,一个是教师表,如下所示:
学生表:
| 学生姓名 |
| -------- |
| 张三 |
| 李四 |
| 王五 |
课程表:
| 课程名称 |
| -------- |
| 数据库 |
| 数据结构 |
| 计算机网络 |
教师表:
| 授课教师 | 教师所在学院 |
| -------- | ------------ |
| 李四 | 计算机学院 |
| 王五 | 电子信息学院 |
| 张三 | 通信工程学院 |
在上述表中,学生表中的学生姓名是主键,课程表中的课程名称是主键,教师表中的授课教师是主键,教师所在学院只与授课教师有关,与课程名称无关,满足第三范式的要求。







