|
|
|
@ -168,27 +168,27 @@
|
|
|
|
|
|
|
|
|
|
## 第四范式(4NF)
|
|
|
|
|
|
|
|
|
|
在BCNF基础上,**需要消除多对多关系**。
|
|
|
|
|
在BCNF基础上,**需要消除多值依赖**。
|
|
|
|
|
|
|
|
|
|
例如:
|
|
|
|
|
|
|
|
|
|
**客户联系方式**
|
|
|
|
|
|
|
|
|
|
| 客户编号 | 固定电话 | 移动电话 |
|
|
|
|
|
| -------- | -------- | -------- |
|
|
|
|
|
| 10 | 88-123 | 151 |
|
|
|
|
|
| 10 | 80-123 | 183 |
|
|
|
|
|
| 客户编号 | 固定电话 | 移动电话 |
|
|
|
|
|
| -------- | -------- | ----------- |
|
|
|
|
|
| 10 | 88-123 | 151xxxxxxxx |
|
|
|
|
|
| 10 | 88-124 | 183xxxxxxxx |
|
|
|
|
|
|
|
|
|
|
一个用户拥有多个固定电话和移动电话,给表的维护带来很多麻烦。比如增加一个固定电话,那么移动电话这一栏就较难维护,改为:
|
|
|
|
|
|
|
|
|
|
**客户电话表**
|
|
|
|
|
|
|
|
|
|
| 客户编号 | 电话号码 | 电话类型 |
|
|
|
|
|
| -------- | -------- | -------- |
|
|
|
|
|
| 10 | 88-123 | 固定电话 |
|
|
|
|
|
| 10 | 80-123 | 固定电话 |
|
|
|
|
|
| 10 | 151 | 移动电话 |
|
|
|
|
|
| 10 | 183 | 移动电话 |
|
|
|
|
|
| 客户编号 | 电话号码 | 电话类型 |
|
|
|
|
|
| -------- | ----------- | -------- |
|
|
|
|
|
| 10 | 88-123 | 固定电话 |
|
|
|
|
|
| 10 | 88-124 | 固定电话 |
|
|
|
|
|
| 10 | 151xxxxxxxx | 移动电话 |
|
|
|
|
|
| 10 | 183xxxxxxxx | 移动电话 |
|
|
|
|
|
|
|
|
|
|
**好处**
|
|
|
|
|
|
|
|
|
@ -198,7 +198,9 @@
|
|
|
|
|
|
|
|
|
|
## 第五范式(5NF)
|
|
|
|
|
|
|
|
|
|
在关系模式 R 中,每一个`连接依赖`均有 R 的`候选码`所隐含。即连接时,所连接的属性都是候选码,例如:
|
|
|
|
|
在4NF基础上,**消除传递依赖**。
|
|
|
|
|
|
|
|
|
|
例如:
|
|
|
|
|
|
|
|
|
|
**销售表**
|
|
|
|
|
|
|
|
|
|