定义:数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。
部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。
换句话说:所有单关键字段的表都符合每二范式。
(以下面的商品表为例来说明2NF)
表3
商品名称 |
供应商名称 |
价格 |
描述 |
重量 |
供应商电话 |
有效期 |
分类 |
可乐 |
饮料一厂 |
3.00 |
|
250g |
8888888 |
2014.12 |
饮料 |
可乐 |
饮料二厂 |
3.00 |
|
250g |
6666666 |
2014.12 |
饮料 |
由于供应商和商品之间是多对多的关系
所以只有使用商品名称和供应商名称才可以唯一标识出一件商品。
也就是商品名称和供应商名称是一组组合关键字。
上表中存在以下的部分函数依赖关系
(商品名称)->(价格,描述,重量,商品有效期)
(供应商名称)->(供应商电话)
存在问题:
插入异常、删除异常、更新异常、数据冗余
表4
商品ID |
商品名称 |
价格 |
描述 |
重量 |
有效期 |
分类 |
1 |
可乐 |
3.00 |
|
250g |
2014.12 |
饮料 |
表5
供应商ID |
供应商名称 |
供应商电话 |
1 |
饮料一厂 |
8888888 |
2 |
饮料二厂 |
6666666 |
表6
供应商ID |
商品ID |
1 |
1 |