資料庫正規化 三正規化

2021-06-25 16:05:25 字數 956 閱讀 3524

所謂第一正規化(1nf)是指在關係模型中,對域新增的乙個規範要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一正規化(1nf)表中的每個域值只能是實體的乙個屬性或乙個屬性的一部分。簡而言之,第一正規化就是無重複的域。

在1nf的基礎上,非碼屬性必須完全依賴於碼[在1nf基礎上消除非主屬性對主碼的部分函式依賴]

第二正規化(2nf)是在第一正規化(1nf)的基礎上建立起來的,即滿足第二正規化(2nf)必須先滿足第一正規化(1nf)。第二正規化(2nf)要求資料庫表中的每個例項或記錄必須可以被唯一地區分。選取乙個能區分每個實體的屬性或屬性組,作為實體的唯一標識。例如在員工表中的身份證號碼即可實現每個一員工的區分,該身份證號碼即為候選鍵,任何乙個候選鍵都可以被選作主鍵。在找不到候選鍵時,可額外增加屬性以實現區分,如果在員工關係中,沒有對其身份證號進行儲存,而姓名可能會在資料庫執行的某個時間重複,無法區分出實體時,設計闢如id等不重複的編號以實現區分,被新增的編號或id選作主鍵。(該主鍵的新增是在er設計時新增,不是建庫時隨意新增)

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

第三正規化(3nf)是第二正規化(2nf)的乙個子集,即滿足第三正規化(3nf)必須滿足第二正規化(2nf)。簡而言之,第三正規化(3nf)要求乙個關係中不包含已在其它關係已包含的非主關鍵字資訊。例如,存在乙個部門資訊表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等資訊。那麼在員工資訊表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的資訊再加入員工資訊表中。如果不存在部門資訊表,則根據第三正規化(3nf)也應該構建它,否則就會有大量的資料冗餘。簡而言之,第三正規化就是屬性不依賴於其它非主屬性,也就是在滿足2nf的基礎上,任何非主屬性不得傳遞依賴於主屬性。

資料庫正規化 一正規化 二正規化 三正規化 BC正規化

一正規化 關係模式r所有的屬性都是不可分割的,不能為組合屬性 多值屬性。一正規化是資料庫設計裡的必要條件。二正規化 非主碼的屬性集依賴於主碼屬性集,不依賴於主碼屬性集的子集 bcnf boyce bodd normal form bc正規化 在二正規化的基礎上,消除更多的冗餘。第三正規化 在bc正規...

資料庫正規化 三正規化設計

資料庫第一正規化 原子性 表中每一列都不可以再分割成更小的列 資料庫第二正規化 不產生區域性依賴 每張表只描述一件事情 資料庫第三正規化 表中每列都直接依賴於主鍵,而不是通過其它列間接依賴於主鍵 什麼是資料庫正規化 學習第一正規化的應用 什麼是正規化 一種規則,指導程式設計師建立表的規則 程式設計師...

mysql三正規化 MySQL資料庫三正規化

設計關係型資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關係型資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf 第四正規化 4nf 和第五正...