我所理解的資料庫範式,就是設計資料庫表的時候,一個表中應該有哪些欄位,又有哪些欄位可以提取出來。為什麼又有範式的名字呢??簡單的來說就是設計資料庫表的時候,遵循的規範,目的就是減少資料庫中的數據冗餘,增加數據的一致性。 1.第一範式: 就是列不可再分, 2.第二範式: 要求資料庫表中的每個實例或者行 ...
我所理解的資料庫範式,就是設計資料庫表的時候,一個表中應該有哪些欄位,又有哪些欄位可以提取出來。為什麼又有範式的名字呢??簡單的來說就是設計資料庫表的時候,遵循的規範,目的就是減少資料庫中的數據冗餘,增加數據的一致性。
1.第一範式:
就是列不可再分,
2.第二範式:
要求資料庫表中的每個實例或者行必須可以被唯一的區分。
大家可以看看這個表設計存在這什麼問題??
改成這樣的表,才符合第二範式
3.第三範式:
不存在傳遞函數依賴關係
這個表存在這傳遞函數依賴,需要拆分才能符合第三範式。
4.BC範式
在第三範式的基礎上,資料庫表中如果不存在任何欄位對任意候選關鍵欄位的傳遞函數依賴則符合BC範式,換句話也就是說如果是符合關鍵字,則複合關鍵字之間也不能存在函數的依賴關係。
分析資料庫表
拆分過後的表就符合BC範式