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

2021-10-05 08:44:41 字數 1023 閱讀 2410

好的資料庫設計對資料的儲存效能和後期的程式開發,都會產生重要的影響。建立科學的,規範的資料庫就需要滿足一些規則來優化資料的設計和儲存,這些規則就稱為正規化。

目前關聯式資料庫有六種正規化:第一正規化(1nf)、第二正規化(2nf)、第三正規化(3nf)、巴斯-科德正規化(bcnf)、第四正規化(4nf)和第五正規化(5nf,又稱完美正規化)。

滿足最低要求的正規化是第一正規化(1nf)。在第一正規化的基礎上進一步滿足更多規範要求的稱為第二正規化(2nf),其餘正規化以次類推。一般說來,資料庫只需滿足第三正規化(3nf)就行了。

資料庫表的每一列都是不可分割的原子資料項,不能是集合、陣列等非原子資料項。即表中的某個列有多個值時,必須拆分為不同的列。簡而言之,第一正規化每一列不可再拆分,稱為原子性。

例子

在滿足第一正規化的前提下,表中的每乙個欄位都完全依賴於主鍵。

所謂完全依賴是指不能存在僅依賴主鍵一部分的列。簡而言之,第二正規化就是在第一正規化的基礎上所有列完全依賴於主鍵列。當存在乙個復合主鍵包含多個主鍵列的時候,才會發生不符合第二正規化的情況。比如有乙個主鍵有兩個列,不能存在這樣的屬性,它只依賴於其中乙個列,這就是不符合第二正規化。

第二正規化的特點:

1)一張表只描述一件事情。

2)表中的每一列都完全依賴於主鍵

例子

在滿足第二正規化的前提下,表中的每一列都直接依賴於主鍵,而不是通過其它的列來間接依賴於主鍵。

簡而言之,第三正規化就是所有列不依賴於其它非主鍵列,也就是在滿足2nf的基礎上,任何非主列不得傳遞依賴於主鍵。所謂傳遞依賴,指的是如果存在"a → b → c"的決定關係,則c傳遞依賴於a。因此,滿足第三正規化的資料庫表應該不存在如下依賴關係:主鍵列 → 非主鍵列x → 非主鍵列y

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

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

資料庫設計三大正規化

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

資料庫設計三大正規化

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