




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.信息工程學(xué)院數(shù)據(jù)庫(kù)課程設(shè)計(jì)論文題 目:醫(yī)院門(mén)診管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)學(xué) 號(hào):2012013324專業(yè)班級(jí):軟件工程121班姓 名:張桐指導(dǎo)老師:蔚繼承完成日期:2014年06月20日醫(yī)院門(mén)診管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)張桐(信息工程學(xué)院軟件工程12級(jí)1班)摘 要:隨著社會(huì)的進(jìn)步和人類生產(chǎn)生活水平的提高,國(guó)內(nèi)現(xiàn)有的醫(yī)院不論從規(guī)模上還是服務(wù)質(zhì)量上都實(shí)現(xiàn)了顯著增長(zhǎng)。顯然,如果醫(yī)院門(mén)診仍采用人工管理的方式顯然無(wú)法應(yīng)對(duì)龐大的病患需求。如今,科學(xué)與發(fā)展已成為時(shí)代的主題。在中國(guó)軟件行業(yè)日益進(jìn)步的今天,我們可以利用這些資源來(lái)幫助減輕醫(yī)生和病人的負(fù)擔(dān),讓病人能夠盡快就醫(yī)。一個(gè)高質(zhì)量的醫(yī)院門(mén)診管理系統(tǒng),能提高醫(yī)院的社會(huì)效益與
2、經(jīng)濟(jì)效益。本文采用結(jié)構(gòu)化分析和設(shè)計(jì)方法,運(yùn)用數(shù)據(jù)流程圖和E-R圖等工具對(duì)小型醫(yī)院門(mén)診管理系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行分析和設(shè)計(jì),實(shí)現(xiàn)登記掛號(hào)、診斷治療、收費(fèi)掛號(hào)等醫(yī)院門(mén)診的基本業(yè)務(wù)。關(guān)鍵字:醫(yī)院門(mén)診管理;數(shù)據(jù)庫(kù)設(shè)計(jì);醫(yī)院目 錄1 需求分析11.1數(shù)據(jù)流程圖11.2數(shù)據(jù)字典41.2.1數(shù)據(jù)項(xiàng)41.2.2數(shù)據(jù)結(jié)構(gòu)51.2.3數(shù)據(jù)流61.2.4.處理邏輯61.2.5.數(shù)據(jù)存儲(chǔ)72數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)72.1 概念設(shè)計(jì)72.1.1 分E-R圖建立72.1.2 全局/整體E-R圖82.2 邏輯設(shè)計(jì)92.2.1 建立關(guān)系模式102.2.2 關(guān)系模式規(guī)范化處理102.2.3 用戶子模式建立112.2.4 關(guān)系模式邏輯結(jié)構(gòu)定義1
3、13數(shù)據(jù)庫(kù)物理設(shè)計(jì)134數(shù)據(jù)庫(kù)實(shí)施與測(cè)試134.1 SQL Server 2008數(shù)據(jù)庫(kù)實(shí)施與測(cè)試134.1.1 數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象建立134.1.2 數(shù)據(jù)入庫(kù)214.1.3 數(shù)據(jù)庫(kù)測(cè)試234.2 Oracle數(shù)據(jù)庫(kù)實(shí)施與測(cè)試304.2.1 數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象建立304.2.2 數(shù)據(jù)入庫(kù)414.2.3 數(shù)據(jù)庫(kù)測(cè)試435 總結(jié)4912級(jí)軟件工程專業(yè)1班數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)課程設(shè)計(jì)課程論文隨著社會(huì)不斷的進(jìn)步,醫(yī)院等基礎(chǔ)服務(wù)機(jī)構(gòu),早已成為了人們生活必不可少的一部分,在很大程度上方便了人們的生活。為了在更大程度上滿足病患的需求,許多醫(yī)院的規(guī)模進(jìn)一步擴(kuò)大,管理也進(jìn)一步改善。逐步走向醫(yī)療服務(wù)和管理的成熟化。而方
4、便有效的管理手段已經(jīng)成為了所有管理部門(mén)管理的有力工具。傳統(tǒng)的人工管理手段在高速發(fā)展的今天,已經(jīng)不再體現(xiàn)其優(yōu)勢(shì),繁復(fù)和大量的手工記錄和計(jì)算給管理帶來(lái)了更多的重復(fù)工作,如果能將復(fù)雜的各類管理過(guò)程封裝在一個(gè)操作中,執(zhí)行每個(gè)管理步驟時(shí)使用相對(duì)應(yīng)的功能,那就能給管理者帶來(lái)更大的便捷。數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo)就是為用戶和各種應(yīng)用系統(tǒng)提供一個(gè)信息基礎(chǔ)設(shè)施和高效的運(yùn)行環(huán)境。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已經(jīng)進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)醫(yī)院門(mén)診信息進(jìn)行管理,具有比手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠
5、性高、存儲(chǔ)量大等。這些優(yōu)點(diǎn)能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理的重要條件。針對(duì)典型的管理系統(tǒng),以醫(yī)院門(mén)診管理為載體,設(shè)計(jì)醫(yī)院門(mén)診管理系統(tǒng)。以滿足門(mén)診管理者對(duì)各類數(shù)據(jù)的管理,以現(xiàn)代化的思維模式去經(jīng)營(yíng)維護(hù)。1 需求分析需求分析階段就是分析用戶的需求,是數(shù)據(jù)庫(kù)設(shè)計(jì)的起點(diǎn)。醫(yī)院門(mén)診管理的主要目標(biāo)是通過(guò)醫(yī)院門(mén)診的整個(gè)服務(wù)流程的管理和控制及對(duì)庫(kù)存數(shù)據(jù)有效的統(tǒng)計(jì)和分析,以保證管理的暢通,使決策人員及早發(fā)現(xiàn)問(wèn)題,采取相應(yīng)措施,調(diào)整管理方式。同時(shí),通過(guò)數(shù)據(jù)分析,可以獲得當(dāng)前社會(huì)的病患需求,也便于管理人員不斷進(jìn)行管理的優(yōu)化和提高管理水平。通過(guò)查詢資料和分析當(dāng)前的醫(yī)院門(mén)診部服務(wù)狀況,明確病
6、患的需求而進(jìn)行設(shè)計(jì)。并完成業(yè)務(wù)流程圖和數(shù)據(jù)流程圖。進(jìn)一步創(chuàng)建數(shù)據(jù)字典,完成數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理功能模塊。1.1數(shù)據(jù)流程圖數(shù)據(jù)流程圖反映的是醫(yī)院門(mén)診管理工作過(guò)程的數(shù)據(jù)去向和流向。通過(guò)數(shù)據(jù)流程圖,抽象現(xiàn)實(shí)世界的數(shù)據(jù)到醫(yī)院門(mén)診管理的物理模型。再根據(jù)這個(gè)物理模型要抽象出信息流,將物理模型轉(zhuǎn)化成邏輯模型,反映信息在系統(tǒng)中的流動(dòng)、處理和存儲(chǔ)情況,在整個(gè)過(guò)程中,所得到的數(shù)據(jù)流程圖可如下圖1-1至圖1-5所示,分為頂層數(shù)據(jù)流圖、第一層數(shù)據(jù)流圖和第二層數(shù)據(jù)流圖。圖1-1 頂層數(shù)據(jù)流程圖圖1-2 第一層數(shù)據(jù)流程圖圖1-3 第二層數(shù)據(jù)流程圖(掛號(hào)收費(fèi))圖1-4 第二層數(shù)據(jù)流程圖(診斷)圖1-5 第二層數(shù)據(jù)流程圖(取藥
7、)1.2數(shù)據(jù)字典數(shù)據(jù)字典是體統(tǒng)中各類數(shù)據(jù)描述的集合,是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要成果。數(shù)據(jù)字典在數(shù)據(jù)庫(kù)設(shè)計(jì)中占有很重要的地位。數(shù)據(jù)字典通常包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯5個(gè)部分。數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位。數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂?。?shù)據(jù)存儲(chǔ)是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方也是數(shù)據(jù)流的來(lái)源和去向之一。處理邏輯一般用判定表或判定樹(shù)來(lái)描述。數(shù)據(jù)字典是需要描述處理過(guò)程的說(shuō)明性信息。本文中包括35個(gè)數(shù)據(jù)項(xiàng),8個(gè)數(shù)據(jù)結(jié)構(gòu),11個(gè)數(shù)據(jù)流,6個(gè)處理邏輯,8個(gè)數(shù)據(jù)存儲(chǔ)。1.2.1數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義與其他數(shù)據(jù)項(xiàng)關(guān)系類型長(zhǎng)度取值范
8、圍DI01-1Pno病人編號(hào)主鍵varchar20DI01-2Pname病人姓名varchar20not nullDI01-3Psex性別varchar20DI01-4Page年齡int0-150DI01-5Dno醫(yī)生號(hào)外鍵varchar20DI02-1Dno醫(yī)生號(hào)主鍵varchar20DI02-2Dname醫(yī)生姓名varchar20not nullDI02-3Dtitle職稱varchar20DI02-4Dtel電話varchar20DI02-5Dp_no科室編號(hào)外鍵varchar20DI03-1Dp_no科室編號(hào)主鍵varchar20DI03-2Dp_name科室名稱varchar20no
9、t nullDI03-3Dp_tell聯(lián)系方式varchar20DI04-1Mno藥品編號(hào)主鍵varchar20DI04-2Mname藥品名稱varchar20not nullDI04-3Mprice藥品價(jià)格floatDI04-4Mquantity藥品庫(kù)存余量intDI05-1Rno掛號(hào)單號(hào)主鍵varchar20DI05-2Rdate掛號(hào)日期dateDI05-3Bno收費(fèi)單號(hào)外鍵varchar20DI05-4Pno病人編號(hào)外鍵varchar20DI05-5Dno醫(yī)生編號(hào)外鍵varchar20DI05-6Rway掛號(hào)方式varchar20DI06-1Bno收費(fèi)單號(hào)主鍵varchar20DI06-
10、2Bdate日期dateDI06-3Bmoney金額floatDI06-4Bway收費(fèi)方式varchar20DI07-1Pr_no處方號(hào)主鍵varchar20DI07-2Pr_date日期dateDI07-3Mno藥品編號(hào)外鍵varchar20DI07-4Bno收費(fèi)單號(hào)外鍵varchar20DI08-1Dno醫(yī)生號(hào)主鍵、外鍵varchar20DI08-2Pno病人編號(hào)主鍵、外鍵varchar20DI08-3Iname病名varchar20DI08-4Pr_no處方號(hào)外鍵varchar201.2.2數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)編號(hào)數(shù)據(jù)結(jié)構(gòu)名數(shù)據(jù)結(jié)構(gòu)含義組成DS-1Doctor醫(yī)生Dno,Dname,Dtit
11、le,Ddept,DtelDS-2Patient病人Pno,Pname,Psex,Page,DnoDS-3Medicine藥品Mno,Mname,Mprice,MquantityDS-4Department科室Dp_no,Dp_name,Dp_telDS-5Register掛號(hào)單Rno,Rway,Rdate,Pno,BnoDS-6Bill收費(fèi)單Bno,Bdate,Bmoney,BwayDS-7Prescription處方Pr_no,Pr_date,Mno,BnoDS-8Diagnose診斷結(jié)果Dno,Pno,Iname,Pr_no1.2.3數(shù)據(jù)流數(shù)據(jù)流編號(hào)數(shù)據(jù)流名稱簡(jiǎn)述數(shù)據(jù)流來(lái)源數(shù)據(jù)流去向數(shù)據(jù)
12、流組成數(shù)據(jù)流量高峰流量F1掛號(hào)請(qǐng)求病人來(lái)到醫(yī)院對(duì)所需的治療或者看病項(xiàng)目的掛號(hào)病人掛號(hào)處理病人信息、分配醫(yī)師每日1000人每日5000人F2掛號(hào)單處理病人的掛號(hào),由病人信息生成掛號(hào)單掛號(hào)處理病人病人、醫(yī)生、掛號(hào)單編號(hào)每日1000次每日5000次F3繳費(fèi)對(duì)于各項(xiàng)醫(yī)療必須費(fèi)用進(jìn)行繳費(fèi)病人收費(fèi)處理收費(fèi)信息每日1000次每日5000次F4收費(fèi)憑證病人繳費(fèi)后獲取收費(fèi)憑證以備后續(xù)使用收費(fèi)處理病人收費(fèi)信息、詳細(xì)記錄每日1000次每日5000次F5看病病人到相關(guān)科室進(jìn)行初診病人初診處理病人信息、初診信息每日1000人每日5000人F6處方、病例醫(yī)師對(duì)病人開(kāi)處方、填寫(xiě)病例確診處理病人病人、處方信息、病例信息每日1
13、000次每日5000次F7取藥病人到藥房領(lǐng)取相關(guān)藥品病人取藥處理病人、藥品信息每日1000次每日5000次F8藥物藥房工作人員依照處方把相關(guān)藥品交給病人取藥處理病人病人、藥品每日1000次每日5000次F9掛號(hào)項(xiàng)目掛號(hào)系統(tǒng)針對(duì)病人的掛號(hào)項(xiàng)目為其分配醫(yī)師掛號(hào)處理分配醫(yī)師處理病人信息、分配醫(yī)師、科室每日1000次每日5000次F10醫(yī)師信息系統(tǒng)調(diào)用相關(guān)醫(yī)師信息返回分配醫(yī)師處理掛號(hào)處理醫(yī)生每日1000次每日5000次F11診斷信息將診斷信息整理匯總,最后確診診斷處理確診病人、治療記錄每日1000次每日5000次1.2.4.處理邏輯處理邏輯處理邏輯名稱簡(jiǎn)述輸入的數(shù)據(jù)流處理輸出的數(shù)據(jù)流處理頻率P1.1掛
14、號(hào)對(duì)病人掛號(hào)請(qǐng)求的處理病人信息分配醫(yī)師掛號(hào)單每人1次P1.2收費(fèi)收費(fèi)內(nèi)容和標(biāo)準(zhǔn)收費(fèi)內(nèi)容收取費(fèi)用收費(fèi)記錄每人1次P1.3分配醫(yī)師根據(jù)掛號(hào)記錄分配醫(yī)師醫(yī)生記錄分配醫(yī)師醫(yī)生信息每人1次P2.1診斷醫(yī)生對(duì)病情進(jìn)行診斷診斷請(qǐng)求初步診斷初診信息每人1次P2.2確診完成診斷,確診診斷信息確診診斷結(jié)果每人1次P3.1取藥取藥處方取藥藥物信息每人1次1.2.5.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)編號(hào)數(shù)據(jù)存儲(chǔ)名稱簡(jiǎn)述數(shù)據(jù)存儲(chǔ)組成相關(guān)的處理S1掛號(hào)記錄用于記錄病人的掛號(hào)信息病人信息、醫(yī)生P1.1,P2.1,P3.1S2收費(fèi)記錄用于記錄收費(fèi)信息收費(fèi)信息P1.2,P2.2,P3.2,P3.3S3值班醫(yī)生記錄記錄醫(yī)生的值班安排醫(yī)生值班安排
15、P3.1S4診斷記錄記錄病人的診斷過(guò)程診斷過(guò)程P2.3,P3.1S5藥物記錄用于記錄藥物價(jià)格剩余量等藥物信息P3.2S6收費(fèi)款項(xiàng)用于記錄收費(fèi)情況收費(fèi)信息P1.2S7收費(fèi)標(biāo)準(zhǔn)用于統(tǒng)一收費(fèi)的標(biāo)準(zhǔn)收費(fèi)款項(xiàng)標(biāo)準(zhǔn)P1.2S8處方用于記錄醫(yī)生對(duì)病人開(kāi)出的處方處方P3.22數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)主要包括概念設(shè)計(jì)和邏輯設(shè)計(jì)兩個(gè)部分。2.1 概念設(shè)計(jì)概念設(shè)計(jì)階段的任務(wù)是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過(guò)程。要能充分的反應(yīng)事物與事物之間的聯(lián)系,是對(duì)現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。在需求分析階段得到的應(yīng)用需求首先抽象為信息世界的結(jié)構(gòu)才能更好的用某一DBMS實(shí)現(xiàn)這些需求。E-R模型是概念模型的有力
16、工具。逐一設(shè)計(jì)分E-R圖,再將所有的分E-R圖綜合成系統(tǒng)的總E-R圖。2.1.1 分E-R圖建立圖2-2 分ER圖分E-R圖的建立依據(jù)于數(shù)據(jù)流圖的建立。以下可從第二層數(shù)據(jù)流圖分別建立分E-R圖。詳見(jiàn)圖2-1至2-3。圖2-1 分ER圖2. 診斷分ER圖圖2-3 分ER圖2.1.2 全局/整體E-R圖根據(jù)上述列出的分E-R圖,消除其中存在的沖突、冗余,建立全局E-R圖(詳見(jiàn)圖2-4),并列出所有實(shí)體和聯(lián)系屬性的屬性E-R圖(詳見(jiàn)圖2-5)圖2-4 總ER圖圖2-5 屬性ER圖2.2 邏輯設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合
17、的邏輯結(jié)構(gòu)。根據(jù)DBMS產(chǎn)品以及不同系統(tǒng)的限制,設(shè)計(jì)邏輯結(jié)構(gòu)時(shí)一般有以下三個(gè)步驟:首先將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;將轉(zhuǎn)換來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;最后對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。醫(yī)院門(mén)診管理系統(tǒng)的設(shè)計(jì)采用關(guān)系模型。E-R圖轉(zhuǎn)化為關(guān)系模型實(shí)際上就是要將實(shí)體型、實(shí)體的屬性和實(shí)體型之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。對(duì)于實(shí)體型間的聯(lián)系有以下不同的情況:(1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼
18、以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。(2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系沒(méi)模式,則與聯(lián)系向連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。(3)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體的碼組成關(guān)系的碼或關(guān)系的碼的一部分。2.2.1 建立關(guān)系模式醫(yī)院門(mén)診管理系統(tǒng)涉及到的關(guān)系主要有:病人和醫(yī)生為n:1(多對(duì)一)的關(guān)系,將其之間的聯(lián)系與n端實(shí)體合并。病人和掛號(hào)單的關(guān)系為1:1(一對(duì)一),將其之間的聯(lián)系與任意一端實(shí)體合并。科室和醫(yī)生為1:n(一對(duì)多)的關(guān)系,將其之間
19、的聯(lián)系與n端實(shí)體合并。醫(yī)生和診斷結(jié)果的關(guān)系為1:n(一對(duì)多)的關(guān)系,也將其之間的聯(lián)系與n端實(shí)體合并。診斷結(jié)果和處方單的關(guān)系為1:1(一對(duì)一),將其之間的聯(lián)系與任意一端實(shí)體合并。處方單、收費(fèi)單和藥品之間的聯(lián)系為三元的關(guān)系,將它們之間的聯(lián)系轉(zhuǎn)換為獨(dú)立的關(guān)系模式。具體的轉(zhuǎn)換如下所示(主鍵加下劃線,外鍵斜體加粗):病人(病人編號(hào),病人姓名,性別,年齡,醫(yī)生號(hào))醫(yī)生(醫(yī)生號(hào),醫(yī)生姓名,職稱,電話,科室號(hào))藥品(藥品編號(hào),藥品名稱,單價(jià),數(shù)量)處方(處方號(hào),日期,藥品編號(hào),收費(fèi)單號(hào))收費(fèi)單(收費(fèi)單號(hào),日期,金額,收費(fèi)方式)診斷結(jié)果(醫(yī)生號(hào),病人編號(hào),病名,處方號(hào))掛號(hào)單(掛號(hào)單號(hào),掛號(hào)方式,日期,病人編號(hào)
20、,收費(fèi)單號(hào))科室(科室號(hào),科室名稱,聯(lián)系方式)2.2.2 關(guān)系模式規(guī)范化處理關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿足一定的規(guī)范化要求,對(duì)于不同的規(guī)范化程度可用范式來(lái)衡量。范式是符合某一種級(jí)別的關(guān)系模式的集合,是衡量關(guān)系模式規(guī)范化程度的標(biāo)準(zhǔn),達(dá)到的關(guān)系才是規(guī)范化的。一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合。在本系統(tǒng)中,所有建立的關(guān)系模式都符合三范式。2.2.3 用戶子模式建立根據(jù)需求分析,研究建立滿足不同需求的用戶子模式,各個(gè)子模式的建立在更大程度上方便數(shù)據(jù)操作。用戶子模式的定義如下:收費(fèi)細(xì)則視圖(病人號(hào),收費(fèi)單號(hào),日期,金額,收費(fèi)方式)病人-藥品視圖(病人號(hào),藥品編號(hào)
21、)診斷結(jié)果視圖(病人號(hào),病人姓名,病名)醫(yī)生病人視圖(醫(yī)生號(hào),醫(yī)生姓名,病人姓名)科室醫(yī)生視圖(醫(yī)生號(hào),醫(yī)生姓名,科室名稱)病人掛號(hào)視圖(病人號(hào),病人姓名,掛號(hào)單號(hào),掛號(hào)日期,掛號(hào)方式)2.2.4 關(guān)系模式邏輯結(jié)構(gòu)定義表2-6病人關(guān)系模式屬性名含義數(shù)據(jù)類型長(zhǎng)度是否為主屬性是否為外鍵約束條件Pno病人編號(hào)varchar20是Pname病人姓名varchar20not nullPsex性別varchar20Page年齡int0-150Dno醫(yī)生號(hào)varchar20是表2-7醫(yī)生關(guān)系模式屬性名含義數(shù)據(jù)類型長(zhǎng)度是否為主屬性是否為外鍵約束條件Dno醫(yī)生號(hào)varchar20是Dname醫(yī)生姓名varcha
22、r20not nullDtitle職稱varchar20Ddept科室號(hào)varchar20是Dtel電話varchar20表2-8藥品關(guān)系模式屬性名含義數(shù)據(jù)類型長(zhǎng)度是否為主屬性是否為外鍵約束條件Mno藥品編號(hào)varchar20是Mname藥品名稱varchar20not nullMprice單價(jià)floatMquantity數(shù)量int表2-9處方單關(guān)系模式屬性名含義數(shù)據(jù)類型長(zhǎng)度是否為主屬性是否為外鍵約束條件Pr_no處方號(hào)varchar20是Pr_date日期dateMno藥品編號(hào)varchar20是Bno收費(fèi)單號(hào)varchar20是表2-10收費(fèi)單關(guān)系模式屬性名含義數(shù)據(jù)類型長(zhǎng)度是否為主屬性是否
23、為外鍵約束條件Bno收費(fèi)單號(hào)varchar20是Bdate日期dateBmoney金額float20Bway收費(fèi)方式varchar20表2-11診斷結(jié)果關(guān)系模式屬性名含義數(shù)據(jù)類型長(zhǎng)度是否為主屬性是否為外鍵約束條件Dno醫(yī)生號(hào)varchar20是是Pname病人姓名varchar20是是Iname病名Pr_no處方號(hào)varchar20是表2-12掛號(hào)單關(guān)系模式屬性名含義數(shù)據(jù)類型長(zhǎng)度是否為主屬性是否為外鍵約束條件Rno掛號(hào)單號(hào)varchar20是Rway掛號(hào)方式varchar20Rdate日期datePname病人姓名varchar20是Bno收費(fèi)單號(hào)varchar20是表2-13科室關(guān)系模式屬性
24、名含義數(shù)據(jù)類型長(zhǎng)度是否為主屬性是否為外鍵約束條件Dp_no科室號(hào)varchar20是Dp_name科室名稱varchar20not nullDp_tel聯(lián)系方式varchar203數(shù)據(jù)庫(kù)物理設(shè)計(jì)主要包括數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法就是數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫(kù)管理系統(tǒng)。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最合適的應(yīng)用環(huán)境的物理結(jié)構(gòu)的過(guò)程,就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。這一階段主要的任務(wù)是確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),并不斷的進(jìn)行優(yōu)化處理,主要建立索引、觸發(fā)器、存儲(chǔ)過(guò)程。索引名稱索引類型用途idx_bno唯一、非聚集按bno屬性列升序排列unique_pname唯一、非聚集實(shí)現(xiàn)唯一性約束uni
25、que_mname唯一、非聚集實(shí)現(xiàn)唯一性約束4數(shù)據(jù)庫(kù)實(shí)施與測(cè)試主要包括數(shù)據(jù)庫(kù)實(shí)施和測(cè)試兩個(gè)部分。(下面分別寫(xiě)出SQL Server 2008和Oracle的實(shí)施測(cè)試過(guò)程)4.1 SQL Server 2008數(shù)據(jù)庫(kù)實(shí)施與測(cè)試4.1.1 數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象建立本系統(tǒng)建立名為Hospital的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)對(duì)象分為基本表、視圖、索引、觸發(fā)器、存儲(chǔ)過(guò)程等。下面分別列出相關(guān)代碼。1.基本表create table Department (Dp_no varchar(20) primary key, Dp_name varchar(20) not null, Dp_tel varchar(20) ) c
26、reate table Doctor (Dno varchar(20) primary key, Dname varchar(20) not null, Dtitle varchar(20), Dp_no varchar(20) references Department(Dp_no), Dtel varchar(20) )create table Patient(Pno varchar(20) primary key, Pname varchar(20), Psex varchar(20), Page int check(Page>=0 and Page<=150), Dno v
27、archar(20) references Doctor(Dno) create table Medicine (Mno varchar(20) primary key, Mname varchar(20) not null, Mprice float, Mquantity int ) create table Bill (Bno varchar(20) primary key, Bdate date, Bmoney float, Bway varchar(20) ) create table Prescription (Pr_no varchar(20) primary key, Pr_da
28、te date, Mno varchar(20) references Medicine(Mno), Bno varchar(20) references Bill(Bno) ) create table Diagnose (Dno varchar(20) references Doctor(Dno), Pno varchar(20) references Patient(Pno), Iname varchar(20), Pr_no varchar(20) references Prescription(Pr_no), primary key(Dno,Pno) ) create table R
29、egister (Rno varchar(20) primary key, Rway varchar(20), Rdate date, Pno varchar(20) references Patient(Pno), Bno varchar(20) references Bill(Bno) )2.視圖(1)收費(fèi)細(xì)則視圖(BillDetail)create view BillDetailasselect distinct Diagnose.pno,Bill.Bno,Bdate,Bmoney,Bwayfrom Prescription,Bill,Diagnose,Registerwhere Reg
30、ister.pno=Diagnose.pno and (Diagnose.Pr_no=Prescription.Pr_no and Prescription.bno=Bill.bno or Register.bno=Bill.bno)(2)病人-藥品視圖(Patient_Med)create view Patient_Medasselect Pno,Mnamefrom Medicine,Prescription,Diagnosewhere Medicine.Mno=Prescription.mno and Diagnose.Pr_no=Prescription.Pr_no(3)診斷結(jié)果視圖(P
31、atient_Diag)create view Patient_Diagasselect Patient.pno,pname,inamefrom Patient,Diagnosewhere Diagnose.Pno=Patient.pno(4)醫(yī)生病人視圖(Docter_Patient)create view Docter_Patientasselect Doctor.dno,dname,pnamefrom Patient,Doctorwhere Patient.dno=Doctor.dno(5)科室醫(yī)生視圖(Dept_Doctor)create view Dept_Doctorasselec
32、t dno,dname,Dp_namefrom Doctor,Departmentwhere Department.Dp_no=Doctor.Dp_no(6)病人掛號(hào)視圖(Patient_Register)create view Patient_Registerasselect Patient.pno,pname,rno,rway,rdatefrom Patient,Registerwhere Register.pno=Patient.pno3.索引create unique index unique_mname on Medicine(Mname)create unique index un
33、ique_pname on Patient(pname)create index idx_bno on Bill(bno asc)4.存儲(chǔ)過(guò)程(1)當(dāng)有患者通過(guò)不同的方式掛號(hào)時(shí),要在Register新增一條掛號(hào)信息,同時(shí)在Patient表添加一個(gè)病人記錄,在Bill表中添加一條掛號(hào)收費(fèi)記錄create proc addpatientRno varchar(20),Rway varchar(20),Pno varchar(20),Bno varchar(20),Pname varchar(20),Psex varchar(20),Page int,Dno varchar(20),Bmoney f
34、loatasinsert into Patientvalues(Pno,Pname,Psex,Page,Dno)insert into Billvalues(Bno,GETDATE(),Bmoney,'掛號(hào)收費(fèi)')insert into Registervalues(Rno,Rway,GETDATE(),Pno,Bno)(2)一個(gè)患者確診完畢,向Diagnose新增一條診斷結(jié)果記錄,同時(shí)在Prescription表添加一條處方記錄,并更新Bill表中相應(yīng)收費(fèi)信息create proc addDiagnoseDno varchar(20),Pno varchar(20),Inam
35、e varchar(20),Pr_no varchar(20),Mno varchar(20),Bno varchar(20),Bmoney floatasinsert into Billvalues(Bno,GETDATE(),Bmoney,'藥品收費(fèi)')insert into Prescriptionvalues(Pr_no,GETDATE(),Mno,Bno)insert into Diagnosevalues(Dno,Pno,Iname,Pr_no)(4)插入一條藥品信息create proc MedicineInsertmno varchar(20),mname va
36、rchar(20),mprice float,mquantity intasinsert into Medicinevalues(Mno,Mname,Mprice,Mquantity)(4)修改某一科室的電話create proc change_teldp_no varchar(20),Dp_tel varchar(20)asupdate Departmentset dp_tel=Dp_telwhere Dp_no=dp_no(5)修改某一藥品剩余量create proc change_medmno varchar(20),mquantity intasupdate Medicineset m
37、quantity=mquantitywhere mno=mno(6)在Dept_Doctor查詢醫(yī)院門(mén)診部各個(gè)科室的醫(yī)生人數(shù)create proc Dept_Docasselect Dp_name,COUNT(dno) as rsfrom Dept_Doctorgroup by Dp_name(7)在Docter_Patient查詢某一病人的主治醫(yī)生信息create proc p_doctorpname varchar(20)asselect *from Doctorwhere Dno =(select Dno from Docter_Patient where pname=pname)(8)
38、在Docter_Patient查詢某一醫(yī)生主治的全部病人信息create proc D_Patientdno varchar(20)asselect pno,pname,psex,pagefrom Patientwhere pname in(select pname from Docter_Patient where dno=dno)(9)在Patient_Diag查詢患感冒的病人姓名create proc Diag_passelect pnamefrom Patient_Diagwhere iname='感冒'(10)在Patient_Diag查詢某一病人的診斷結(jié)果creat
39、e proc p_Diagpno varchar(20)asselect inamefrom Patient_Diagwhere pno=pno(11)在Patient_Med查詢某病人購(gòu)買(mǎi)的藥品create proc p_Medpno varchar(20)asselect mnamefrom Patient_Medwhere pno=pno(12)在BillDetail查詢某病人購(gòu)買(mǎi)的藥品總價(jià)create proc medpaypno varchar(20)asselect Bway,bmoneyfrom BillDetailwhere pno=pno and Bway='藥品收費(fèi)
40、'(13)在BillDetail查詢某一病人的收費(fèi)總和(=掛號(hào)+取藥)create proc paypno varchar(20)asselect sum(bmoney) as totalfrom BillDetailwhere pno=pno group by pno(14)在Patient_Register查詢某病人的掛號(hào)方式create proc reg_waypno varchar(20)asselect rway from Patient_Registerwhere pno=pno 5.觸發(fā)器當(dāng)向處方表(Prescription)中添加元組時(shí),同步對(duì)表Medicine的級(jí)聯(lián)更
41、新。(藥品數(shù)量-1)create trigger t1 on Prescriptionafter insert,updateas declare pr_no varchar(20),mno varchar(20)declare c2 cursor for select pr_no,mno from inserted open c2 fetch next from c2 into pr_no,mnowhile(fetch_status=0)beginupdate Medicineset mquantity=mquantity-1where mno=mnofetch next from c2 in
42、to pr_no,mnoendclose c2deallocate c24.1.2 數(shù)據(jù)入庫(kù)Patient表Register表Department表Doctor表Medicine表Prescription表Diagnose表Bill表4.1.3 數(shù)據(jù)庫(kù)測(cè)試1.視圖病人-藥品視圖(Patient_Med)收費(fèi)細(xì)則視圖(BillDetail)診斷結(jié)果視圖(Patient_Diag)醫(yī)生病人視圖(Docter_Patient)科室醫(yī)生視圖(Dept_Doctor)病人掛號(hào)視圖(Patient_Register)2.驗(yàn)證存儲(chǔ)過(guò)程(1)當(dāng)有患者通過(guò)不同的方式掛號(hào)時(shí),要在Register新增一條掛號(hào)信息,
43、同時(shí)在Patient表添加一個(gè)病人記錄,在Bill表中添加一條掛號(hào)收費(fèi)記錄(2)一個(gè)患者確診完畢,向Diagnose新增一條診斷結(jié)果記錄,同時(shí)在Prescription表添加一條處方記錄,并更新Bill表中相應(yīng)收費(fèi)信息(3)插入一條藥品信息(4)修改某一科室的電話(5)修改某一藥品剩余量(6)在Dept_Doctor查詢醫(yī)院門(mén)診部各個(gè)科室的醫(yī)生人數(shù)(7)在Docter_Patient查詢某一病人的主治醫(yī)生信息(8)在Docter_Patient查詢某一醫(yī)生主治的全部病人信息(9)在Patient_Diag查詢患感冒的病人姓名(10)在Patient_Diag查詢某一病人的診斷結(jié)果(11)在Pa
44、tient_Med查詢某病人購(gòu)買(mǎi)的藥品(12)在BillDetail查詢某病人購(gòu)買(mǎi)的藥品總價(jià)(13)在BillDetail查詢某一病人的收費(fèi)總和(=掛號(hào)+取藥)(14)在Patient_Register查詢某病人的掛號(hào)方式3.驗(yàn)證觸發(fā)器(見(jiàn)存儲(chǔ)過(guò)程2的驗(yàn)證)4.2 Oracle數(shù)據(jù)庫(kù)實(shí)施與測(cè)試4.2.1 數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)對(duì)象建立本系統(tǒng)建立名為Hospital的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)對(duì)象分為基本表、視圖、存儲(chǔ)過(guò)程等。下面分別列出相關(guān)代碼。1.基本表create table Department (Dp_no varchar(20) primary key, Dp_name varchar(20) not
45、null, Dp_tel varchar(20) ) create table Doctor (Dno varchar(20) primary key, Dname varchar(20) not null, Dtitle varchar(20), Dp_no varchar(20) references Department(Dp_no), Dtel varchar(20) )create table Patient(Pno varchar(20) primary key, Pname varchar(20), Psex varchar(20), Page int check(Page>
46、;=0 and Page<=150), Dno varchar(20) references Doctor(Dno) create table Medicine (Mno varchar(20) primary key, Mname varchar(20) not null, Mprice float, Mquantity int ) create table Bill (Bno varchar(20) primary key, Bdate date, Bmoney float, Bway varchar(20) ) create table Prescription (Pr_no va
47、rchar(20) primary key, Pr_date date, Mno varchar(20) references Medicine(Mno), Bno varchar(20) references Bill(Bno) ) create table Diagnose (Dno varchar(20) references Doctor(Dno), Pno varchar(20) references Patient(Pno), Iname varchar(20), Pr_no varchar(20) references Prescription(Pr_no), primary k
48、ey(Dno,Pno) ) create table Register (Rno varchar(20) primary key, Rway varchar(20), Rdate date, Pno varchar(20) references Patient(Pno), Bno varchar(20) references Bill(Bno) )2.視圖(1)收費(fèi)細(xì)則視圖(BillDetail)create view BillDetailasselect distinct Diagnose.pno,Bill.Bno,Bdate,Bmoney,Bwayfrom Prescription,Bil
49、l,Diagnose,Registerwhere Register.pno=Diagnose.pno and (Diagnose.Pr_no=Prescription.Pr_no and Prescription.bno=Bill.bno or Register.bno=Bill.bno)(2)病人-藥品視圖(Patient_Med)create view Patient_Medasselect Pno,Mnamefrom Medicine,Prescription,Diagnosewhere Medicine.Mno=Prescription.mno and Diagnose.Pr_no=P
50、rescription.Pr_no(3)診斷結(jié)果視圖(Patient_Diag)create view Patient_Diagasselect Patient.pno,pname,inamefrom Patient,Diagnosewhere Diagnose.Pno=Patient.pno(4)醫(yī)生病人視圖(Docter_Patient)create view Docter_Patientasselect Doctor.dno,dname,pnamefrom Patient,Doctorwhere Patient.dno=Doctor.dno(5)科室醫(yī)生視圖(Dept_Doctor)create view Dept_Doctorasselect dno,dname,Dp_namefrom Doctor,Departmentwher
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)用紅外熱像儀項(xiàng)目發(fā)展計(jì)劃
- 2025年度個(gè)人二手房買(mǎi)賣糾紛調(diào)解服務(wù)合同
- 2025年度代理記賬業(yè)務(wù)委托合同范本
- 2025年度董事聘任合同書(shū)-智能制造企業(yè)戰(zhàn)略發(fā)展
- 2025年度國(guó)際貨運(yùn)代理服務(wù)合同樣本
- 2025年度廠房工程承包與環(huán)保驗(yàn)收合同
- 黃銅地噴閥行業(yè)市場(chǎng)發(fā)展及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025年度科技創(chuàng)新項(xiàng)目專家評(píng)審協(xié)議
- 2024年泛娛樂(lè)行業(yè)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及行業(yè)發(fā)展趨勢(shì)報(bào)告
- 2025年度電子產(chǎn)品展示廳裝修施工與市場(chǎng)推廣協(xié)議
- 2025年度養(yǎng)老服務(wù)機(jī)構(gòu)場(chǎng)地租賃合同及養(yǎng)老服務(wù)協(xié)議
- 貴州省情知識(shí)考試題庫(kù)500題(含答案)
- 大學(xué)生家長(zhǎng)陪讀承諾書(shū)
- 2023版交安A、B、C證考試題庫(kù)含答案
- 樓梯 欄桿 欄板(一)22J403-1
- 主題活動(dòng)一《我調(diào)查》(教學(xué)實(shí)錄)-2023-2024學(xué)年二年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)內(nèi)蒙古版
- 2024-2025年粵教花城版七年級(jí)音樂(lè)上冊(cè)全冊(cè)教學(xué)設(shè)計(jì)
- (正式版)JBT 106-2024 閥門(mén)的標(biāo)志和涂裝
- 金蝶云星辰初級(jí)考試題庫(kù)
- 試車場(chǎng)各種道路施工方案設(shè)計(jì)
- 頭頸部影像學(xué)表現(xiàn)(詳細(xì)、全面)
評(píng)論
0/150
提交評(píng)論