1. 程式人生 > >數據庫系統概念 範式的意思和作用

數據庫系統概念 範式的意思和作用

class 第二範式 size font cor 部分函數 三範式 個數 tex

什麽是範式

設計關系數據庫時,遵從不同的規範要求,設計出合理的關系數據庫,這些不同的規範要求被稱為不同的範式,各種範式呈遞次規範,越高的範式數據庫冗余越小。

大白話就是減少重復的內容存儲,範式數越大重復的越少.就比如一首歌,在不同播放器播放,那就會下載多遍,這時候指定同一個下載目錄就能有效減少存儲重復

範式:

第一範式(1NF)

所有的都應該是原子性

就是說所有的字符取值獨一無二

第二範式(2NF)

滿足第二範式(2NF)必須先滿足第一範式(1NF),消除非主屬性對主碼的部分函數依賴.

例如在員工表中的身份證號即可實現每個一員工的區分,該身份證號碼即為候選鍵,任何一個候選鍵都可以被選作主鍵。在找不到候選鍵時,可額外增加屬性以實現區分,如果在員工中,沒有對其身份證號進行存儲,而姓名可能會在數據庫運行的某個時間重復,無法區分出實體時,設計辟如ID等不重復的編號以實現區分

,被添加的編號或ID選作主鍵。

第三範式(3NF)

在1NF基礎上,任何非主屬性不依賴於其它非主屬性,在2NF基礎上消除傳遞依賴.

例如,存在一個部門信息表,其中每個部門有部門編號、部門名稱、部門簡介等信息。那麽在員工信息表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三範式(3NF)也應該構建它,否則就會有大量的數據重復。

巴斯-科德範式

在3NF基礎上消除對主碼子集的依賴

假設倉庫管理關系表為StorehouseManage(倉庫ID, 存儲物品ID, 管理員ID, 數量),且有一個管理員只在一個倉庫工作;一個倉庫可以存儲多種物品。這個數據庫表中存在如下決定關系:

(倉庫ID, 存儲物品ID) →(管理員ID, 數量)

(管理員ID, 存儲物品ID) → (倉庫ID, 數量)

於是就出現了:

(倉庫ID) → (管理員ID)

(管理員ID) → (倉庫ID)

即存在關鍵字段決定關鍵字段的情況,所以其不符合BCNF範式

這時候要對這個關系表進行拆分至於拆分那就需要仁者見仁智者見智了.

數據庫系統概念 範式的意思和作用