|
|
@ -23,7 +23,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
## 第一范式(1NF)
|
|
|
|
## 第一范式(1NF)
|
|
|
|
|
|
|
|
|
|
|
|
**所有字段值都是不可分解的原子值**。即实体中的某个属性有多个值时,必须拆分为不同的属性。例如:
|
|
|
|
**所有字段的值都是不可分解的原子值**。即实体中的某个属性有多个值时,必须拆分为不同的属性。例如:
|
|
|
|
|
|
|
|
|
|
|
|
**用户信息表**
|
|
|
|
**用户信息表**
|
|
|
|
|
|
|
|
|
|
|
@ -35,9 +35,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
**用户信息表**
|
|
|
|
**用户信息表**
|
|
|
|
|
|
|
|
|
|
|
|
| 编号 | 姓名 | 年龄 | 省份 | 城市 | 详细地址 |
|
|
|
|
| 编号 | 姓名 | 年龄 | 省份 | 城市 | 区县 | 详细地址 |
|
|
|
|
| ---- | ---- | ---- | ------ | ------ | ---------------- |
|
|
|
|
| ---- | ---- | ---- | ------ | ------ | ------ | ---------- |
|
|
|
|
| 1 | 小王 | 23 | 浙江省 | 杭州市 | 拱墅区湖州街51号 |
|
|
|
|
| 1 | 小王 | 23 | 浙江省 | 杭州市 | 拱墅区 | 湖州街51号 |
|
|
|
|
|
|
|
|
|
|
|
|
**好处**
|
|
|
|
**好处**
|
|
|
|
|
|
|
|
|
|
|
@ -48,7 +48,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
## 第二范式(2NF)
|
|
|
|
## 第二范式(2NF)
|
|
|
|
|
|
|
|
|
|
|
|
**确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关**(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。例如:
|
|
|
|
**所有非主键列必须全部依赖于全部主键**。符合与不符合的场景如下:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
案例如下:
|
|
|
|
|
|
|
|
|
|
|
|
**学生课程表**
|
|
|
|
**学生课程表**
|
|
|
|
|
|
|
|
|
|
|
@ -93,7 +97,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
## 第三范式(3NF)
|
|
|
|
## 第三范式(3NF)
|
|
|
|
|
|
|
|
|
|
|
|
**确保数据表中的每一列数据都和主键直接相关,而不能间接相关**。满足第二范式( 2NF)的情况下,任何非主属性不依赖于其它非主属性(消除传递函数依赖)。例如:
|
|
|
|
**在满足1NF和2NF的前提下,非主键列之间不存在间接依赖关系**(消除传递函数依赖)。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
案例如下:
|
|
|
|
|
|
|
|
|
|
|
|
**学生表**
|
|
|
|
**学生表**
|
|
|
|
|
|
|
|
|
|
|
|