[IT計(jì)算機(jī)]醫(yī)院需求分析文檔_第1頁(yè)
[IT計(jì)算機(jī)]醫(yī)院需求分析文檔_第2頁(yè)
[IT計(jì)算機(jī)]醫(yī)院需求分析文檔_第3頁(yè)
[IT計(jì)算機(jī)]醫(yī)院需求分析文檔_第4頁(yè)
[IT計(jì)算機(jī)]醫(yī)院需求分析文檔_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、醫(yī)院管理系統(tǒng)醫(yī)院管理系統(tǒng) 數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書 (內(nèi)部資料 請(qǐng)勿外傳) 編編 寫:寫: 日日 期:期: 檢檢 查:查: 日日 期:期: 審審 核:核: 日日 期:期: 批批 準(zhǔn):準(zhǔn): 日日 期:期: itit 有機(jī)公司有機(jī)公司 版權(quán)所有版權(quán)所有 不得復(fù)制不得復(fù)制 文檔編文檔編 號(hào)號(hào) kf-0418-2012 版版 本本 a1 密密 級(jí)級(jí) 商商 密密 a 項(xiàng)目名項(xiàng)目名 稱稱 醫(yī)院管理系統(tǒng)醫(yī)院管理系統(tǒng) itit 有機(jī)公司軟件有機(jī)公司軟件 開(kāi)發(fā)事業(yè)部開(kāi)發(fā)事業(yè)部 項(xiàng)目來(lái)項(xiàng)目來(lái) 源源 xxxxxxxx 目錄目錄 醫(yī)院管理系統(tǒng)醫(yī)院管理系統(tǒng).1 數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書.1 1引言引言.

2、2 1.1編寫目的.2 1.2術(shù)語(yǔ)表.2 1.3參考資料.3 2數(shù)據(jù)庫(kù)環(huán)境說(shuō)明數(shù)據(jù)庫(kù)環(huán)境說(shuō)明.3 3數(shù)據(jù)庫(kù)的命名規(guī)則數(shù)據(jù)庫(kù)的命名規(guī)則.3 4邏輯設(shè)計(jì)邏輯設(shè)計(jì).3 5物理設(shè)計(jì)物理設(shè)計(jì).4 5.1表匯總.4 5.2表x:xxx 表.4 5.3視圖的設(shè)計(jì).6 5.4存儲(chǔ)過(guò)程、函數(shù)及觸發(fā)器的設(shè)計(jì).6 6安全性設(shè)計(jì)安全性設(shè)計(jì).6 6.1防止用戶直接操作數(shù)據(jù)庫(kù)的方法.6 6.2用戶帳號(hào)密碼的加密方法.7 6.3角色與權(quán)限.7 7優(yōu)化優(yōu)化.7 8數(shù)據(jù)庫(kù)管理與維護(hù)說(shuō)明數(shù)據(jù)庫(kù)管理與維護(hù)說(shuō)明.7 1引言引言 1.1 編寫目編寫目的的 在完成了對(duì)醫(yī)院各個(gè)部門的調(diào)查后,同時(shí)與多名病人進(jìn)行了全面 深入地探討和分析的基礎(chǔ)

3、上,提出了這份系統(tǒng)需求分析報(bào)告. 此需求分析報(bào)告對(duì)醫(yī)院管理利通做了全面細(xì)致的用戶需求分析, 明確所要開(kāi)發(fā)的系統(tǒng)應(yīng)具備的功能、性能與界面,使系統(tǒng)分析人員 及軟件開(kāi)發(fā)人員能清楚地了解用戶的需求,并在此基礎(chǔ)上進(jìn)一步提 出概要設(shè)計(jì)說(shuō)明書和完成后續(xù)設(shè)計(jì)與開(kāi)發(fā)工作。此外,這份需求分 析報(bào)告中介紹了我們系統(tǒng)的框架結(jié)構(gòu),明確了該系統(tǒng)的方向及用途, 是客戶了解我們系統(tǒng)的一份詳細(xì)資料,本分析報(bào)告的預(yù)期讀者為客 戶、業(yè)務(wù)或需求分析人員、測(cè)試人員、用戶文檔編寫者、項(xiàng)目管理 人員。 此分析報(bào)告是整個(gè)系統(tǒng)開(kāi)發(fā)的依據(jù),它對(duì)以后階段的工作起指 導(dǎo)作用。本文也是項(xiàng)目完成后系統(tǒng)驗(yàn)收的依據(jù)。 1.2 術(shù)語(yǔ)表術(shù)語(yǔ)表 序號(hào)術(shù)語(yǔ)或縮略語(yǔ)

4、說(shuō)明性定義 1papatient 病人 2dodoctor 醫(yī)生 3pbpatient-bed 病床 4prpatient-room 病房 5zrzhuyuan-register 住院登記 6trtrue-record 治療記錄 1.3 參考資料參考資料 資料名稱資料名稱作者作者文件編號(hào)、版本文件編號(hào)、版本資料存放地點(diǎn)資料存放地點(diǎn) 數(shù)據(jù)庫(kù)原理及應(yīng)用何玉潔機(jī)械工程出版社圖書館 sql server 使用教程范立南清華大學(xué)出版社圖書館 數(shù)據(jù)庫(kù)應(yīng)用技術(shù)張蒲生機(jī)械工業(yè)出版社圖書館 2.數(shù)據(jù)庫(kù)環(huán)境說(shuō)明數(shù)據(jù)庫(kù)環(huán)境說(shuō)明 2.1 網(wǎng)絡(luò)邏輯結(jié)構(gòu)網(wǎng)絡(luò)邏輯結(jié)構(gòu) 本次設(shè)計(jì)基于的網(wǎng)絡(luò)邏輯結(jié)構(gòu)是客戶/服務(wù)器(c/s)體系

5、結(jié)構(gòu)。 它由三個(gè)主要部分構(gòu)成:數(shù)據(jù)庫(kù)服務(wù)器、客戶應(yīng)用程序和網(wǎng)絡(luò)?;?于 c/s 的住院管理系統(tǒng)的結(jié)構(gòu)示意圖如圖所示 2.2 軟件支撐環(huán)境及開(kāi)發(fā)工具軟件支撐環(huán)境及開(kāi)發(fā)工具 在 windows xp 操作系統(tǒng)下完成 包括應(yīng)用程序的開(kāi)發(fā)、數(shù)據(jù)庫(kù)的設(shè)計(jì)以及設(shè)計(jì)報(bào)告的編寫 應(yīng)用的開(kāi)發(fā)工具有: vc 程序設(shè)計(jì)語(yǔ)言 sql server 2000 microsoft office word 2003 3.數(shù)據(jù)庫(kù)的命名規(guī)則數(shù)據(jù)庫(kù)的命名規(guī)則 3.1.1 此數(shù)據(jù)庫(kù)完全按照 my sql 數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范命名。 表名命名依據(jù)英文單詞全稱。 列名命名依據(jù)整個(gè)列的屬性取相應(yīng)的英文縮寫或拼音縮寫 4.系統(tǒng)需求簡(jiǎn)介系統(tǒng)需求簡(jiǎn)

6、介 4.1.1 總體需求簡(jiǎn)單介紹總體需求簡(jiǎn)單介紹 1 建立對(duì)醫(yī)院全面管理的信息系統(tǒng) 2 對(duì)所有醫(yī)生和病人進(jìn)行管理 3 對(duì)所有部門的詳細(xì)信息進(jìn)行管理 4 對(duì)所有醫(yī)生的詳細(xì)信息進(jìn)行管理 1系統(tǒng)的功能實(shí)現(xiàn)情況系統(tǒng)的功能實(shí)現(xiàn)情況: 用戶可在本系統(tǒng)下實(shí)現(xiàn)各種用戶要求的功能 2系統(tǒng)的安全性系統(tǒng)的安全性: 對(duì)于系統(tǒng)的重要數(shù)據(jù)都有密碼保護(hù),具有一定的安全性 對(duì)用戶提供證書支持(此功能在后續(xù)版本中實(shí)現(xiàn)) 3 3系統(tǒng)的容錯(cuò)性系統(tǒng)的容錯(cuò)性: 用戶輸錯(cuò)數(shù)據(jù)都有提示信息,具有較好的容錯(cuò)性能。 4系統(tǒng)的封閉性系統(tǒng)的封閉性: 用戶的封閉性較好,用戶基本上在提示信息下輸數(shù)據(jù) 4.1.2 數(shù)據(jù)字典數(shù)據(jù)字典 數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng) 數(shù)據(jù)結(jié)

7、構(gòu)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)含義說(shuō)明組成 病人定義了每個(gè)病人的有關(guān)信息 病案號(hào),姓名,性別,地址, 電話號(hào)碼,病房編號(hào),醫(yī)生 編號(hào) 醫(yī)生定義了每個(gè)醫(yī)生的有關(guān)信息 醫(yī)生編號(hào),姓名,性別,職 稱,電話號(hào)碼,部門,月工 資 病房定義了每個(gè)病房的有關(guān)信息 病房編號(hào),地點(diǎn),收費(fèi)標(biāo)準(zhǔn), 所屬部門 病床定義了每個(gè)病床的有關(guān)信息病房編號(hào),病床號(hào) 數(shù)據(jù)項(xiàng)含義說(shuō)明類型長(zhǎng)度取值范圍取值含義 與其他數(shù)據(jù)項(xiàng)的邏輯 關(guān)系 病案號(hào) 唯一標(biāo)識(shí)每 個(gè)病人 字符型15 000000000000000 至 999999999999999 前兩位標(biāo)明 該病人所掛 診的部門, 后十三位按 順序編號(hào) 與住院登記,治療記錄用此數(shù) 據(jù)項(xiàng)相聯(lián)系 醫(yī)生

8、編號(hào) 唯一標(biāo)識(shí)每 個(gè)醫(yī)生 字符型10 0000000001 至 9999999999 前兩位表示 所屬部門, 后八位按順 序編號(hào) 與治療記錄用此數(shù)據(jù)項(xiàng)相聯(lián)系 病房編號(hào) 唯一標(biāo)識(shí)每 個(gè)病房 字符型40001 至 9999 前兩位表示 所屬部門, 后兩位按順 序編號(hào) 與病床,住院登記用此數(shù)據(jù)相 聯(lián)系 床位號(hào) 唯一標(biāo)識(shí)每 個(gè)病床 字符型3001 至 999 前兩位表示 所屬病房, 后兩位按順 序編號(hào) 引用病房主碼做病床表的外碼, 與住院登記用此數(shù)據(jù)相聯(lián)系 日期,病案 號(hào) 唯一標(biāo)識(shí)每 個(gè)住院登記 date,字 符型 10,15 日期的取值范圍, 病案號(hào)引用病人 表的主碼 表示每個(gè)住 院登記的記 錄 聯(lián)

9、系病人和住院登記 病案號(hào),醫(yī) 生編號(hào) 唯一標(biāo)識(shí)每 個(gè)治療記錄 字符型15,10 病案號(hào)引用病人 表的主碼,醫(yī)生 編碼引用醫(yī)生表 的主碼 表示每個(gè)治 療記錄的情 況 聯(lián)系病人和醫(yī)生 住院登記定義了每個(gè)住院登記的有關(guān)信息 日期,病案號(hào),入院日期, 出院日期,病房編號(hào),床位 號(hào),住院費(fèi)用 數(shù)據(jù)流數(shù)據(jù)流 數(shù)據(jù)流:病人診斷情況 說(shuō)明:病人病情的最終結(jié)果 數(shù)據(jù)流來(lái)源:病人 數(shù)據(jù)流去向:醫(yī)生 組成:病人,住院登記,治療記錄 平均流量:每天幾百人 高峰期流量:每天幾千人 數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)存儲(chǔ):病人入院登記 說(shuō)明:記錄病人的基本情況 流入數(shù)據(jù)流:住院登記 流出數(shù)據(jù)流:住院登記 組成:病人,醫(yī)生,住院登記,

10、治療記錄 數(shù)據(jù)量:每天幾百?gòu)?存取頻度:每人一次 存取方式:隨機(jī)存取 處理邏輯處理邏輯 處理名稱:生成病人就醫(yī)情況總表 說(shuō)明:說(shuō)明處理過(guò)程 輸入數(shù)據(jù)流:病人,治療記錄 輸出數(shù)據(jù)流:住院登記 處理邏輯:記錄病人診治記錄,形成治療記錄,匯總成病人住院 登記,再生成總表 平均執(zhí)行頻率:每天幾百次 (說(shuō)明:以上平均頻率需長(zhǎng)期觀察得到) 數(shù)據(jù)流圖圖元數(shù)據(jù)流圖圖元 4.1.3 系統(tǒng)功能設(shè)想系統(tǒng)功能設(shè)想 這里的功能劃分,是根據(jù)第一階段需求調(diào)查基礎(chǔ)上進(jìn)行的初步劃 分。隨著需求調(diào)查的深入,功能模塊隨著對(duì)需求了解的明確得到調(diào) 整。 醫(yī)院管理系統(tǒng)的四個(gè)主要部分,可以將系統(tǒng)應(yīng)用程序劃分為對(duì)應(yīng) 的 4 個(gè)子模塊:包括醫(yī)

11、生管理系統(tǒng),病人管理系統(tǒng),病房管理系統(tǒng),科室 管理系統(tǒng). 根據(jù)各業(yè)務(wù)子系統(tǒng)所包括業(yè)務(wù)內(nèi)容,還可以將各個(gè)子系統(tǒng) 繼續(xù)細(xì)化劃分為更小的功能模塊。劃分的準(zhǔn)則主要遵循模塊的內(nèi)聚 性要求和模塊間的低聚合性。如圖所示表示一個(gè)醫(yī)院管理系統(tǒng)功能 模塊結(jié)構(gòu)圖。 醫(yī)生病人診治 醫(yī)生 編 號(hào) 醫(yī)生 屬 性 病案 號(hào) 病人 屬 性 應(yīng)用系統(tǒng) 醫(yī)生管理病人管理病房管理系統(tǒng)管理 治療病人 信息 醫(yī)生的詳細(xì)信 息 病人的詳細(xì) 信息 各科室醫(yī)生及 病人信息 所有部門科室 信息 住院信息 4.1.4 業(yè)務(wù)流程分析業(yè)務(wù)流程分析 簡(jiǎn)單醫(yī)院流程圖簡(jiǎn)單醫(yī)院流程圖 收 費(fèi) 單 請(qǐng) 住 院 單 請(qǐng) 住院申請(qǐng)病人信息 圖圖 4-1 入院數(shù)據(jù)

12、流圖入院數(shù)據(jù)流圖 病人 查看 信 息 病人病案 病人 分配 床 位 病房信息 產(chǎn)生收費(fèi) 單及住院 單 治療方案出示病歷病人 醫(yī)生 診 斷 病人病歷 病人檢查情況 給出治 療方案 方 案 病人 圖圖 4-2 治療數(shù)據(jù)流圖治療數(shù)據(jù)流圖 申請(qǐng)出院繳費(fèi)單病人 病人病案 收費(fèi)準(zhǔn)則 病歷 歸 檔 費(fèi)用 統(tǒng) 計(jì) 病人 圖圖 4-3 出院數(shù)據(jù)流圖出院數(shù)據(jù)流圖 5.概念設(shè)計(jì)概念設(shè)計(jì) 5.1.1 實(shí)體實(shí)體 病房(病房編號(hào),地點(diǎn),收費(fèi)標(biāo)準(zhǔn),所屬科室) 病床(病房編號(hào),床位號(hào)) 病人(病案號(hào),姓名,性別,地址,電話號(hào)碼,病房編號(hào),醫(yī) 生編號(hào)) 醫(yī)生(醫(yī)生編號(hào),姓名,性別,職稱,電話號(hào)碼,部門,工資) 住院登記(日期,

13、病案號(hào),入院時(shí)間,出院時(shí)間,病房編號(hào), 床位號(hào),住院費(fèi)用) 治療記錄(治療時(shí)間,病案號(hào),醫(yī)生編號(hào),診斷,治療方案) 5.1.2 系統(tǒng)局部系統(tǒng)局部 er 圖圖 n 人 1 人 醫(yī)生病人 治療 診斷 治療方案 圖圖 4-8 病人與醫(yī)生聯(lián)系圖病人與醫(yī)生聯(lián)系圖 治療時(shí)間 n 人 1 人 擁有 病房病床 病房 n 人 1 人 住在 病人 圖圖 4-9 病人與病房及病房與病床聯(lián)系圖病人與病房及病房與病床聯(lián)系圖 n1 病人住院登記 登記 5.1.3 系統(tǒng)全局系統(tǒng)全局 er 圖圖 出院時(shí)間 病房病房 地點(diǎn) 收費(fèi)標(biāo)準(zhǔn) 所屬部門 病房編號(hào) n 1 1 n 1 病房編號(hào) 床位號(hào) 治療時(shí)間 部門 電話號(hào)碼 職稱 性別

14、 姓名 醫(yī)生編號(hào) 圖圖 4-11 醫(yī)院住院數(shù)據(jù)庫(kù)基本醫(yī)院住院數(shù)據(jù)庫(kù)基本 e-r 圖圖 n n 1 n 1 病床病床 病人病人 醫(yī)生醫(yī)生 病案號(hào) 姓名 性別 地址 電話號(hào)碼 病房編號(hào) 病案號(hào) 病房編號(hào) 床位號(hào) 診斷 日期 入院時(shí)間 治療方案 治 療 住在 住院登記住院登記 擁有 登記 分配 醫(yī)生編號(hào) 住院費(fèi)用 工資 6.邏輯設(shè)計(jì)邏輯設(shè)計(jì) 6.1.1 e-r 圖到關(guān)系模式轉(zhuǎn)換圖到關(guān)系模式轉(zhuǎn)換 按照上述的原則,根據(jù)設(shè)計(jì)好的 e-r 圖,可以將其轉(zhuǎn)換為以下 一組關(guān)系模式,其中關(guān)系模式的碼用下橫線標(biāo)出。 將 e-r 圖中 1:1 的聯(lián)系與任意一端所對(duì)應(yīng)的關(guān)系模式合并。 將 e-r 圖中 1:n 的聯(lián)系與

15、 n 端所對(duì)應(yīng)的關(guān)系模式合并,如:將 “病床”這一聯(lián)系并到“病房”關(guān)系模式; 將 e-r 圖中 m:n 的聯(lián)系轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式。 病房(病房(病房編號(hào)病房編號(hào),地點(diǎn),收費(fèi)標(biāo)準(zhǔn),所屬科室),地點(diǎn),收費(fèi)標(biāo)準(zhǔn),所屬科室) 此為病房實(shí)體型所對(duì)應(yīng)的關(guān)系模式。其中病房編號(hào)唯一確定一 個(gè)病房,所以為該關(guān)系模式的碼。 病床(病床(病房編號(hào),床位號(hào)病房編號(hào),床位號(hào)) 此為病床實(shí)體型所對(duì)應(yīng)的關(guān)系模式。由于病房編號(hào)是病房關(guān)系 模式的碼,所以在該關(guān)系模式中病房編號(hào)為外碼。 病人(病人(病案號(hào)病案號(hào),姓名,性別,地址,電話號(hào)碼,病房編號(hào),姓名,性別,地址,電話號(hào)碼,病房編號(hào), 醫(yī)生編號(hào))醫(yī)生編號(hào)) 此為病人實(shí)體

16、型所對(duì)應(yīng)的關(guān)系模式。其中病案號(hào)為此關(guān)系模式 的碼,而病房編號(hào),醫(yī)生編號(hào) 為該關(guān)系模式的外碼。 醫(yī)生(醫(yī)生(醫(yī)生編號(hào)醫(yī)生編號(hào),姓名,性別,職稱,電話號(hào)碼,部門,工,姓名,性別,職稱,電話號(hào)碼,部門,工 資)資) 此為醫(yī)生實(shí)體型所對(duì)應(yīng)的關(guān)系模式。其中醫(yī)生編號(hào)唯一確定一 個(gè)醫(yī)生,所以為該關(guān)系模式的碼。 住院登記(住院登記(日期,病案號(hào)日期,病案號(hào),入院時(shí)間,出院時(shí)間,病房編號(hào),入院時(shí)間,出院時(shí)間,病房編號(hào), 床位號(hào))床位號(hào)) 此為住院登記實(shí)體型所對(duì)應(yīng)的關(guān)系模式。其中,日期和病案號(hào) 共同確定一個(gè)住院登記,病房編號(hào)為該關(guān)系模式的外碼。 治療記錄(治療記錄(治療時(shí)間,病案號(hào),醫(yī)生編號(hào)治療時(shí)間,病案號(hào),醫(yī)生

17、編號(hào),診斷,治療方案),診斷,治療方案) 此為聯(lián)系“治療”所對(duì)應(yīng)的關(guān)系模式。其中,病案號(hào)和醫(yī)生編號(hào) 都是該關(guān)系模式的外碼。 6.1.2 各個(gè)數(shù)據(jù)表的表結(jié)構(gòu)設(shè)計(jì)各個(gè)數(shù)據(jù)表的表結(jié)構(gòu)設(shè)計(jì) patientpatient 的數(shù)據(jù)項(xiàng)描述的數(shù)據(jù)項(xiàng)描述: 數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義類型長(zhǎng)度備注 病案號(hào)病人的編號(hào) (pno) int15對(duì)應(yīng)唯一一個(gè)病人 姓名病人姓名 (pname) char20 性別病人性別 (psex) char2只能取男或 女 地址病人住址 (paddr) varchar100 電話病人電話 (ptel) smallint10 病房編號(hào)病人病房 (pro) char4住院時(shí)由系統(tǒng)分配 醫(yī)生編號(hào)主治

18、醫(yī)生 (ppno) int15 一位病人只能對(duì)應(yīng)一 位主治醫(yī)生 patient-roompatient-room 的數(shù)據(jù)項(xiàng)描述的數(shù)據(jù)項(xiàng)描述: 數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義類型長(zhǎng)度備注 編號(hào)病房編號(hào) (rno) int15病房編號(hào)唯一 地點(diǎn)病房位置 (radd) char20非空 收費(fèi)標(biāo)準(zhǔn)住院收費(fèi) (rcha) int15單位為(元/天) 所屬部門病房所屬部門 (rbu) vaechar20一間病房只能屬于一 個(gè)部門 patient-bedpatient-bed 的數(shù)據(jù)項(xiàng)描述的數(shù)據(jù)項(xiàng)描述: 數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義類型長(zhǎng)度備注 病房編號(hào)病房編號(hào) (rno) int15唯一確定,引用病房 的外碼 床位號(hào)病房床位

19、(rbe) int15唯一確定,一個(gè)病房 一般有 1-3 個(gè)床位 doctordoctor 的數(shù)據(jù)項(xiàng)描述:的數(shù)據(jù)項(xiàng)描述: 數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義類型長(zhǎng)度備注 編號(hào)醫(yī)生編號(hào) (dno) int15對(duì)應(yīng)唯一一個(gè)醫(yī)生 姓名醫(yī)生姓名 (dname) char20非空 性別醫(yī)生性別 (dsex) char2只能取男或 女 職稱醫(yī)生職稱 (dzhi) varchar20有可能有多個(gè)職稱 電話醫(yī)生電話 (dtel) smallint10 部門所屬部門 (dbu) varchar20 工資醫(yī)生工資 (dsa) int20 zhuyuan-registerzhuyuan-register 的數(shù)據(jù)項(xiàng)描述:的數(shù)據(jù)項(xiàng)描述

20、: 數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)項(xiàng)含義類型類型長(zhǎng)度長(zhǎng)度備注備注 日期登記日期 (rad) char10唯一標(biāo)識(shí) 病案號(hào)病案號(hào) (pno) int15唯一標(biāo)識(shí),引用病人 外碼 入院時(shí)間入院時(shí)間 (iti) char10 出院時(shí)間出院時(shí)間 (gti) char10必須在入院時(shí)間之后 病房編號(hào)病房號(hào) (rno) int15引用病房表的外碼 病床編號(hào)病床號(hào) (rbe0 int15引用病床表的外碼 true-recordtrue-record 的數(shù)據(jù)項(xiàng)描述的數(shù)據(jù)項(xiàng)描述: 數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)項(xiàng)含義類型類型長(zhǎng)度長(zhǎng)度備注備注 時(shí)間治療日期 (time) char8入院和出院時(shí)間之間, 唯一標(biāo)識(shí)

21、病案號(hào)病案號(hào) (pno) int15唯一標(biāo)識(shí),引用病人 外碼 醫(yī)生編號(hào)主治醫(yī)生 (dno) int15唯一標(biāo)志,引用醫(yī)生 外碼 診斷病情診斷 (tre) varchar50醫(yī)生診斷結(jié)果 治療方案治療方案 (mea) varchar200醫(yī)生給出的治療方案 7、物理設(shè)計(jì)、物理設(shè)計(jì) 7.1 表匯總 表名表名功能說(shuō)明功能說(shuō)明 表 patient病人表,屬性列有病案號(hào)、姓名、性別、地址、電話、病房編號(hào)、醫(yī)生 編號(hào)。主碼是病案號(hào),外碼是醫(yī)生編號(hào)。病人可以查看關(guān)于自己的屬性 列及住院信息。 表 doctor 醫(yī)生表,屬性有醫(yī)生編號(hào)、姓名、性別、職稱、電話號(hào)碼、部門。醫(yī)生 編號(hào)是主碼。醫(yī)生可以查看自己的屬性

22、列及病人病情狀況。 表 patient-room 病房表,屬性列有病房編號(hào)、地點(diǎn)、收費(fèi)標(biāo)準(zhǔn)、所屬科室。病房編號(hào)是 主碼。病房表的創(chuàng)建便于醫(yī)生查看治療病人的住院地點(diǎn)、便于病人明確 自己的收費(fèi)標(biāo)準(zhǔn)。 表 patient-bed 病床表,主碼為病房編號(hào)和床位號(hào)。外碼為病房編號(hào)。此表方便病房管 理員進(jìn)一步掌握各病人的詳細(xì)床位信息。 表 true-register治療記錄表,治療時(shí)間、病案號(hào)、醫(yī)生編號(hào)共同為主碼。此表由病房管 理員對(duì)于每一位住院的病人進(jìn)行分配登記。醫(yī)生查詢此表可以了解所醫(yī) 治病人的診斷信息并提出治療方案。 表 zhuyuan-register 住院登記表,主碼為日期和病案號(hào),屬性列有入院

23、時(shí)間、出院時(shí)間、病 房編號(hào)、床位號(hào)。外碼為病案號(hào)、病房編號(hào)、床位號(hào)。 7.27.2 表表 7.2.17.2.1 表名 patientpatient 數(shù)據(jù)庫(kù)用戶 病人 主鍵病案號(hào) 其他排序字段病人姓名,性別,地址,電話號(hào)碼,病房編號(hào),醫(yī)生編號(hào) 索引字段病案號(hào) 序號(hào)字段名稱數(shù)據(jù)類型(精度 范圍) 允許 為空 y/n 唯一 y/n 區(qū)別度默認(rèn)值約束條件/說(shuō)明 1pnoint(15)ny 高主碼 2pnamechar(20)nn 中 3psexchar(2)yn 低男必須是“男”或 者“女” 4paddvarchar(100)yn 中 5ptelsmallint(10)yn 中 6prochar(4)

24、nn 低 7ppnoint(15)yn 低一位病人只能對(duì) 應(yīng)一位主治醫(yī)生 的醫(yī)生編號(hào)(引 用醫(yī)生表中的醫(yī) 生編號(hào)外碼) mysql 腳本 create table( pno int(15) primary key not null, pname char(20) , psex char(2) default 男 check(男,女), padd varchar(100), pro char(4), ppno int(15) foreign key) 7.2.27.2.2 表名 doctordoctor 數(shù)據(jù)庫(kù)用戶醫(yī)生 主鍵醫(yī)生編號(hào) 其他排序字段醫(yī)生姓名,性別,職稱,電話,部門,工資 索引字段醫(yī)

25、生編號(hào) 序號(hào)字段名 稱 數(shù)據(jù)類型 (精度范圍) 允 許 為 空 y/n 唯一 y/n 區(qū)別 度 默認(rèn) 值 約束條件/說(shuō)明 1dnoint(15)ny 高主碼 2dnamechar(20)nn 中 3dsexchar(2)yn 中男必須是“男”或 者“女” 4dzhivarchar(20 ) nn 低 5dtelsmallint(10)yn 中 6dbuvarchar(20 ) nn 低 7dsaint(20)yn 低 mysql 腳本 create table( dno int(15) primary key, dname char(20), dsex char(2) default 男 ch

26、eck(男,女), dzhi varchar(20), dtel smallint(10), dbu varchar(20), dsa int(20), ) 7.2.37.2.3 表名 proom 數(shù)據(jù)庫(kù)用戶病房管理員、病人 主鍵病房編號(hào) 其他排序字段地點(diǎn),收費(fèi)標(biāo)準(zhǔn),所屬部門 索引字段病房編號(hào) 序號(hào)字段名稱數(shù)據(jù)類型 (精度范 圍) 允許 為空 y/n 唯一 y/n 區(qū)別 度 默認(rèn) 值 約束條件/說(shuō)明 1rnoint(15)ny 高主碼 2raddchar(20)nn 中非空 3 rchaint(15) yn 低 4 rbum varchar( 20) nn 低 mysql 腳本 create

27、table proom (rno int(15) primary key, radd char(20) not null, rcha int(15), rbum varchar(20), ) 7.2.47.2.4 表名 pbedpbed 數(shù)據(jù)庫(kù)用戶病房管理員 主鍵病房編號(hào)和床位號(hào) 序號(hào)字段名 稱 數(shù)據(jù)類型 (精度范 圍) 允許 為空 y/n 唯一 y/n 區(qū)別 度 默認(rèn) 值 約束條件/說(shuō)明 1 rnoint(15) ny 高主碼,引用 proom 的外碼 2 rbeint(15) ny 高主碼 mysql 腳本 create table pbed (rno int(15) references

28、 proom(床位號(hào)) rbe int(15) primary key) 7.2.57.2.5 表名 zhuyuan-register 數(shù)據(jù)庫(kù)用戶病房管理員、病人 主鍵日期和病案號(hào) 序號(hào)字段名 稱 數(shù)據(jù)類型 (精度范 圍) 允許 為空 y/n 唯一 y/n 區(qū)別 度 默認(rèn) 值 約束條件/說(shuō)明 1rda char(10) ny 高主碼 2pno int(15) ny 高主空 ,引用病 人表的外碼 3iti char(10) nn 低 4gti char(10) nn 低 5rno int(15) yn 低 引用病房表的 外碼 6rbe int(15) yn 引用病床表的 外碼 mysql 腳本

29、create table zhuyuan-register (rda char(10) primary key, pno int(15) references patient(pno) not null, iti char(10), gti char(10), rno int(15) references proom(rno), rbe int(15) references pbed(rbe), ) 7.2.67.2.6 表名 true-record 數(shù)據(jù)庫(kù)用戶病房管理員、醫(yī)生 主鍵治療時(shí)間,病案號(hào)和醫(yī)生編號(hào) 序號(hào)字段名 稱 數(shù)據(jù)類型(精 度范圍) 允許 為空 唯 一 區(qū)別 度 默認(rèn) 值 約束

30、條件/說(shuō)明 y/ny/ n 1 timechar(8) ny 高主碼 2 pnoint(15) yy 高主碼,引用病 人表的外碼 3 dnoint(15) yy 高主碼,引用醫(yī) 生表的外碼 4 trevarchar(50) yn 低 5 dnovarchar(200) yn 低 mysql 腳本 create table true-record (time char(8) primary key, pno int(15) references patient(pno), dno int(15) references doctor(dno), tre varchar(50), mea varch

31、ar(200) ) 7.1.37.1.3 視圖的設(shè)計(jì)視圖的設(shè)計(jì) 病人能看到的視圖病人能看到的視圖 每個(gè)視圖采用一張表格進(jìn)行描述,其格式如下: 數(shù)據(jù)庫(kù)編號(hào):kf-001-2012 視圖編號(hào):p-001-2012 視圖英文名稱:patient 視圖中文名稱:病歷 視圖說(shuō)明:病人可以看到入院出院日期,就醫(yī)花費(fèi),且只能看到自 己的部分 create view v_patient as select patient.pno,pname,rdate,ruyuandate,chuyuandate,rno,bedno,pafee from patient join zhuyuan-record on pati

32、ent.pno=zhuyuan-record.pno 醫(yī)生能看到的視圖醫(yī)生能看到的視圖 數(shù)據(jù)庫(kù)編號(hào):kf-001-2012 視圖編號(hào):d-002-2012 視圖英文名稱:doctor 視圖中文名稱:醫(yī)生 視圖說(shuō)明:醫(yī)生可以看到工資,負(fù)責(zé)的病人的治療概況,且只能看 到自己的部分 create view v_doctor as select doctor.dno,dname,dkeshi,dpay,pno,pail,zhiliaofangan from doctor join treat-gister on doctor.dno=treat-gister.dno 系統(tǒng)管理員可以看到的視圖系統(tǒng)管理員

33、可以看到的視圖 數(shù)據(jù)庫(kù)編號(hào):kf-001-2012 視圖編號(hào):all-003-2012 視圖英文名稱:all-data 視圖中文名稱:全部數(shù)據(jù) 視圖說(shuō)明:管理員可以看到醫(yī)生病人的對(duì)應(yīng)關(guān)系,病人繳納費(fèi)用, 住院時(shí)間,所有醫(yī)生工資, create view v_all_data as select patient.pno,pname,doctor.dno,dname,pafee,dpay,dkeshi,zhuyuandate,chu yuandate,paill,date from patient join zhuyuan-record on patient.pno=zhuyuan-record.

34、pno join treat-gister on patient.pno=treat-gister.pno join doctor on treat- gister.dno=doctor.dno 7.1.47.1.4 觸發(fā)器的設(shè)計(jì)及函數(shù)設(shè)計(jì)觸發(fā)器的設(shè)計(jì)及函數(shù)設(shè)計(jì) 1.錄用(新鍵入)的醫(yī)生的年齡必須在五十歲以下 crate trigger p_age on 醫(yī)生 for insert,update as if exists(select * from inserted where page50) begin print醫(yī)生年齡應(yīng)小于五十 rollback end 2.醫(yī)生的最低工資應(yīng)該大于 13

35、00 元 crate trigger doc_salary1 on 醫(yī)生 for insert,update as if exists (select * from inserted where 最低工資23) begin print病房號(hào)應(yīng)小于 23 rollback end end 8 8 安全設(shè)計(jì)安全設(shè)計(jì) 8.1.18.1.1 安全防護(hù)安全防護(hù) 對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)敏感信息: 針對(duì)本系統(tǒng)我們對(duì)用戶密碼進(jìn)行加密,以保證各級(jí)用戶對(duì)系統(tǒng) 訪問(wèn)的安全性。生成的口令不可逆轉(zhuǎn)(用 md5 加密是一種 32 位字 符的加密方法) 。輸入的口令不應(yīng)顯示在顯示終端上。 數(shù)據(jù)信息的保存: 利用 rdbms 的服務(wù)器

36、穩(wěn)定運(yùn)行實(shí)現(xiàn)各種信息的儲(chǔ)存、控制及 調(diào)節(jié)備份、恢復(fù)等日常的維護(hù)管理工作。在軟件園后期的項(xiàng)目中建 立異地備份服務(wù)器后備份數(shù)據(jù)進(jìn)行異地保存。 8.1.28.1.2 操作跟蹤操作跟蹤 針對(duì)系統(tǒng)運(yùn)行出現(xiàn)的異常,跟蹤調(diào)查出現(xiàn)異常的情況,了解操 作意圖,有針對(duì)性的解決問(wèn)題。 系統(tǒng)日志,便于查看系統(tǒng)的運(yùn)行情況。 操作日志, 提供用戶在系統(tǒng)中增加、修改系統(tǒng)數(shù)據(jù)信息時(shí)記錄 日志。用于跟蹤用戶的操作,了解信息的變更,在需要時(shí)對(duì)事情進(jìn) 行調(diào)查 8.1.38.1.3 訪問(wèn)控制訪問(wèn)控制 頁(yè)面不可直接訪問(wèn),防止黑客對(duì)頁(yè)面篡改。頁(yè)面訪問(wèn)通過(guò)連接動(dòng) 作驅(qū)動(dòng),訪問(wèn)時(shí)作權(quán)限檢查。有效防止用戶通過(guò)地址欄輸入地址對(duì) 信息非法訪問(wèn)。系

37、統(tǒng)在頁(yè)面執(zhí)行過(guò)一次后再次訪問(wèn)通過(guò)緩沖工作區(qū) 執(zhí)行,對(duì)頁(yè)面屏蔽。 易用性 醫(yī)院管理系統(tǒng)要簡(jiǎn)單、易用,具有清晰的導(dǎo)航功能,使操作者快 速找到自己想要執(zhí)行的操作頁(yè)面。 醫(yī)院管理系統(tǒng)要保證一個(gè)非計(jì)算機(jī)專業(yè)的用戶,通過(guò)自己閱讀用 戶手冊(cè),可以使用此系統(tǒng)。 8.28.2 角色與權(quán)限角色與權(quán)限 角色或者執(zhí)行者(actor)是指與系統(tǒng)產(chǎn)生交互的外部用戶或者 外部系統(tǒng),本系統(tǒng)主要包括病人,醫(yī)生,病房管理員和系統(tǒng)管理員 等角色(actor) 。 8.2.1 角色管理角色管理 可以對(duì)單個(gè)角色進(jìn)行添加、修改、刪除和查詢等維護(hù)操作,可以 針對(duì)不同的角色選擇對(duì)應(yīng)的權(quán)限進(jìn)行設(shè)置。 用例描述:角色管理 執(zhí)行者:系統(tǒng)管理員 前

38、置條件:系統(tǒng)管理員已登錄系統(tǒng) 后置條件:角色信息維護(hù)后,相應(yīng)信息記錄到數(shù)據(jù)庫(kù)中,以供帳號(hào) 授權(quán)使用 基本路徑: a) 進(jìn)入角色管理界面,顯示目前的角色列表; b) 點(diǎn)擊不同的角色,可以顯示這個(gè)角色的信息以及相應(yīng)權(quán)限,必要 時(shí)可以修改其權(quán)限; c) 可以增加、修改、刪除角色。 8.2.28.2.2 角色創(chuàng)建角色創(chuàng)建 角色角色可以訪問(wèn)的表與列可以訪問(wèn)的表與列操作權(quán)限操作權(quán)限 patient 表查詢 patient-room 表查詢 zhouyuan-record 表查詢 病人 cure-gister 表查詢 doctor 表查詢醫(yī)生 cure-gister 表查詢 proom 表查詢,插入, 刪除

39、 patient 表查詢,插入, 刪除 patient-bed 表查詢,修改 zhuyuan-record 表查詢,修改 病房管理員 cure-gister 表查詢,插入, 修改,刪除 patient-room 表查詢,插入, 修改,刪除 doctor 表查詢,插入, 修改,刪除系統(tǒng)管理員 patient 表查詢,插入, 修改,刪除 patient-bed 表查詢,插入, 修改,刪除 zhuyuan-record 表查詢,插入, 修改,刪除 cure-gister 表查詢,插入, 修改,刪除 8.38.3 應(yīng)用級(jí)用戶設(shè)計(jì)應(yīng)用級(jí)用戶設(shè)計(jì) 應(yīng)用級(jí)的用戶賬號(hào)密碼不能與數(shù)據(jù)庫(kù)想通,防止用戶直接操作 數(shù)

40、據(jù)庫(kù)。用戶只能用賬號(hào)登錄到應(yīng)用軟件,通過(guò)應(yīng)用軟件訪問(wèn)數(shù)據(jù) 庫(kù),而沒(méi)用其他途徑操作數(shù)據(jù)庫(kù)。 8.3.18.3.1 登錄管理登錄管理 登錄管理是負(fù)責(zé)所有用戶的登錄,用戶要登錄到綜合信息管 理平臺(tái)必須經(jīng)過(guò)登錄界面,輸入自己的用戶名和密碼,通過(guò)判斷 這個(gè)用戶的權(quán)限信息,不同的登錄人可能具有不同的權(quán)限,根據(jù) 不同的權(quán)限現(xiàn)實(shí)不同的功能。 8.3.2 用戶管理用戶管理 當(dāng)進(jìn)入用戶管理模塊時(shí),在用戶管理中可以增加或刪除用 戶,編輯用戶名,用戶密碼,修改用戶權(quán)限,具有不同權(quán)限的用 戶進(jìn)入系統(tǒng)主界面,界面左側(cè)欄中的圖標(biāo)數(shù)有所不同,具體的面 標(biāo)與用戶所具有的權(quán)限對(duì)應(yīng)。 8.3.3 日志查詢?nèi)罩静樵?實(shí)現(xiàn)對(duì)用戶的所有

41、操作過(guò)程的歷史日志查詢。查詢結(jié)果以列 表方式顯示,可以根據(jù)查詢條件進(jìn)行過(guò)濾。 8.48.4 用戶密碼管理用戶密碼管理 用戶賬號(hào)的密碼必須進(jìn)行加密處理,確保在任何地方的查詢都 不能出現(xiàn)密碼的明文。 用戶帳號(hào)采用 md5 進(jìn)行數(shù)據(jù)加密后再錄入數(shù)據(jù)庫(kù),以防止任何地 方密碼的安全性要求。 8.58.5 防止用戶直接操作數(shù)據(jù)庫(kù)的方法防止用戶直接操作數(shù)據(jù)庫(kù)的方法 建立應(yīng)用程序角色,給角色相應(yīng)的權(quán)限,然后應(yīng)用程序以各自 的用戶登錄就可以了(scott 是一個(gè)系統(tǒng)已經(jīng)新建好的普通用戶用戶 名 scott,密碼默認(rèn) tiger,默認(rèn)狀態(tài)是被定,dba 用戶執(zhí)行 alter user scott account

42、unlock;可以解鎖登陸) 8.6 性能測(cè)試性能測(cè)試 8.6.1 性能需求性能需求 根據(jù)用戶對(duì)本系統(tǒng)的要求,確定系統(tǒng)在響應(yīng)時(shí)間、可靠性、 安全性等方面有較高的性能要求。 8.6.2 界面需求界面需求 系統(tǒng)的界面要求如下: )頁(yè)面內(nèi)容:主題突出,站點(diǎn)定義、術(shù)語(yǔ)和行文格式統(tǒng) 一、規(guī)范、明確,欄目、菜單設(shè)置和布局合理,傳遞的信息 準(zhǔn)確、及時(shí)。內(nèi)容豐富,文字準(zhǔn)確,語(yǔ)句通順;專用術(shù)語(yǔ)規(guī) 范,行文格式統(tǒng)一規(guī)范。 )導(dǎo)航結(jié)構(gòu):頁(yè)面具有明確的導(dǎo)航指示,且便于理解,方 便用戶使用。 )技術(shù)環(huán)境:頁(yè)面大小適當(dāng),能用各種常用瀏覽器以不同 分辨率瀏覽;無(wú)錯(cuò)誤鏈接和空鏈接;采用 css 處理,控制字體大 小和版面布局

43、。 )藝術(shù)風(fēng)格:界面、版面形象清新悅目、布局合理,字號(hào)大 小適宜、字體選擇合理,前后一致,美觀大方;動(dòng)與靜搭配恰當(dāng),動(dòng) 靜效果好;色彩和諧自然,與主題內(nèi)容相協(xié)調(diào)。 8.6.3 響應(yīng)時(shí)間需求響應(yīng)時(shí)間需求 無(wú)論是客戶端和管理端,當(dāng)用戶登錄,進(jìn)行任何操作的時(shí)候, 系統(tǒng)應(yīng)該及時(shí)的進(jìn)行反應(yīng),反應(yīng)的時(shí)間在 5 秒以內(nèi)。系統(tǒng)應(yīng)能監(jiān) 測(cè)出各種非正常情況,如與設(shè)備的通信中斷,無(wú)法連接數(shù)據(jù)庫(kù)服 務(wù)器等,避免出現(xiàn)長(zhǎng)時(shí)間等待甚至無(wú)響應(yīng)。 8.6.4 可靠性需求可靠性需求 系統(tǒng)應(yīng)保證 7x24 內(nèi)不當(dāng)機(jī),保證 20 人可以同時(shí)在客戶端登 錄,系統(tǒng)正常運(yùn)行,正確提示相關(guān)內(nèi)容。 8.6.5 開(kāi)放性需求開(kāi)放性需求 系統(tǒng)應(yīng)具有

44、十分的靈活性,以適應(yīng)將來(lái)功能擴(kuò)展的需求。 8.6.6 可擴(kuò)展性需求可擴(kuò)展性需求 系統(tǒng)設(shè)計(jì)要求能夠體現(xiàn)擴(kuò)展性要求,以適應(yīng)將來(lái)功能擴(kuò)展的需求。 8.6.7 系統(tǒng)安全性需求系統(tǒng)安全性需求 系統(tǒng)有嚴(yán)格的權(quán)限管理功能,各功能模塊需有相應(yīng)的權(quán)限方能進(jìn) 入。系統(tǒng)需能夠防止各類誤操作可能造成的數(shù)據(jù)丟失,破壞,同時(shí) 防止用戶非法獲取網(wǎng)頁(yè)以及內(nèi)容。 8.78.7 優(yōu)化優(yōu)化 數(shù)據(jù)庫(kù)優(yōu)化的目標(biāo)無(wú)非是避免磁盤 i/o 瓶頸、減少 cpu 利用率 和減少資源競(jìng)爭(zhēng)。 8.7.1 基于第三范式的基本表設(shè)計(jì)基于第三范式的基本表設(shè)計(jì) 在基于表驅(qū)動(dòng)的信息管理系統(tǒng)(mis)中,基本表的設(shè)計(jì)規(guī)范 是第三范式。第三范式的基本特征是非主屬

45、性只依賴于主屬性?;?于第三范式的數(shù)據(jù)庫(kù)表設(shè)計(jì)具有很多優(yōu)點(diǎn): 1.消除了冗余數(shù)據(jù),節(jié)省了磁盤存儲(chǔ)空間; 2.有良好的數(shù)據(jù)完整性限制,即基于主外碼的參照完整限制和 基于主碼的實(shí)體完整性限制,這使得數(shù)據(jù)容易維護(hù),也容易移 植和更新; 3.數(shù)據(jù)的可逆性好,在做連接(join)查詢或者合并表時(shí)不遺 漏、也不重復(fù); 4.因消除了冗余數(shù)據(jù)(冗余列),在查詢(select)時(shí)每個(gè)數(shù)據(jù) 頁(yè)存的數(shù)據(jù)行就多,這樣就有效地減少了邏輯 i/o,每個(gè) cash 存的頁(yè)面就多,也減少物理 i/o; 5.對(duì)大多數(shù)事務(wù)(transaction)而言,運(yùn)行性能好; 6.物理設(shè)計(jì)(physical design)的機(jī)動(dòng)性較大,能

46、滿足日益增長(zhǎng)的 用戶需求。 在基本表設(shè)計(jì)中,表的主碼、外碼、索引設(shè)計(jì)占有非常重要的 地位,現(xiàn)在從系統(tǒng)數(shù)據(jù)庫(kù)優(yōu)化角度討論這些基本概念及其重要意義: (1)主碼(primary key): 主碼被用于復(fù)雜的 sql 語(yǔ)句時(shí),頻繁地在數(shù)據(jù)訪問(wèn)中被用到。 一個(gè)表只有一個(gè)主碼。主碼應(yīng)該有固定值(不能為 null 或缺省值, 要有相對(duì)穩(wěn)定性),不含代碼信息,易訪問(wèn)。 把常用的列作為主碼才有意義。短主碼最佳(小于 25bytes), 主碼的長(zhǎng)短影響索引的大小,索引的大小影響索引頁(yè)的大小,從而 影響磁盤 i/o。 主碼分為自然主碼和人為主碼。自然主碼由實(shí)體的屬性構(gòu)成, 自然主碼可以是復(fù)合性的,在形成復(fù)合主碼時(shí)

47、,主碼列不能太多, 復(fù)合主碼使得 join 操作復(fù)雜化、也增加了外碼表的大小。人為主碼 是在沒(méi)有合適的自然屬性碼、或自然屬性復(fù)雜或靈敏度高時(shí),人為 形成的。人為主碼一般是整型值(滿足最小化要求),沒(méi)有實(shí)際意 義,也略微增加了表的大??;但減少了把它作為外碼的表的大小。 (2)外碼(foreign key): 外碼的作用是建立關(guān)系型數(shù)據(jù)庫(kù)中表之間的關(guān)系(參照完整性) ,主碼只能從獨(dú)立的實(shí)體遷移到非獨(dú)立的實(shí)體,成為后者的一個(gè)屬 性,被稱為外碼。 (3)索引(index): 利用索引優(yōu)化系統(tǒng)性能是顯而易見(jiàn)的,主要有以下幾個(gè)方面: 1.對(duì)所有常用于查詢中的 where 子句的列和所有用于排序的 列創(chuàng)建索

48、引,可以避免整表掃描或訪問(wèn),在不改變表的物 理結(jié)構(gòu)的情況下,直接訪問(wèn)特定的數(shù)據(jù)列,從而減少數(shù)據(jù) 存取時(shí)間; 2.利用索引可以優(yōu)化或排除耗時(shí)的分類操作,把數(shù)據(jù)分散到不 同的頁(yè)面上,就分散了插入的數(shù)據(jù); 3.主碼自動(dòng)建立了唯一索引,因此唯一索引也能確保數(shù)據(jù)的唯 一性(即實(shí)體完整性); 4.索引碼越小,定位就越直接; 5.新建的索引效能最好,因此定期更新索引非常必要。 索引也有代價(jià): 有空間開(kāi)銷,建立它也要花費(fèi)時(shí)間,在進(jìn)行 insert、delete 和 update*作時(shí),也有維護(hù)代價(jià)。 索引有兩種:聚族索引和非聚族索引。 一個(gè)表只能有一個(gè)聚族索引,可有多個(gè)非聚族索引。使用聚 族索引查詢數(shù)據(jù)要比使

49、用非聚族索引快。在建索引前,應(yīng)利用數(shù) 據(jù)庫(kù)系統(tǒng)函數(shù)估算索引的大小。 聚族索引(clustered index):聚族索引的數(shù)據(jù)頁(yè)按物理有序 儲(chǔ)存,占用空間小。 選擇策略是被用于 where 子句的列:包括范圍查詢、模糊查詢 或高度重復(fù)的列(連續(xù)磁盤掃描);被用于連接 join 操作的列;被 用于 order by 和 group by 子句的列。聚族索引不利于插入操作, 另外沒(méi)有必要用主碼建聚族索引。 非聚族索引(nonclustered index):與聚族索引相比,占用空 間大,而且效率低。選擇策略是,被用于 where 子句的列:包括范 圍查詢、模糊查詢(在沒(méi)有聚族索引時(shí))、主碼或外碼列

50、、點(diǎn)(指 針類)或小范圍(返回的結(jié)果域小于整表數(shù)據(jù)的 20%)查詢;被用 于連接 join 操作的列、主碼列(范圍查詢);被用于 order by 和 group by 子句的列;需要被覆蓋的列。對(duì)只讀表建多個(gè)非聚族索引 有利。 索引也有其弊端,一是創(chuàng)建索引要耗費(fèi)時(shí)間,二是索引要占有 大量磁盤空間,三是增加了維護(hù)代價(jià)(在修改帶索引的數(shù)據(jù)列時(shí)索 引會(huì)減緩修改速度)。 (4)鎖:鎖是并行處理的重要機(jī)制,能保持?jǐn)?shù)據(jù)并發(fā)的一致性, 即按事務(wù)進(jìn)行處理;系統(tǒng)利用鎖,保證數(shù)據(jù)完整性。因此,我們避 免不了死鎖,但在設(shè)計(jì)時(shí)可以充分考慮如何避免長(zhǎng)事務(wù),減少排它 鎖時(shí)間,減少在事務(wù)中與用戶的交互,杜絕讓用戶控制事務(wù)

51、的長(zhǎng)短; 要避免批量數(shù)據(jù)同時(shí)執(zhí)行,尤其是耗時(shí)并用到相同的數(shù)據(jù)表。鎖的 征用:一個(gè)表同時(shí)只能有一個(gè)排它鎖,一個(gè)用戶用時(shí),其它用戶在 等待。若用戶數(shù)增加,則 server 的性能下降,出現(xiàn)“假死”現(xiàn)象。如 何避免死鎖呢?從頁(yè)級(jí)鎖到行級(jí)鎖,減少了鎖征用;給小表增加無(wú) 效記錄,從頁(yè)級(jí)鎖到行級(jí)鎖沒(méi)有影響,若在同一頁(yè)內(nèi)競(jìng)爭(zhēng)有影響, 可選擇合適的聚族索引把數(shù)據(jù)分配到不同的頁(yè)面;創(chuàng)建冗余表;保 持事務(wù)簡(jiǎn)短;同一批處理應(yīng)該沒(méi)有網(wǎng)絡(luò)交互。 (5)查詢優(yōu)化規(guī)則: 在訪問(wèn)數(shù)據(jù)庫(kù)表的數(shù)據(jù)(access data)時(shí),要盡可能避免排序 (sort)、連接(join)和相關(guān)子查詢*作。經(jīng)驗(yàn)告訴我們,在優(yōu)化查 詢時(shí),必須做到

52、: 盡可能少的行; 避免排序或?yàn)楸M可能少的行排序,若要做大量數(shù)據(jù)排序,最好 將相關(guān)數(shù)據(jù)放在臨時(shí)表中*作;用簡(jiǎn)單的碼(列)排序,如整型或短 字符串排序; 避免表內(nèi)的相關(guān)子查詢; 避免在 where 子句中使用復(fù)雜的表達(dá)式或非起始的子字符串、 用長(zhǎng)字符串連接; 在 where 子句中多使用“與”(and)連接,少使用“或”(or)連 接; 利用臨時(shí)數(shù)據(jù)庫(kù)。在查詢多表、有多個(gè)連接、查詢復(fù)雜、數(shù)據(jù) 要過(guò)濾時(shí),可以建臨時(shí)表(索引)以減少 i/o。但缺點(diǎn)是增加了空間 開(kāi)銷。 除非每個(gè)列都有索引支持,否則在有連接的查詢時(shí)分別找出兩 個(gè)動(dòng)態(tài)索引,放在工作表中重新排序。 8.7.3 基本表擴(kuò)展設(shè)計(jì)基本表擴(kuò)展設(shè)計(jì)

53、 基于第三范式設(shè)計(jì)的庫(kù)表雖然有其優(yōu)越性,然而在實(shí)際應(yīng)用中 有時(shí)不利于系統(tǒng)運(yùn)行性能的優(yōu)化:如需要部分?jǐn)?shù)據(jù)時(shí)而要掃描整表, 許多過(guò)程同時(shí)競(jìng)爭(zhēng)同一數(shù)據(jù),反復(fù)用相同行計(jì)算相同的結(jié)果,過(guò)程 從多表獲取數(shù)據(jù)時(shí)引發(fā)大量的連接操作,當(dāng)數(shù)據(jù)來(lái)源于多表時(shí)的連 接操作;這都消耗了磁盤 i/o 和 cpu 時(shí)間。 尤其在遇到下列情形時(shí),要對(duì)基本表進(jìn)行擴(kuò)展設(shè)計(jì):許多過(guò)程 要頻繁訪問(wèn)一個(gè)表、子集數(shù)據(jù)訪問(wèn)、重復(fù)計(jì)算和冗余數(shù)據(jù),有時(shí)用 戶要求一些過(guò)程優(yōu)先或低的響應(yīng)時(shí)間。 根據(jù)訪問(wèn)的頻繁程度對(duì)相關(guān)表進(jìn)行分割處理、存儲(chǔ)冗余數(shù)據(jù)、 存儲(chǔ)衍生列、合并相關(guān)表處理,這些都是克服這些不利因素和優(yōu)化 系統(tǒng)運(yùn)行的有效途徑。 8.7.4 存儲(chǔ)衍生數(shù)據(jù)存儲(chǔ)衍生數(shù)據(jù) 對(duì)一些要做大量重復(fù)性計(jì)算的過(guò)程而言,若重復(fù)計(jì)算過(guò)程得到 的結(jié)果相同(源列數(shù)據(jù)穩(wěn)定,因此計(jì)算結(jié)果也不變),或計(jì)算牽扯 多行數(shù)據(jù)需額外的磁盤 i/o 開(kāi)銷,或計(jì)算復(fù)雜需要大量的 cpu 時(shí)間, 就考慮存儲(chǔ)計(jì)算結(jié)果(冗余儲(chǔ)存)。現(xiàn)予以分類說(shuō)明: 若在一行內(nèi)重復(fù)計(jì)算,就在表內(nèi)增加列存儲(chǔ)結(jié)果。但若參與計(jì) 算的列被更新時(shí),必須要用觸發(fā)器更新這個(gè)新列。 若對(duì)表按類進(jìn)行重復(fù)計(jì)算,就增加新表(一般而言,存放類和 結(jié)果兩列就可以了)存

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。