資料庫規範化 第一範式: 欄位不可再分 1NF(第一範式)是指資料庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重覆的屬性。 第二範式: 非主鍵欄位完全依賴主鍵欄位 第二範式(Second Normal Form,2nd NF)是指每個表必須有主 ...
目錄
資料庫規範化
- 第一範式: 欄位不可再分
1NF(第一範式)是指資料庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重覆的屬性。
- 第二範式: 非主鍵欄位完全依賴主鍵欄位
第二範式(Second Normal Form,2nd NF)是指每個表必須有主關鍵字(Primary key),其他數據元素與主關鍵字一一對應。通常稱這種關係為函數依賴(Functional dependence)關係,即表中其他數據元素都依賴於主關鍵字,或稱該數據元素惟一地被主關鍵字所標識。
- 第三範式: 消除傳遞函數依賴(非主屬性->非主屬性->主鍵)
第三範式(Third Normal Form,3rd NF)就是指表中的所有數據元素不但要能唯一地被主關鍵字所標識,而且它們之間還必須相互獨立,不存在其他的函數關係。
- BCNF: 不會,一般而言,不以資料庫為主要方向的話,自用資料庫3NF足夠了
所有非主屬性對每一個候選鍵都是完全函數依賴; 所有的主屬性對每一個不包含它的候選鍵,也是完全函數依賴;沒有任何屬性完全函數依賴於非候選鍵的任何一組屬性。
資料庫完整性
實體完整性:主鍵
實體完整性這項規則要求每個數據表都必須有主鍵,而作為主鍵的所有欄位,其屬性必須是獨一及非空值。
參照完整性:外鍵
若屬性或屬性組F是基本關係R的外鍵,它與基本關係S的主鍵Ks相對應(基本關係R和S不一定是不同的關係),則對於R中的每個元組在F上的值必須為:
(1)空值,F的每個屬性值均為空值。
(2)S中某個元組中的主鍵值(主碼值)
用戶定義完整性:各種列級約束
A