第一范式
- 列不能再分
id | name | garden | address |
---|---|---|---|
1 | 张三 | 男 | 北京,朝阳 |
上表不符合第一范式,id为表主键,address可再细分
id | name | garden | address | area |
---|---|---|---|---|
1 | 张三 | 男 | 北京 | 朝阳 |
第二范式
- 首先要符合第一范式
- 有主键
- 非主键列不能只依赖于主键
order表orderId为主键
orderId | productId | productName |
---|---|---|
1 | 1 | 篮球 |
这不符合第二范式,商品名称依赖了商品id
order
orderId | productId |
---|---|
1 | 1 |
product
productId | productId |
---|---|
1 | 篮球 |
这样便符合了第二范式
第三范式
- 首先满足第二范式
- 非主键列必须直接依赖于主键,不能存在传递依赖
Student
id | name | School | intro |
---|---|---|---|
1 | admin | XXX大学 | XXXXXX学院 |
这并不符合第三范式,首先id为主键 intro并没有直接依赖于id而是依赖于School,也就是存在这传递依赖
Student
studentId | name | schoolId |
---|---|---|
1 | admin | 01 |
School
schoolId | schoolName | intro |
---|---|---|
1 | admin | XXXXXX学院 |