三大正規化解析

2021-09-26 05:16:25 字數 815 閱讀 6796

新人很難讀懂三大正規化,接下來根據自己的理解解析一下,很多不足,多多指教。

(1)第一正規化1nf:

原子性:表中每列不可再拆分。比如你的身份證號碼,他是固定的長度,分開就不能表示身份證id,像這樣的不可分的這些屬性就理解為第一正規化。

(2)第二正規化2nf:

不產生區域性依賴,一張表只描述一件事情。第二正規化是在第一正規化的基礎上進行建立,就會逐漸變得複雜,比如乙個班級,那麼乙個班級有很多同學,他至少有包含概念,接下來就是第二正規化,它每一張表只描述一件事情,如果你建的是學生表,那麼你表中的資料只能表示學生資訊。其中包含主鍵等資訊。

一二正規化的聯絡:滿足第二正規化(2nf)必須先滿足第一正規化(1nf)。第二正規化(2nf)要求資料庫表中的每個例項或行必須可以被唯一地區分。為實現區分通常需要為表加上乙個列,以儲存各個例項的唯一標識。員工資訊表中加上了員工編號(emp_id)列,因為每個員工的員工編號是唯一的,因此每個員工可以被唯一區分。這個唯一屬性列被稱為主關鍵字或主鍵、主碼。

(3)第三正規化3nf:

簡述:不產生傳遞依賴,表中每一列都直接依賴於主鍵。而不是通過其他列間接依賴於主鍵。

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

還有很多不足,請多多指正

三大正規化和BC正規化

資料庫的設計正規化是資料庫設計所需要滿足的規範,滿足這些規範的資料庫是簡潔的 結構明晰的,同時,不會發生插入 insert 刪除 delete 和更新 update 操作異常。反之則是亂七八糟,不僅給資料庫的程式設計人員製造麻煩,而且面目可憎,可能儲存了 大量不需要的冗餘資訊。設計正規化是不是很難懂...

MYSQL三大正規化

第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...

MySQL三大正規化

資料庫 的三個正規化 指的是什麼呢?即 屬性唯一,記錄唯一,表唯一。下面我們用一張關係圖來三者之間的關係。第一正規化 1nf 資料庫表中的字段的 屬性都是單一的,不可再分。這個單一屬性由哪些型別組成呢?主要是基本型別構成,包括整型 實數 字元型 邏輯型 日期型等。第二正規化 2nf 資料庫表 中不存...