機房重構之數據庫設計


一、畫ER

E-R圖也稱實體-聯繫圖(Entity Relationship Diagram),提供了表示實體類型、屬性和聯 系的方法,用來描述現實世界的概念模型。

繪製方法:

⑴確定所有的實體集合

⑵選擇實體集應包含的屬性

⑶確定實體集之間的聯繫

⑷確定實體集的關鍵字,用下劃線在屬性上表明關鍵字的屬性組合

⑸確定聯繫的類型,在用線將表示聯繫的菱形框聯繫到實體集時,在線旁註明是1n(多)來表示聯繫的類型


二、將ER圖轉化成關係模式

1:1 :例如 CardInfo StudentInfo 1:1的關係

      CardInfoCardNo,Balance,CardState

  StudentInfo(StuID,StuName,StuDept,StuSex,StuClass,,StuState)

  轉化後

  StudentInfo(StuID,CardNo,StuName,StuDept,StuSex,StuClass,,StuState)

  或

      CardInfoCardNo,StuNo,Balance,CardState

      即把主鍵加入到任一方均可

1:n : 例如UserInfo 和 CardInfo 是在註冊方面是1n的關係   

          UserInfoUserID,Password,UserName,UserLevel

          CardInfoCardNo,Balance,CardState

          轉換後

          CardInfoCardNo,UserID,Balance,CardState

          即把主鍵放到n

n:m :例如UserInfo 和 CardInfo 是在充值方面是nm的關係(一個用戶可以充值多   張卡,一張卡可以被多個用戶充值)

          CardInfoCardNo,Balance,CardState

          UserInfoUserID,Password,UserName,UserLevel

          

           轉化後          

          CardInfoCardNo,Balance,CardState

          UserInfoUserID,Password,UserName,UserLevel

          Recharge(CardNo,UserID,Money,OpTime)

          加入一個新的關係模式並把兩個的主鍵分別加入到新的關係模式中

          

三、用三範式規範數據庫

 

    1、第一範式(原子性)

本系統中沒有找到很好的例子,隨便舉一個例子說明問題

非第一範式關係

系名稱

高級職稱人數

教授

副教授

計算機系

6

10

信息管理系

3

5

 

第一範式關係

系名稱

教授人數

副教授人數

計算機系

6

10

信息管理系

3

5

第一個表中“高級職稱人數”不是原子屬性,他還包括兩個子值

2、第二範式(不存在局部依賴)

 

   Recharge(CardNo,UserID,Money,OpTime)

 

在這個充值關係中,CardNo,UserID  決定 OpTime,所以他倆組合做主鍵,但是CardNo 自己就可以決定Money,因此存在局部依賴。

優化爲

Recharge(CardNo,UserID,OpTime)

Balance(CardNo,Money)

即滿足第二範式要求

 

3、第三範式(不含傳遞依賴)

沒有在此係統中找到合適的例子,舉其他例子說明此問題

StudentStuNo,StuDept,StuDeptTeacher

stuNo 可以決定stuDept

StuDept可以決定 StuDeptTeacher

這樣就存在傳遞依賴

優化後

StudentStuNo,StuDept

Dept(StuDept,StuDeptTeacher)

4、三範式的關係


滿足第三範式必須滿足第一和第二範式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章