如果它在2NF 中,並且不包含任何傳遞性部分依賴性,則關係將在3NF 中。
3NF 用於減少數據重複,它還用於實現數據完整性。
如果非素數屬性沒有傳遞依賴關係,則關係必須是第三範式。
如果關係對於每個非平凡函數依賴關係X→Y 保持至少以下條件之一,則該關係處於第三範式。
X是一把超級主鍵。Y是主鍵屬性,即Y的每個元素是某個候選鍵的一部分。
示例:
EMPLOYEE_DETAIL表的結構和數據:
| EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITY |
|---|---|---|---|---|
| 222 | Harry | 201010 | UP | Noida |
| 333 | Stephan | 02228 | US | Boston |
| 444 | Lan | 60007 | US | Chicago |
| 555 | Katharine | 06389 | UK | Norwich |
| 666 | John | 462007 | MP | Bhopal |
上述表(EMPLOYEE_DETAIL)中的超級鍵是:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....等等
候選鍵:{EMP_ID}
非主屬性 :在給定表中,除EMP_ID之外的所有屬性都是非主屬性。
這裏,EMP_STATE&EMP_CITY依賴於EMP_ZIP,而EMP_ZIP依賴於EMP_ID。 非主屬性(EMP_STATE,EMP_CITY)可傳遞地依賴於超級主鍵(EMP_ID)。 它違反了第三範式的規則。
這就是為什麼需要將EMP_CITY和EMP_STATE移動到新的<EMPLOYEE_ZIP>表,並將EMP_ZIP作為主鍵。
員工(EMPLOYEE)表的結構和數據如下:
| EMP_ID | EMP_NAME | EMP_ZIP |
|---|---|---|
| 222 | Harry | 201010 |
| 333 | Stephan | 02228 |
| 444 | Lan | 60007 |
| 555 | Katharine | 06389 |
| 666 | John | 462007 |
員工郵編(EMPLOYEE_ZIP)表的結構和數據如下:
| EMP_ZIP | EMP_STATE | EMP_CITY |
|---|---|---|
| 201010 | UP | Noida |
| 02228 | US | Boston |
| 60007 | US | Chicago |
| 06389 | UK | Norwich |
| 462007 | MP | Bhopal |
上一篇:
DBMS第二範式(2NF)
下一篇:
DBMS第四範式(4NF)
