MySQL數據庫建模部分重要過程


MySQL數據庫建模過程可以分為

  需求分析階段、概要設計階段、詳細設計階段、代碼編寫階段、軟件測試階段

  下面主要介紹一下概要設計階段的E-R模型圖的設計以及三大范式。

E-R圖設計

  在E-R圖中,實體用矩形表示,屬性用橢圓表示,關系用菱形表示。

  實體之間的關系:

    一對一(1:1):一個實體最多只能能另一個實體相關聯,另一個實體如是。

          例:一個只能有一張身份證。

    一對多(1:n): 一個實體可以和別的實體任意關聯(他們只能和前面的實體關聯)

          例:一個班有多名學生。

    多對多:(n:n):一個實體可以和別的實體任意關聯(他們也可以和前面的實體任意關聯)

          例:一個學生可以選擇多門課程,一門課程對應多名學生。

  實例:   

  設某汽車運輸公司數據庫中有三個實體集。一是“車隊”實體集,屬性有車隊號、車隊名等;二是“車輛”實體集,屬性有牌照號、廠家、出廠日期等;三是“司機”實體集,屬性有司機編號、姓名、電話等。;車隊與司機之間存在“聘用”聯系,每個車隊可聘用若干司機,但每個司機只能應聘於一個車隊,車隊聘用司機有“聘用開始時間”和“聘期”兩個屬性;車隊與車輛之間存在“擁有”聯系,每個車隊可擁有若干車輛,但每輛車只能屬於一個車隊;司機與車輛之間存在着“使用”聯系,司機使用車輛有“使用日期”和“公里數”兩個屬性,每個司機可使用多輛汽車,每輛汽車可被多個司機使用。
  請根據以上描述,繪制相應的E-R圖,並直接在E-R圖上注明實體名、屬性、聯系類型。

  E-R圖:

  

 

 

 三大范式

  第一范式: 要求表的每個字段必須是不可分割的獨立單元 

  student : name -- 違反第一范式
      張小名|狗娃
  sutdent : name old_name --符合第一范式
       張小名 狗娃

  第二范式: 在第一范式的基礎上,要求每張表只表達一個意思。表的每個字段都和表的主鍵有依賴。

  employee(員工):
  員工編號 員工姓名 訂單名稱 --違反第二范式

  員工表:員工編號 員工姓名
  訂單表: 訂單編號 訂單名稱 -- 符合第二范式  

  第三范式: 在第二范式基礎,要求每張表的主鍵之外的其他字段都只能和主鍵有直接決定依賴關系。

  員工表: 員工編號(主鍵) 員工姓名 部門編號 部門名
               --符合第二范式,違反第三范式 (數據冗余高)

  員工表:員工編號(主鍵) 員工姓名 部門編號
               --符合第三范式(降低數據冗余)
  部門表:部門編號 部門名

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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