資料庫表設計的三大正規化

2021-08-01 22:01:51 字數 623 閱讀 8433

關係表的規範化

規範化主要是決定關係表應該擁有哪些屬性,其目的是建立良好結構的關係表,去除關係表中的重複資料,去除關係表中的不一致的依賴性,避免在新增、刪除或者更新資料時造成錯誤或者資料不一致的異常情況。關係表的規範化首要工作是處理主鍵與屬性之間的「功能依賴」,它是**正規化的基礎。

第一正規化(1nf),是指在關係表中刪除多值和復合屬性,讓關係表只擁有單元值屬性。例如,學號和課程組成的學生表中,如果在一條記錄中課程屬性值同時有語文、數學、英語三門課,那麼因為擁有多值屬性不符合1nf,應該將這條記錄分成3條。

第二正規化(2nf),是指滿足第一正規化,且關係表沒有部分依賴。簡單地說,第二正規化是指在關係表中,不是主鍵的屬性需要完全依賴於主鍵。例如,如果在乙個表中,有屬性學號,姓名,性別,導師編號,導師姓名,導師辦公室編號,辦公室位址,那麼因為導師姓名以及導師辦公室編號,辦公室位址並非完全依賴主鍵學號,所以不符合2nf。

第三正規化(3nf),是指滿足第二正規化,且關係表沒有遞移依賴。第三正規化的目的是移除那些不是直接功能依賴於主鍵的屬性,這些屬性是借由另乙個屬性來功能依賴於主鍵的。比如上面在第二正規化中提到的表,我們將學生表拆分成學生表和導師表兩個表,但是導師表中辦公室位址並非直接依賴於主鍵,而是通過辦公室編號,不符合3nf。

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

為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...

資料庫表設計三大正規化原則

a 所有字段值都是不可分解的原子值 b 也就是說在乙個資料庫表中,乙個表中只能儲存一種資料,不可以把多種資料儲存在同一張資料庫表中 c 資料表中的每一列資料都和主鍵直接相關,而不能間接相關 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化。如果資料庫表中的所有字段值都是不可分解的原子值...

mysql資料庫表設計三大正規化

通俗地理解三個正規化,對於資料庫設計大有好處。在資料庫設計中,為了更好地應用三個正規化,就必須通俗地理解三個正規化 通俗地理解是夠用的理解,並不是最科學最準確的理解 第一正規化 1nf是對屬性的原子性約束,要求屬性具有原子性,不可再分解 只要是關係型資料庫都滿足1nf 第二正規化 2nf是對記錄的惟...