|
一、简单的说
1NF:字段不可再分。
2NF:每个表只表示一个事物
3NF:每列都与主键有直接关系
二、举例
1NF
不满足的示例:
?
| name |
hobby |
| jack |
football,basketball |
?
修改后(这个应该是多对多的关系了)

2NF
不满足的示例(可以说一张表多个主键,记录多种数据):
?
| studentid |
studentname |
courseid |
coursename |
coursecredit |
| 1 |
jack |
2 |
chinese |
2 |
?
修改:
拆成2个表就行了
?
| courseid |
coursename |
coursecredit |
| 2 |
chinese |
2 |
| studentid |
studentname |
| 1 |
jack |
?
3NF
不满足的示例(邮编以及省份是跟location相关的,跟studentid无关):
?
| studentid |
studentname |
location |
zipcode |
? |
| 1 |
jack |
china |
100000 |
? |
?
改成:
?
| studentid |
studentname |
locationid |
| 1 |
jack |
1 |
?
?
| locationid |
location |
zipcode |
| 1 |
china |
1000000 |
?
|