在第二範式(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)
