數據庫設計-邏輯設計-範式
阿新 • • 發佈:2019-04-22
出現 若有 什麽 沒有 enter -a 學習 插入 和數
數據庫設計
數據庫設計範式
- 為什麽要使用範式?
- 數據庫設計範式可以很好的為我們規避數據操作異常和數據冗余,可以更合理的設計數據庫表,處理表與表之間的關系。
- 數據操作異常
- 插入異常:本該被插入的數據沒有被插入。
- 一個實體依賴於另一個實體,插入該實體時,若依賴的實體沒有插入,則會產生插入異常。
更新異常:簡單事實卻要更新多次。
- 更新實體的單獨屬性時,產生多行更新。
- 刪除一個實體實例時,導致另一個實體實例信息的丟失。
- 插入異常:本該被插入的數據沒有被插入。
- 數據冗余
- 相同數據多個地方存在或者表中某列可以由其他列計算得到。
- 數據操作異常
- 數據庫設計範式可以很好的為我們規避數據操作異常和數據冗余,可以更合理的設計數據庫表,處理表與表之間的關系。
- 第一範式:實體的屬性都是單一屬性,不可再分。(原子性約束)
- 數據庫表的每一列都是不可分隔的原子數據項。
- 第二範式:實體的非主屬性完全依賴於主關鍵字(單一屬性或者屬性組),不能僅依賴於主關鍵字的部分屬性。(唯一性約束)
- 數據庫表中的每一行必須可以被唯一地區分。
- 消除非主屬性對主碼的部分函數依賴。
- 第三範式:實體的非主屬性不依賴於其他的非主屬性,即不傳遞依賴於主屬性。(冗余性約束)
- 數據庫表中字段不能冗余出現,任何字段不能由其他字段派生出來。
- 消除非主屬性對主碼的傳遞依賴。
- BC範式:實體的非主屬性不依賴於主鍵子集。(進一步降低冗余性)
- 對第三範式的修正,使數據庫冗余性更小。
- 消除非主屬性對主碼子集的依賴。
以上僅為本人學習過程中的知識總結,若有錯誤,還請諸位不吝賜教。
數據庫設計-邏輯設計-範式