MySQL資料庫實驗(五) 正規化

2021-10-04 23:29:00 字數 2047 閱讀 1667

為什麼要學習「正規化」?

什麼是「正規化」?

在設計資料庫時,資料庫開發人員的經驗非常重要!

但是全憑經驗會導致人為的不確定因素劇增。

如何將資料庫設計的過程上公升到一定的 「理論高度」呢?

資料庫開發人員有必要制定一套資料庫設計的「質量標準」。——正規化

設計資料庫時,有兩個不爭的事實:

冗餘的資料需要額外的維護,並且容易導致「資料不一致」「插入異常」以及「刪除異常」等問題的發生。

上述異常可以看作是「資料冗餘」的「併發症」;如何檢測和消除表中的冗餘資料呢?資料庫規範化;

規範化是通過最小化資料冗餘來提公升資料庫設計質量的過程,規範化是基於函式依賴以及一系列正規化定義的,最為常用的是第一正規化(1nf)第二正規化(2nf)第三正規化(3nf)

**函式依賴:**一張表內兩個字段值之間的一一對應關係稱為函式依賴。

在乙個資料表中,欄位a的值能夠唯一確定欄位b的值,那麼欄位b函式依賴於欄位a。

第一正規化:如果一張表內同類欄位不重複出現,該錶就滿足第一正規化的要求。

一張表在滿足第一正規化的基礎上,每乙個非主屬性完全函式依賴於主碼,那麼該錶滿足第二正規化的要求。

第二正規化需要確保資料庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言),也就是說在乙個資料庫表中,乙個表中只能儲存一種資料,不可以把多種資料儲存在同一張資料庫表中。

「非主屬性」 姓名、性別不僅函式依賴於聯合主鍵(學號和課程號),而且還函式依賴於學號。

同樣,「非主屬性」課程名不僅函式依賴於聯合主鍵(學號和課程號),而且還函式依賴於課程號。

第三正規化:如果一張表滿足第二正規化的要求,並且不存在「非主屬性」字段函式依賴於任何其他「非主屬性」字段,那麼該錶滿足第三正規化的要求。

第三正規化需要確保資料表中的每一列資料都和主鍵直接相關,而不能間接相關。

如:「非主屬性」郵編函式依賴於「非主屬性」居住地;

第三正規化需要確保資料表中的每一列資料都和主鍵直接相關,而不能間接相關。

見以往文章:

mysql資料庫實驗(四):e-r圖例項講解

mysql資料庫實驗(三):表記錄的檢索

mysql資料庫實驗(二):表的操作

mysql資料庫實驗(一):資料庫備份

mysql資料庫正規化

減小資料的冗餘性 提高效率 屬性的原子性,每列不可再分解 如 出生年月日 年 月 日 便於後續修改 記錄的惟一性,說明乙個事物 屬性必須完全依賴於主鍵,不能存在部分依賴 如 說明了三個事物 學生資訊 系資訊 課程資訊 存在的部分依賴 姓名對學號存在部分依賴 系名對學號存在部分依賴 系主任對學號存在部...

MySQL 資料庫正規化

目錄 1 資料庫正規化簡介 2 應用正規化優點 3 常見正規化簡述 1 第一正規化 1nf 2 第二正規化 2nf 3 第三正規化 3nf 4 bc正規化 bcnf 5 第四正規化 4nf 4 存在的問題 5 各正規化關係圖 設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同...

mysql三正規化 MySQL資料庫三正規化

設計關係型資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。目前關係型資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf 第四正規化 4nf 和第五正...