[F] 结构化分析与设计︰资料塑模(下).pptVIP

  • 2
  • 0
  • 约 28页
  • 2016-10-07 发布于重庆
  • 举报

[F] 结构化分析与设计︰资料塑模(下).ppt

[F] 结构化分析与设计︰资料塑模(下)

F、結構化分析與設計: 資料塑模(下) 資料塑模工具︰實體關係圖 實體關係圖之建構 實體關係圖轉關聯表 七個轉換規則 正規化 涵義與資料異常、相依、正規化實務 關聯表資料字典 3. 實體關係圖轉關聯表 當一個E-R Model建立後,可根據7個轉換規則,將ERD轉成關聯表 (Relation;Table) ERD範例 3.1 步驟一 對每個一般性實體建立一個關聯表 屬性︰該實體所有屬性 主鍵︰根據主鍵選取原則, 從準鍵中選擇一個主鍵 以「員工」 實體為例 該實體可被轉成一關聯表 原來實體上之屬性為該關聯表之屬性 可選擇員工編號屬性做為主鍵 員工關聯表: 3.2 步驟二 對每個弱實體類型建立一個關聯表 屬性︰該實體所有屬性+擁有者實體主鍵 主鍵︰擁有者實體主鍵+弱實體不完全鍵 以「眷屬」 實體為例 眷屬關聯表: 3.3 步驟三 對每個多值屬性建立一個關聯表 屬性︰該多值屬性+擁有者實體主鍵 主鍵︰該關聯表所有屬性 以「部門地點」之多值屬性為例 部門地點關聯表: 3.4 步驟四 對每個M:N(多對多關係)建立一關聯表 屬性︰該關係所有屬性+兩實體主鍵 主鍵︰兩外鍵(foreign key)之集合 以「員工」及「專案」兩 實體之「負責」關係為例 負責關聯表: 3.5 步驟五 對每個1:1(一對一關係)之處理 具完全關係的實體為S端,另一端為R端,對S端之關聯表進行擴充(不產生新關聯表) 屬性︰S端屬性+該關係所有屬性+R端主鍵 主鍵︰S端主鍵 以「員工」及「部門」的「管理」關係為例 部門關聯表: 3.6 步驟六 對每個1:N(一對多關係)之處理 對N端之關聯表進行擴充(不產生新關聯表) 屬性︰N端屬性+該關係所有屬性+1端主鍵 主鍵︰N端主鍵 以「員工」及「部門」的「工作」關係為例 員工關聯表: 3.7 步驟七 對每個N元關係建立一個關聯表 每個N元(N?3)關係都轉換為一個關聯表 屬性︰該關係所有屬性+所有參與實體的主鍵 主鍵︰所有外鍵 以下圖之「供應」三元關係為例 供應關聯表: 4. 正規化 4.1 正規化的涵義與資料異常 Normalization:由E. F. Codd所提出 將資料屬性組合成一個具有良好結構的關聯表之過程 關聯表中含有最少的重複狀況 不會發生資料異常(Anomalies),當; 插入關聯表中的資料 刪除關聯表中的資料 修改關聯表中的資料 未正規化之問題 例︰課程收費關聯表(未正規化) (1) 資料重複 Ex: 課程代號MIS200之學費3000元在修課學員之資料中重複出現 (2) 插入異常 Ex: 若要增加一門新課程(例如MIS600),除非至少有一個學員登記,否則此資料將無法加入 未正規化之問題 (Cont.) 例︰課程收費關聯表(未正規化) (3) 刪除重複 Ex: 學員99425不再選擇MIS400課程,由於該課程只有此學員登記,刪除後,便失去該課程收費為6000元的資訊 (4) 更改異常 假設MIS200課程的學費由3000元漲為5000元,那麼在每一個修習MIS200課程的學員資料都必需修改,否則資料便會不一致。 正規化後 將課程收費正規化為2個關聯表 4.2 相依 (1)功能相依 Functional Dependency定義 假設有一關聯表R,而A與B是R的屬性 若B功能相依於A,(寫成R.A?R.B) ?A屬性之值只會對應到一個B屬性值 實例:如右圖 {A,B}?C B?D B?E D?E 相依 (Cont.) (2)完全功能相依與部份功能相依 Full Functional Dependency B完全功能相依於A?屬性B功能相依於複合屬性A,但不功能相依於A的部份屬性 Partial Dependency B部份功能相依於A?屬性B功能相依於複合屬性A的部份屬性 實例:如右圖 C完全功能相依於 主鍵;D部份功能 相依於主鍵{A,B}, 因去除A之後,仍 存在B?D 相依 (Cont.) (3)遞移相依 Transitive Dependency 關聯表中,存在非鍵屬性功能相依於一個或多個非鍵屬性 實例:如下圖 非鍵屬性D?非鍵屬性E 此因B?E可以由B?D及D?E推

文档评论(0)

1亿VIP精品文档

相关文档