第五章 資料庫設計
5.2 邏輯層設計書
5.2.1 概念層轉邏輯層設計
由於系統稍嫌龐大,所以只結取出部份要的實體關聯為例;而所 依循的轉換準則如下說明:
1. 移除多對多(M:N)的關係
將多對多的關係轉換成一對多與多對一的關係。
2. 移除複雜的關係
將關聯超過三個實體的以上的關係拆解成多個一對多的關 係,而每個關係只牽涉兩個實體。
3. 移除遞迴的關係
將遞迴關係化為兩個獨立的關係。
4. 移除帶有屬性意義的關係
將此關係轉換成另一個實體。
5. 移除多重值的屬性
將多重值的屬性抽取出來成另一個實體。
6. 重新檢驗一對一(1:1)的關係
檢驗一對一關係,若此二實體代表相同意義,則予以合併。
7. 移除重複的關係
移除意義相同和不需要的的關係,使資料模型簡單化。
5.2.1.1 移除多對多(M:N)的關係
輔助診療
判斷為 開立
症狀 疾病 藥品
一個症狀可能是取多疾病的徵兆,而一個疾病可能有許多症狀;
一個疾病可開立許多藥品,而一種藥品也適用許多疾病。
症狀查疾病
疾病查症狀
疾病查藥品
藥品查疾病 症狀
疾病
藥品 症狀對疾病
疾病對藥品
診療過程
診斷 疾病名稱
診療過程
診療過程中,可以診斷病人同時患不同種類的疾病,而疾病也可 由不同位患者感染。
診斷出
疾病為 病患疾病
診療過程 疾病名稱
5.2.1.2 移除複雜的關係
病歷,基本資料,與看診紀錄
紀錄儲存
病歷
基本資料 看診紀錄
1
1 M
病歷儲存基本資料,也儲存著看診紀錄;將其改為病歷儲存基本 資料,病歷蒐集掛號紀錄。
儲存 蒐集
基本資料
病歷
看診紀錄
5.2.1.3 移除遞迴的關係
於概念層設計中就沒有出現遞迴的關係存在,所以也不需要作移 除修改的動作。
5.2.1.4 移除帶有屬性意義的關係
於概念層設計中就沒有出現帶有屬性的關係存在,所以也不需要 作移除修改的動作。
5.2.1.5 移除多重值的屬性
基本資料
基本資料 特殊疾病
藥物禁忌
基本資料的屬性為病患的姓名、身分證號碼、出生日期、聯絡電 話、聯絡地址等,其中有兩項屬性,特殊疾病和藥物禁忌,屬於多重 值(Multi-value)的屬性,故拆成病患特殊疾病和病患藥物禁忌兩個 實體。
生理疾病 藥物問題
基本資料
病患特殊疾病 病患藥物禁忌
5.2.1.6 重新檢驗一對一(1:1)的關係
病患,病歷與基本資料
留於診所
儲存 病歷
病患 基本資料
病患,病歷,基本資料,三者的關係皆為一對一,且屬於強關係 (Total to Total),在系統中,代表著相同意義,則由病患資料實體 取代三者。
病患資料
看診紀錄與掛號表
當日看診
看診紀錄 掛號表
看診紀錄與掛號表雖然是一對一的關係,但屬弱關係(Partial to Partial),且其中並無誰為弱實體。交易特性為有掛號紀錄但尚未就 診(1:0);掛號紀錄因年代久遠而刪除,看診紀錄仍留存著(0:1)。
所以最後仍保留原來關係。
5.2.1.7 移除重複的關係
病患,看診紀錄,掛號表
看診紀錄 掛號表
病患
接受醫療 登記掛號 1 1
M M
當日看診 1 1
如上圖,「看診紀錄」可由「接受醫療」這關係找到「病患」,
再經由「登記掛號」關係查得「掛號表」;這樣的行為同質於「看診 紀錄」透過「當日看診」查得「掛號表」。理論上是如此,但實質上 則有待商確,如「看診紀錄」透過「病患」查得「掛號表」這條路徑 是經過多對一與一對多的關係,而「當日看診」的關係則是一對一關 係。再者,之間的查詢工作量和耗損時間也差距頗大。
評估過後,仍是依循原設計不異動。
5.2.1.8 最後步驟
轉化成實體表格的工作,共有三大步驟:
1 將強實體轉化為資料表格 病患資料
「病患資料」為強實體,故直接轉化成資料表格。
2 將弱實體轉化為資料表格 病患特殊疾病
「病患特殊疾病」為弱實體,在將屬性轉為欄位的同時,也必須 將關聯上的擁有者實體(owner entity)主鍵加入,成為自己的連外 鍵(foreign key)。
Primary Key 病患身分證字號
PATIENT (p_id, p_name, dob, sex, ins_type_id, tel, addr, sp_name, sp_tel, first_visit_date, last_visit_date) Primary Key (p_id)
病患特殊疾病(病患身分證字號,序號,疾病,備註)
Primary Key 病患身分證字號,序號
Foreign Key 病患身分證字號 reference 病患資料(病患身分 證字號)
PAT_SP_DISEASE (p_id, sn, sick_id, sick_name, ps) Primary Key p_id, sn
Foreign Key p_id references PATIENT(p_id)
病患資料(病患身分證字號,姓名,出生日期,性別,保險種類,
聯絡電話,聯絡地址,緊急連絡人,緊急連絡電話,初診 日,最後就診日)
3 轉化關係
<pk> 看診紀錄明細
看診紀錄編號
3.2 轉化一對多關係