數據庫三大范式(詳細舉例說明一看就會)


為什么需要數據規范化?

* 信息重復
* 更新異常
* 插入異常(無法正常顯示信息)
* 刪除異常 (丟失有效的信息)
 

       第一范式:數據庫表中的所有字段值都是不可分解的原子值。

舉例說明:

 

在上面表中 家庭信息和學歷信息不滿足原子性要求,不滿足第一范式,進行調整如下

       

       第二范式:滿足第一范式,需要確保數據庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(每張表只描述一件事情)

舉例說明:

 

 在上述表中,同一個訂單號可以包括不同產品號,因此主鍵必須是“訂單號”、“產品號”聯合組成。

但可以發現 產品號、產品數量、產品價格與“訂單號”、“產品號”都相關,但是訂單金額 訂單時間、訂單人僅與訂單號相關,與“產品號”無關

因此不滿足第二范式要求進行調整如下分成兩張表:

 

 

       第三范式:滿足第二范式前提下,需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關(消除傳遞依賴)

舉例說明:

 

上表所有屬性完全依賴於學號,滿足第二范式,但是“班主任性別”、“班主任年齡”直接依賴於“班主任姓名”,並非主鍵“學號”

進行調整如下:

 

調整之后滿足第三范式

 數據庫三大范式總結:(規范數據庫設計)

規范性 和性能問題

關聯表不得超過三張表

1、考慮商業化需求和目標,(成本、用戶體驗)數據庫與性能更加重要

2、在規范性能得問題的時候,需要適當考慮 規范性

3、故意給某些表增加一些冗余長字段。(從多表查變為單表差查)

4、故意增加一些計算列(從大數據降低為小數據,索引:)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM