




已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)庫課程設計報告學 院: 信息科學與工程學院 專業(yè)班級: 物聯(lián)網(wǎng)工程1201班 指導老師: 盛津芳 學 號: 0909120122 姓 名: 李 浩 日 期: 2015年1月10日 目 錄課程設計要求3概要設計:(數(shù)據(jù)庫)5概要設計:(程序)7詳細設計(數(shù)據(jù)庫)8詳細設計(程序)11系統(tǒng)展示12安全性控制19關鍵技術20心得體會20數(shù)據(jù)庫課程設計任務書1 任務概述某醫(yī)院擬開發(fā)一個掛號系統(tǒng),以方便患者就醫(yī),提高醫(yī)療服務水平。患者在醫(yī)院就診前需要提供姓名、身份證號碼、聯(lián)系電話等個人信息并辦理一張診療卡,該診療卡在每次掛號時需要出示給掛號的工作人員?;颊咴趻焯枙r,需說明科室名稱以及醫(yī)生的職稱。掛號以半個工作日為一個班次,系統(tǒng)中保存各科室門診醫(yī)生的排班表,每位醫(yī)生每個班次能夠接診的病人人數(shù)可設置一個上限。本次課程設計要求設計并實現(xiàn)一個虛擬的醫(yī)院掛號系統(tǒng)。系統(tǒng)中包含兩個子系統(tǒng),即由醫(yī)院內部工作人員使用的掛號系統(tǒng),以及患者使用的網(wǎng)上預約掛號系統(tǒng)。其中網(wǎng)上預約掛號系統(tǒng)的前端要求是瀏覽器,即采用B/S模式開發(fā)。醫(yī)院工作人員使用的掛號系統(tǒng)采用C/S模式開發(fā),前端開發(fā)工具不限,可采用PowerBuilder, Delphi, VB,VC,Java等。后臺數(shù)據(jù)庫要求采用SQL SERVER2005或Oracle 11g及以上版本。2 功能描述2.1 醫(yī)院工作人員使用的掛號系統(tǒng)該系統(tǒng)僅供醫(yī)院內部工作人員使用,主要分為掛號人員和系統(tǒng)管理人員兩類角色,需提供以下功能:1) 辦理診療卡。患者提供姓名、身份證號碼、聯(lián)系電話等個人信息,掛號人員為其辦理一張長期有效的診療卡。2) 掛號。掛號人員根據(jù)患者要求的科室、醫(yī)生職稱分配一個候診號,并收取相應的診療費用,診療費用根據(jù)醫(yī)生的職稱分為不同的檔次。醫(yī)生當班次接診患者人數(shù)不能超過預先設定的上限。3) 修改掛號。患者可更改就診的科室,掛號人員根據(jù)更改后的科室和醫(yī)生職稱,重新計算診療費用的差值,多退少補。4) 查詢掛號情況。掛號人員可查詢某位醫(yī)生目前的掛號情況。5) 掛號費當班結轉。系統(tǒng)對每個班次收取的掛號費生成相應的統(tǒng)計表,并提供查詢功能,包括該班次總的掛號費用、各個掛號人員該班次總的掛號費用、各位醫(yī)生該班次總的掛號費用。6) 參數(shù)維護。系統(tǒng)管理人員負責維護各種參數(shù),包括科室、醫(yī)生、醫(yī)生排班表、號類字典。醫(yī)生的基本信息、排班表、診療費標準、各班次醫(yī)生接診人數(shù)上限都是可以修改的,盡量提高系統(tǒng)的靈活性和可擴展性。7) 系統(tǒng)維護。系統(tǒng)管理人員負責管理用戶、分配權限、管理密碼。2.2 網(wǎng)上預約掛號系統(tǒng)該系統(tǒng)供患者使用,需提供以下功能:1) 用戶注冊。提供注冊所需基本信息,必須實名注冊。2) 用戶可修改注冊信息。3) 用戶可查詢指定時間的某科室的醫(yī)生排班表。4) 用戶可以在網(wǎng)上預約掛號。系統(tǒng)不提供當日預約服務,用戶可預約部分科室次日至一個月內的就診號源。同一患者實名(有效證件號)在同一就診日、同一科室只能預約一次;在同一就診日的預約總量不可超過兩次;在一個月內的預約總量不可超過三次。2.3 安全性控制要求1) 所有用戶密碼在數(shù)據(jù)庫中都要求加密存儲。2) 網(wǎng)上預約掛號系統(tǒng)要進行輸入驗證,防止SQL注入。3) 系統(tǒng)管理員只能進行系統(tǒng)維護和參數(shù)維護,不能進行掛號操作。實驗環(huán)境:電腦:聯(lián)想G460操作系統(tǒng):Windows8.1 64位語言:Java、JavaScript、JSP、HTML、SQL編程工具:Eclipse IDE for Java EE Developers(Kepler版)數(shù)據(jù)庫:MySQL 5.6.21數(shù)據(jù)庫工具:MySQLWorkbench 6.2 CE、navicat其他工具:Sublime Text 2概要設計:(數(shù)據(jù)庫)E-R圖掛號費名稱ID級別屬于安排屬于醫(yī)生名字屬于掛號病人病情電話怒 年齡性別密碼名字 1ID(自增)ID n日期名稱科室1n1n班次電話性別電話ID mID(自增)日期班次ID n除了上面的E-R圖,數(shù)據(jù)庫中還有另外三張表,分別是管理員表(Administrator)、員工表(Worker)、結算表(Calculate)物理模型用MySQLWorkbench所建管理員表、員工表、結算表備注:由于數(shù)據(jù)庫模型是在課設最初建立的,后期根據(jù)編程的需求對表結構有了不少修改,雖然后來根據(jù)對表的修改已經(jīng)對Model進行了更新,但可能仍有略微不同概要設計:(程序)更改科室系統(tǒng)主要功能更改職稱排班表管理員管理用戶管理密碼掛號結算修改掛號掛號辦理診療卡員工詳細設計(數(shù)據(jù)庫)表結構Doctor表(醫(yī)生表)Patient表(診療卡表)Arrangement表(排班表)Orderregist表(掛號表)Calculate表(結算表)DoctorLevel表(級別表)備注:其他幾張表結構太簡單,就不一一列舉了。視圖該系統(tǒng)中暫時只用到了一個視圖,用于將Doctor表、Arrangement表、Doctorlevel表、Department表Join起來,方便查詢。存儲過程一共用到了4個存儲過程分別是procedure_calculate:用來結算procedure_find_registinfo:用來找到掛號信息procedure_regist:用來掛號procedure_update_regist:用于修改掛號下面是procedure_regist的部分代碼:if regcount 0THENinsert into orderregist VALUES(null,patId,doId,deId,regDate,regTime,cost,worId,isCalculate);update arrangement set ArrangeAccptCount = ArrangeAccptCount - 1;END IF;這里用來判斷剩余的接診人數(shù)是否大于零,如果大于零則能掛號,否則不能。詳細設計(程序) 如上圖所示,整個系統(tǒng)寫了很多個類,很多個jsp頁面,以下介紹一下各個包的功能,然后就幾個重要的類簡單介紹一下。Action包:主要是對用戶和管理員的Action事件進行處理。App包:許多個Thread類,用于務器與客戶端進行通訊。Bean包:許多bean類,也是為JavaBean技術服務的重要一部分。Commom包:許多公共類,包括:Conf類:通訊協(xié)議。Constants類:SQL語句集合。Dbcp類:獲取數(shù)據(jù)庫連接對象。Log類:為了調試所用(跟系統(tǒng)功能關系不大)PageBean類:分頁類Dao包:許多對數(shù)據(jù)庫的操作。ViewAdmin包:管理員界面包。ViewWorker包:工作人員界面包。WebContent中Main包,主要是包含很多JSP頁面。系統(tǒng)展示C/S端以員工身份登錄后,可以看到如下圖所示。系統(tǒng)中有診療卡的操作、預約掛號、掛號信息的查看與修改、排班表、掛號費結算。添加診療卡的信息 雙擊表格后,彈出對信息修改界面預約掛號界面,可以選擇掛號的日期已經(jīng)班次。然后系統(tǒng)會根據(jù)時間和班次、科室、級別篩選出醫(yī)生。這里可以查到掛號的信息。排班信息掛號費的結算(前兩條信息是我手動添加的)以管理員身份登陸后,可以看到如下圖所示。系統(tǒng)中有科室的操作、醫(yī)生、排班表、工作人員、診療費標準??梢詫υ\療費用進行修改其他功能大同小異,就不一一列舉了。B/S端B/S端登錄界面B/S端主界面 B/S端注冊界面信息查看和修改查看醫(yī)生排版表預約掛號界面安全性控制MD5加密MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest開發(fā)出來,經(jīng)MD2、MD3和MD4發(fā)展而來。-摘自百度百科關鍵代碼如下:private static String encodeByMD5(String originString) if (originString != null) try MessageDigest md = MessageDigest.getInstance(MD5); /使用指定的字節(jié)數(shù)組對摘要進行最后更新,然后完成摘要計算 byte results = md.digest(originString.getBytes(); /將得到的字節(jié)數(shù)組變成字符串返回 String resultString = byteArrayToHexString(results); String pass = resultString.toUpperCase(); return pass; catch(Exception ex) ex.printStackTrace(); return null; 防SQL注入SQL注入攻擊指的是通過構建特殊的輸入作為參數(shù)傳入Web應用程序,而這些輸入大都是SQL語法里的一些組合,通過執(zhí)行SQL語句進而執(zhí)行攻擊者所要的操作,其主要原因是程序沒有細致地過濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)。根據(jù)相關技術原理,SQL注入可以分為平臺層注入和代碼層注入。前者由不安全的數(shù)據(jù)庫配置或數(shù)據(jù)庫平臺的漏洞所致;后者主要是由于程序員對輸入未進行細致地過濾,從而執(zhí)行了非法的數(shù)據(jù)查詢?;诖?,SQL注入的產生原因通常表現(xiàn)在以下幾方面:不當?shù)念愋吞幚恚徊话踩臄?shù)據(jù)庫配置;不合理的查詢集處理;不當?shù)腻e誤處理;轉義字符處理不合適;多個提交處理不當。-摘自百度百科在JSP中,我都是采用的setParameter的方法來傳遞參數(shù),也就是采用post方式來傳參,因此大大降低了SQL注入的風險此外,在登錄等含有輸入框的地方,我也都驗證了輸入的合法性,過濾了所有的可疑字符。關鍵技術1、 在C/S端,主要用到了信息的加密技術,防注入技術,其他的更多的是對Java編碼能力的考量。2、 在B/S端,用到了JavaBean、JSP、EL、JavaWeb對數(shù)據(jù)庫的操作以及加密技術,防注入等等技術心得體會經(jīng)過近一個月緊張的數(shù)據(jù)庫課程設計,加之中間還夾雜著兩個考試,自己已經(jīng)累得不成樣子了。不過,雖然很累,但是自己還是學到了不少的東西。以下分幾個方面談談自己的心得。1、 對Java編程能力的提高。編完這個系統(tǒng),我用Eclipse計算了一下,光Java代碼就有5800多行,中間也用到了繼承、接口等高級一點的編程方法,近7000行代碼對于大三的學生來說,不多不少吧。以前也編過幾個工程量大致相當?shù)膒roject,從project中鍛煉自己的能力,這一點對自己幫助還是挺大的。畢竟嘴上說誰都會,但是動起手來就會遇到形形色色各種問題。所以說,這次的課設對自己的邏輯鍛煉還是蠻大的,對Java的理解也加深了一點。也學會了很多新的API,諸如JTable、JInternalFrame、JComboBox等等。2、 JavaWeb入門。以前雖然一直都想學習JavaWeb方面的知識,也一直有在看Web方面的書籍,但是畢竟沒有動力、導致學習效率低下。這次接觸了到數(shù)據(jù)庫的課程設計,在Deadline的強大壓力之下,逼著自己去快速的學習JavaWeb知識?;叵肫甬敵?,結合自己此前JavaSE、Android、HTML、XML的基礎,其實JavaWeb入門很容易,不到一天就能編出像樣的東西了。后來由于時間有限,我B/S端做的并不是很好,寒假里再去深入去學習吧。3、 數(shù)據(jù)庫知識加強。雖然以前上過數(shù)據(jù)庫的課程,也做了數(shù)據(jù)庫的實驗。可是那個東西畢竟太抽象,知識僅僅停留在紙面上。此前做的幾個project也經(jīng)常用到數(shù)據(jù)庫,但是也僅僅是幾個簡單的Select就能搞定的難度,像這樣的完整做一個管理系統(tǒng),此前還未曾嘗試過。所以這次無論是從SQL語法而言、還是對數(shù)據(jù)庫知識的復習,自己的數(shù)據(jù)庫知識的都有很大的提升。系統(tǒng)中也用到了視圖、存儲過程等等,這些東西此前都沒有真正實戰(zhàn)過,所以這次還是有蠻大的收貨,至少以后再次遇到就不會那么陌生了。4、 其他方面。經(jīng)過這次數(shù)據(jù)庫的課設,自己也懂得了不少的道理。沒有壓力就沒有動力,沒有動力就會導致效率低下。就拿JavaWeb而言,此前就很想學習了,可是一直就拖著,今天看一點明天看一點,導致在數(shù)據(jù)庫課設之前,自己的JavaWeb基礎幾乎為零。但是有了數(shù)據(jù)庫課設的這個動力,也就幾天時間就從Web零基礎入門了,能寫簡單的幾個頁面了,也能實現(xiàn)幾個簡單的操作。所以說,凡事不要總是拖著去做,有時間就趕緊學了,不要等到需要用的時候再去學習,到時候就來不及了。書到用時方恨少。5、 關于數(shù)據(jù)庫課設的一點建議。這里僅僅是自己的一點看法,也許不一定對。關于這個課設,如果僅僅是只做一端(C/S、B/S僅做一方面,但是功能必須全)的話,如果把時間放久一點,就難度和工程量而言基本上是合理的。但是如果是做兩端的話,個人認
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產品評價表格-產品數(shù)據(jù)
- 農產品產地直銷物流配送協(xié)議
- 工作進度跟蹤表格:工作進度管理表
- 水處理技術服務合同
- 車輛租賃及交通服務協(xié)議條款說明
- 健康醫(yī)療信息系統(tǒng)運維服務合同
- 企業(yè)經(jīng)營指標統(tǒng)計表-收入、利潤3個關鍵指標
- 被動語態(tài)在中考英語中的考查點教案
- 經(jīng)典童話故事對幼兒的成長影響
- 新時代綠色農業(yè)標準化生產推廣方案
- GA/T 992-2012停車庫(場)出入口控制設備技術要求
- 2、組織供應、運輸、售后服務方案
- 體育測量與評價-第一章緒論課件
- 航空機載設備履歷本
- 企業(yè)風險管理-戰(zhàn)略與績效整合(中文版)
- 高效能人士的七個習慣The7HabitsofHighlyEffectivePeople課件
- 小學體育與健康教育科學二年級下冊第一章體育基本活動能力立定跳遠教案 省一等獎
- 工程分包管理計劃
- 民事訴訟法學整套ppt課件完整版教學教程最全電子講義(最新)
- 河北省自然科學基金資助項目申請書模板
- 四年級奧數(shù)-容斥問題
評論
0/150
提交評論