在第二范式(2NF)中,首先关系必须是1NF。
在第二范式(2NF)中,所有非关键属性都完全依赖于主键。
示例: 假设学校存储教师和教授科目信息相关的数据。 在学校里,教师可以教授多个科目。
老师(TEACHER)表的结构和数据如下 -
| TEACHER_ID | SUBJECT | TEACHER_AGE |
|---|---|---|
| 25 | Chemistry | 30 |
| 25 | Biology | 30 |
| 47 | English | 35 |
| 83 | Math | 38 |
| 83 | Computer | 38 |
在给定的表中,非主要属性TEACHER_AGE依赖于TEACHER_ID(TEACHER_ID列有两个83的值,同样对应的TEACHER_AGE属性的值都是38 ),它是候选键的适当子集。 这就是它违反2NF规则的原因。
要将给定的表转换为2NF,我们将其分解为两个表:
TEACHER_DETAIL 表的结构和数据如下 -
| TEACHER_ID | TEACHER_AGE |
|---|---|
| 25 | 30 |
| 47 | 35 |
| 83 | 38 |
TEACHER_SUBJECT 表的结构和数据如下 -
| TEACHER_ID | SUBJECT |
|---|---|
| 25 | Chemistry |
| 25 | Biology |
| 47 | English |
| 83 | Math |
| 83 | Computer |
上一篇:
DBMS第一范式(1NF)
下一篇:
DBMS第三范式(3NF)
