標籤:
一、畫ER圖
E-R圖也稱實體-聯絡圖(Entity Relationship Diagram),提供了表示實體類型、屬性和聯 系的方法,用來描述現實世界的概念性模型。
繪製方法:
⑴確定所有的實體集合
⑵選擇實體集應包含的屬性
⑶確定實體集之間的聯絡
⑷確定實體集的關鍵字,用底線在屬性上表明關鍵字的屬性群組合
⑸確定聯絡的類型,在用線將表示聯絡的菱形框聯絡到實體集時,線上旁註明是1或n(多)來表示聯絡的類型
二、將ER圖轉化成關係模式
1:1 :例如 CardInfo 和StudentInfo 是1:1的關係
CardInfo(CardNo,Balance,CardState)
StudentInfo(StuID,StuName,StuDept,StuSex,StuClass,,StuState)
轉化後
StudentInfo(StuID,CardNo,StuName,StuDept,StuSex,StuClass,,StuState)
或
CardInfo(CardNo,StuNo,Balance,CardState)
即把主鍵加入到任一方均可
1:n : 例如UserInfo 和 CardInfo 是在註冊方面是1:n的關係
UserInfo(UserID,Password,UserName,UserLevel)
CardInfo(CardNo,Balance,CardState)
轉換後
CardInfo(CardNo,UserID,Balance,CardState)
即把主鍵放到n方
n:m :例如UserInfo 和 CardInfo 是在充值方面是n:m的關係(一個使用者可以充值多 張卡,一張卡可以被多個使用者充值)
CardInfo(CardNo,Balance,CardState)
UserInfo(UserID,Password,UserName,UserLevel)
轉化後
CardInfo(CardNo,Balance,CardState)
UserInfo(UserID,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、第三範式(不含傳遞依賴)
沒有在此系統中找到合適的例子,舉其他例子說明此問題
Student(StuNo,StuDept,StuDeptTeacher)
stuNo 可以決定stuDept
StuDept可以決定 StuDeptTeacher
這樣就存在傳遞依賴
最佳化後
Student(StuNo,StuDept)
Dept(StuDept,StuDeptTeacher)
4、三範式的關係
滿足第三範式必須滿足第一和第二範式
機房重構之資料庫設計