在關聯式資料庫中的每個關係都需要進行規範化,使之達到一定的規範化程度,從而提高資料的結構化、共享性、一致性和可操作性。規範化是把資料庫組織成在保持儲存資料完整性的同時最小化冗餘資料的結構的過程。規範化的資料庫必須符合關係模型的正規化規則,正規化可以防止在使用資料庫時出現不一致的資料,並防止資料丟失。
關係模型的正規化有第一正規化(1nf)、第二正規化(2nf)、第三正規化(3nf)、第四正規化(4nf)、第五正規化(5nf)、第六正規化(6nf)和bcnf 正規化等多種,通常資料庫只要滿足前3 個正規化就足夠用了。
1.第一正規化(1nf)
第一正規化是第二和第三正規化的基礎,是最基本的正規化。第一正規化包括下列指導原則:
資料組的每個屬性只可以包含乙個值。
關係中的每個陣列必須包含相同數量的值。
關係中的每個陣列一定不能相同。
如果資料表中的每乙個列都是不可再分割的基本資料項——同一列中不能有多個值,那麼就稱此資料表符合第一正規化,由此可見第一正規化具有不可再分解的原子特性。
2.第二正規化(2nf)
第二正規化是在第一正規化的基礎上建立起來的,即滿足第二正規化必先滿足第一正規化。第二正規化要求資料庫表中的每個實體(即各個記錄行)必須可以被唯一地區分。為實現區分各行記錄通常需要為表設定乙個「區分列」,用以儲存各個實體的唯一標識,那麼這個唯一屬性列被稱為主關鍵字或主鍵。
3.第三正規化(3nf)
第三正規化是在第二正規化的基礎上建立起來的,即滿足第三正規化必先滿足第二正規化。第三正規化要求關係表不存在非關鍵字列對任意候選關鍵字列的傳遞函式依賴(所謂傳遞函式依賴,就是指如果存在關鍵字段a 決定非關鍵字段b,而非關鍵字段b 決定非關鍵字段c,則稱非關鍵字段c 傳遞函式依賴於關鍵字段a。),也就是說,第三正規化要求乙個關係表中不包含已在其他表中已包含的非主關鍵字資訊。
資料庫正規化 三正規化
所謂第一正規化 1nf 是指在關係模型中,對域新增的乙個規範要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一正規化 1nf 表中的每個域值只能是實體的乙個屬性或乙個屬性的...
oracle資料庫 正規化
一共定義了規範化的三個級別,正規化是具有最小冗餘的表結構。這些正規化是 第一正規化 1st nf 第二正規化 2nd nf 第三正規化 3rd nf 第一正規化 第一正規化的目標是確保每列的原子性 如果每列都是不可再分的最小資料單元 也成為最小的原子單元 則滿足第一正規化 第二正規化 如果乙個關係滿...
Oracle 資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...