正規化是對關係的不同資料依賴程度的要求。
第一正規化(1nf):列不可再分
每一列屬性都不能再分,必須滿足原子性。
第二正規化(2nf):非主屬性完全依賴於主屬性
資料庫表中的每乙個實體必須能被唯一區分。
第三正規化(3nf):非主屬性直接依賴主屬性,沒有傳遞依賴
即非主屬性之前不存在依賴關係。
bc正規化(bcnf):消除主屬性對碼的部分傳遞依賴
下面的解釋摘抄自 詳解第一正規化、第二正規化、第三正規化、bcnf正規化
問:關於碼的定義,如果除k之外的所有屬性都完全函式依賴於k時才能稱k為碼,那麼在判斷2nf時又怎麼會存在非主屬性對碼的部分函式依賴這種情況?
答 :在「碼」的定義中,除 k 之外的所有屬性應該看成是乙個集合 u(也就是乙個整體),也就是說,只有 k 能夠完全函式決定 u 中的每乙個屬性,那麼 k 才是碼。如果 k 只是能夠完全函式決定 u 中的一部分屬性,而不能完全函式決定另外一部分屬性,那麼 k 不是碼。
比如有關係模式 r (sno, sname, cno, cname, sdept, sloc, grade),
其中函式依賴集為
f= 那麼 r 中的碼只能是 (sno, cno),
sno 或 cno 並不能完全函式決定除 sno / cno 之外的所有其他屬性(其實就是不能決定 grade ),所以單獨的 sno 與 cno 並不能作為碼。
所以可得到主屬性:sno, cno
非主屬性:sname, cname, sdept, sloc, grade
r 中存在非主屬性 cname 對於碼 (sno, cno) 的部分函式依賴 (cno → cname) 。所以 r 不符合 2nf 的要求。
資料庫設計三大正規化資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...
資料庫三大正規化
1 第一正規化 1nf 在任何乙個關聯式資料庫中,第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化 1nf 的資料庫就不是關聯式資料庫。所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現...
資料庫三大正規化
第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...