關係型資料庫設計 三大正規化的通俗理解

2022-07-10 07:54:14 字數 1700 閱讀 4204

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

而通常我們用的最多的就是第一正規化(1nf)、第二正規化(2nf)、第三正規化(3nf),也就是本文要講的「三大正規化」。

舉例說明:

在上面的表中,「家庭資訊」和「學校資訊」列均不滿足原子性的要求,故不滿足第一正規化,調整如下:

可見,調整後的每一列都是不可再分的,因此滿足第一正規化(1nf);

第二正規化需要確保資料庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言)。

舉例說明:

在上圖所示的情況中,同乙個訂單中可能包含不同的產品,因此主鍵必須是「訂單號」和「產品號」聯合組成,

但可以發現,產品數量、產品折扣、產品**與「訂單號」和「產品號」都相關,但是訂單金額和訂單時間僅與「訂單號」相關,與「產品號」無關,

這樣就不滿足第二正規化的要求,調整如下,需分成兩個表:

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

舉例說明:

上表中,所有屬性都完全依賴於學號,所以滿足第二正規化,但是「班主任性別」和「班主任年齡」直接依賴的是「班主任姓名」,

而不是主鍵「學號」,所以需做如下調整:

上表中,所有屬性都完全依賴於學號,所以滿足第二正規化,但是「班主任性別」和「班主任年齡」直接依賴的是「班主任姓名」,

而不是主鍵「學號」,所以需做如下調整:

這樣以來,就滿足了第三正規化的要求。

ps:如果把上表中的班主任姓名改成班主任教工號可能更確切,更符合實際情況,不過只要能理解就行。

關係型資料庫設計的三大正規化

簡言之就是,資料庫設計對資料的儲存效能,還有開發人員對資料的操作都有莫大的關係。所以建立科學的,規範的的資料庫是需要滿足一些規範的來優化資料資料儲存方式。在關係型資料庫中這些規範就可以稱為正規化。當關係模式r的所有屬性都不能在分解為更基本的資料單位時,稱r是滿足第一正規化的,簡記為1nf。滿足第一正...

關係型資料庫 三大正規化

關係型資料庫 三大正規化 一 關係性資料庫的 三大正規化是什麼?1 正規化是什麼?設計關係型資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些規範被稱作正規化。越高的正規化資料庫的冗餘度就越低。2 三大正規化 第一正規化 1nf 每個列都不可以再拆分。第二正規化 2nf 在第一正規化的基礎...

關係型資料庫三大正規化

基礎概念 關鍵字 主關鍵字 候選關鍵字,非關鍵字 如果某個欄位或多個欄位的值可以唯一地標識一條記錄,則該字段或字段組就稱為關鍵字。如果乙個關鍵字是用以標識每條記錄的唯一性,並作為該錶與其他表實現關聯之用,則稱其為主關鍵字 主鍵,primary key 或主碼。除主關鍵字以外的其他關鍵字稱為候選關鍵字...