二維碼
企資網

掃一掃關注

當前位置: 首頁 » 企業資訊 » 咨詢 » 正文

你還記得數據庫三范式嗎?

放大字體  縮小字體 發布日期:2021-12-12 08:31:10    作者:馮培霏    瀏覽次數:42
導讀

前言“學長,SqlServer數據庫三范式可以簡單幫我理解一下么?”。學妹得一句話把我問蒙了,因為三范式得概念早就丟到外太空去了。但是呢,我不能直接說我忘記了,為了不影響在學妹心目中得形象(你懂得),我還特意

前言

“學長,SqlServer數據庫三范式可以簡單幫我理解一下么?”。

學妹得一句話把我問蒙了,因為三范式得概念早就丟到外太空去了。

但是呢,我不能直接說我忘記了,為了不影響在學妹心目中得形象(你懂得),我還特意去百度查了一下。

然后整理了一下,大家如果有和我一樣忘記了得可以看一下(概念+舉例),淺顯易懂。

回到頂部

數據庫三范式
  1. 第壹范式(1NF):第壹范式(1NF)是指數據庫表得每一列都是不可分割得基本數據項,同一列中不能有多個值,即實體中得某個屬性不能有多個值或者不能有重復得屬性。
  2. 第二范式(2NF):第二范式(2NF)是在第壹范式(1NF)得基礎上建立起來得,即滿足第二范式(2NF)必須先滿足第壹范式(1NF)。第二范式(2NF)要求數據庫表中得每個實例或行必須可以被惟一得區分。
  3. 第三范式(3NF):滿足第三范式(3NF)必須先滿足第二范式(2NF)。簡而言之,第三范式(3NF)要求一個數據庫表中不包含已在其它表中已包含得非主關鍵字信息。

一般地,在進行數據庫設計時,應遵循三大原則,也就是我們通常說得三大范式,即第壹范式要求確保表中每列得原子性,也就是不可拆分;

第二范式要求確保表中每列與主鍵相關,而不能只與主鍵得某部分相關(主要針對聯合主鍵),主鍵列與非主鍵列遵循完全函數依賴關系,也就是完全依賴;

第三范式確保主鍵列之間沒有傳遞函數依賴關系,也就是消除傳遞依賴。

1. 必須保證數據庫設計得合理性

  • 數據庫設計關系整個系統得架構,關系到后續得開發效率和運行效率
  • 數據庫得設計主要包含了設計表結構和表之間得聯系

    2. 如何是合理得數據庫

  • 結構合理
  • 冗余較小
  • 盡量避免插入刪除修改異常

    3. 如何才能保證數據庫設計水平

  • 遵循一定得規則
  • 在關系型數據庫中這種規則就稱為范式

    4. 什么是范式(NF,NormalForm)

  • 范式是符合某一種設計要求得總結
  • 要想設計一個結構合理得關系型數據庫,必須滿足一定得范式
  • 各個范式是依次嵌套包含得
  • 范式超高,設計質量超高,在現實設計中也越難實現
  • 一般數據庫設計,只要達到第三范式,即可避免異常得出現

    回到頂部

    舉例說明第壹范式(概念+舉例)

    1. 要求

  • 蕞基本得范式
  • 數據庫表每一列都是不可分割得基本數據,同一列中不能有多個值
  • 簡單說就是要確保每列保持原子性
  • 第壹范式得合理遵循需要根據系統得實際需求來定

    2. 示例

    第二范式(概念+舉例)

    1. 要求

  • 第二范式需要確保數據庫表中得每一列都和主鍵相關,而不能只與主鍵得某一部分相關(主要針對聯合主鍵而言)
  • 即在一個數據庫表中只能保存一種數據,不可以把多種數據保存在同一張數據庫表中

    2. 示例

    在上面第壹范式示例表中得數據看出,這不符合第二范式,所以進行拆分如下,

    第壹張主鍵相關為(學號、課程名稱),第二張表為(學號),它們都是完全依賴得,因此符合第二范式。

    第三范式(概念+舉例)

    1. 要求

  • 確保數據表中得每一列數據都和主鍵直接相關,而不能間接相關
  • 屬性不依賴于其他非主屬性(消除依賴)

    2. 示例

    注意看第二范式得學生表:存在系主任依賴于系名 (系名---> 系主任),所以不符合第三范式,繼續進行拆分如下:

    回到頂部

    總結

    我們看到,第三范式規則查找以消除沒有直接依賴于第壹范式和第二范式形成得表得主鍵得屬性。
    我們為沒有與表得主鍵關聯得所有信息建立了一張新表。
    每張新表保存了來自源表得信息和它們所依賴得主鍵。


    數據庫設計規范化能讓我們更好地適應變化,使你能夠改變業務規則、需求和數據而不需要重新構造整個系統。

    :熊澤-學習中得苦與樂

  •  
    (文/馮培霏)
    免責聲明
    本文僅代表作發布者:馮培霏個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
     

    Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

    粵ICP備16078936號

    微信

    關注
    微信

    微信二維碼

    WAP二維碼

    客服

    聯系
    客服

    聯系客服:

    在線QQ: 303377504

    客服電話: 020-82301567

    E_mail郵箱: weilaitui@qq.com

    微信公眾號: weishitui

    客服001 客服002 客服003

    工作時間:

    周一至周五: 09:00 - 18:00

    反饋

    用戶
    反饋

    日韩欧美国产免费看清风阁