專案組需共同遵守統一的「資料庫命名規範」(表名、欄位名、索引名、約束名、大小寫、前綴等),附錄提供範本參考。
欄位不可再分,屬於基本型別(整數、實數、字串、邏輯、日期)。
反例:電話欄位存多個號碼 → 應拆分為「家用電話、手機、公司電話、分機」等獨立欄位。
滿足 1NF,且非主鍵屬性**完全函數相依**於主鍵(無部分相依)。
反例:選課表 (學號, 課程名稱, 姓名, 年齡, 學分),主鍵 (學號, 課程名稱)。
課程名稱 → 學分(部分相依),學號 → 姓名, 年齡(部分相依)。
導致資料冗餘、更新/插入/刪除異常。
拆解:學生表、課程表、選課關係表。
滿足 2NF,且無**傳遞函數相依**(非鍵屬性不相依於其他非鍵屬性)。
反例:學生表 (學號, 姓名, 年齡, 所在學院, 學院地點, 學院電話)。
學號 → 所在學院 → 學院地點, 學院電話(傳遞相依)。
拆解:學生表、學院表。
3NF 加強版:非主鍵屬性不能決定主鍵的任何部分。
反例:表 R(A,B,C,D,E),主鍵 (A,B),若 C → B,則違反 BCNF。
拆解:建立 R1(C,B),原表保留 (A,B,D,E),以 B 為外鍵關聯。