學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)及醫(yī)院住院反饋系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(含外文翻譯)_第1頁(yè)
學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)及醫(yī)院住院反饋系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(含外文翻譯)_第2頁(yè)
學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)及醫(yī)院住院反饋系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(含外文翻譯)_第3頁(yè)
學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)及醫(yī)院住院反饋系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(含外文翻譯)_第4頁(yè)
學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)及醫(yī)院住院反饋系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(含外文翻譯)_第5頁(yè)
已閱讀5頁(yè),還剩104頁(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)介

ABSTRACTXLI目錄28第1章.引言 1299171.1.課題背景 1243971.2.課題的價(jià)值及意義 2302961.2.1.提高工作效率 2237621.2.2.增加經(jīng)濟(jì)效益 2231671.2.3.提高醫(yī)療水平 2292701.2.4.改變管理者的決策方式 2193671.3.課題的國(guó)內(nèi)外研究現(xiàn)狀 289321.4.課題的難點(diǎn)、重點(diǎn)、核心問(wèn)題及方向 3252321.5.術(shù)語(yǔ)列表 418067第2章.軟件開(kāi)發(fā)基礎(chǔ) 561182.1.應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程 5144752.1.1.需求的分析 5129772.1.2.系統(tǒng)分析過(guò)程 687472.1.3.系統(tǒng)設(shè)計(jì)過(guò)程 690672.2.J2EE簡(jiǎn)介 6133962.2.1.J2EE概述 6308632.2.2.J2EE的優(yōu)勢(shì) 7266672.2.3.穩(wěn)定的可用性: 8166082.3.數(shù)據(jù)庫(kù)基礎(chǔ) 8273452.3.1.數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng) 842892.3.2.數(shù)據(jù)庫(kù)模型 9132732.3.3.關(guān)系型數(shù)據(jù)庫(kù) 10192712.3.4.關(guān)系型數(shù)據(jù)庫(kù)設(shè)計(jì) 1211662.4.開(kāi)發(fā)工具的選擇 1353642.4.1.MyEclipse9 13159412.4.2.MySQL5.5 1317724第3章.需求和可行性分析 16123583.1.功能需求分析 1654453.2.管理、技術(shù)上可行性分析 16169283.2.1.管理上的可行性 16321223.2.2.技術(shù)可行性 16177513.2.3.安全上的可行性 17238第4章.系統(tǒng)設(shè)計(jì) 19209454.1.系統(tǒng)總體設(shè)計(jì) 19237134.1.1.醫(yī)院反饋投票系統(tǒng)的設(shè)計(jì) 19272524.1.2.系統(tǒng)設(shè)計(jì)原則 195494.1.3.MVC模式 20214464.1.4.系統(tǒng)總體結(jié)構(gòu) 20164394.1.5.系統(tǒng)的層次結(jié)構(gòu)設(shè)計(jì) 2052744.2.功能模塊設(shè)計(jì) 22208014.3.數(shù)據(jù)庫(kù)的設(shè)計(jì) 226408第5章.系統(tǒng)開(kāi)發(fā) 2317725.1.數(shù)據(jù)庫(kù)設(shè)計(jì) 23292535.2.創(chuàng)建數(shù)據(jù)庫(kù) 23171835.3.創(chuàng)建表 23169155.3.1.創(chuàng)建數(shù)據(jù)庫(kù)中用到的反饋投票表: 23128345.3.2.創(chuàng)建數(shù)據(jù)庫(kù)中用到的用戶表 2458595.4.連接數(shù)據(jù)庫(kù) 2558285.5.功能的實(shí)現(xiàn) 26260845.5.1.歡迎頁(yè)面: 26165565.5.2.問(wèn)卷調(diào)查頁(yè)面 27313695.5.3.投票提交成功頁(yè)面 30179875.5.4.投票成功頁(yè)面 31121155.5.5.管理員登陸頁(yè)面 3299425.5.6.投票結(jié)果詳情頁(yè)面 3386775.5.7.刪除投票 34242895.5.8.投票人數(shù)統(tǒng)計(jì)頁(yè)面 3525763第6章.系統(tǒng)測(cè)試、總結(jié)和展望 3919586.1.系統(tǒng)測(cè)試 396286.1.1.測(cè)試環(huán)境 3993366.1.2.結(jié)果分析 3934166.2.總結(jié) 404962致謝 4130452參考文獻(xiàn) 421049外文資料原文 4310824翻譯文稿 50電子科技大學(xué)學(xué)士學(xué)位論文第1章引言PAGE2PAGE3引言課題背景近年來(lái),計(jì)算機(jī)網(wǎng)絡(luò)特別是Internet在我國(guó)有著長(zhǎng)足的發(fā)展,據(jù)統(tǒng)計(jì),我國(guó)在1998年還只有210萬(wàn)因特網(wǎng)用戶,到1999年底已升至890萬(wàn)臺(tái),因特網(wǎng)用戶已達(dá)2250萬(wàn)。從目前來(lái)看,互聯(lián)網(wǎng)提供的各種便利服務(wù),如網(wǎng)上購(gòu)物,網(wǎng)絡(luò)銀行,無(wú)紙辦公,正取代原來(lái)的生活方式,為人們喜愛(ài)和接受。可以想象,在不遠(yuǎn)的將來(lái),幾乎是我們身邊的每一件事情,都可以借助與網(wǎng)絡(luò)和計(jì)算機(jī)實(shí)現(xiàn)。投票行為,是現(xiàn)代民主社會(huì)中一個(gè)經(jīng)常發(fā)生的行為,而不是專屬于選舉的特殊行為,上至國(guó)家領(lǐng)導(dǎo)人選舉,下至用餐抉擇,都要進(jìn)行投票。熱別是在近來(lái),各類(lèi)投票活動(dòng)不斷增加,不僅有傳統(tǒng)的選舉投票,如各級(jí)黨代會(huì)、人大、政協(xié)選舉;還有其他的評(píng)審?fù)镀?,如各?jí)、各類(lèi)獎(jiǎng)項(xiàng)評(píng)審,立項(xiàng)項(xiàng)目評(píng)審;再如各級(jí)各類(lèi)十佳、最佳人物、食物評(píng)比,人事考評(píng)、論文評(píng)審、晉級(jí)評(píng)議等,所有這些活動(dòng)都是和投票行為緊密聯(lián)系的。然而,傳統(tǒng)的人工投票方式存在的問(wèn)題卻日益突出:第一,人工記費(fèi)花費(fèi)的時(shí)間太長(zhǎng)。第二,重新記票相當(dāng)困難。這是因?yàn)槠毕溟_(kāi)封,選票難以聚集,而且記票時(shí)有可能弄張選票,甚至遺失選票,這無(wú)疑加大了投票的代價(jià),造成了人財(cái)力的浪費(fèi)。在這種情況下,投票行為的實(shí)現(xiàn)方式也不可能在這個(gè)日新月異的社會(huì)環(huán)境中停滯不前,于是,電子投票系統(tǒng)便應(yīng)運(yùn)而生。電子投票作為通常投票的電子化,利用先進(jìn)的網(wǎng)絡(luò)設(shè)施和密碼學(xué)技術(shù),使選民可以在投票站或自己家中設(shè)置的計(jì)算機(jī)終端通過(guò)互聯(lián)網(wǎng)進(jìn)行投票,最后的記票工作全部由計(jì)算機(jī)自動(dòng)完成,不僅在組織工作、選票搜集與統(tǒng)計(jì)方面都節(jié)省了大量的人力物力,而且在一定程度上保證投票人的利益和投票結(jié)果的公正,所有這些優(yōu)點(diǎn)使其取代傳統(tǒng)的投票方式成為必然的趨勢(shì)。現(xiàn)在,計(jì)算機(jī)互聯(lián)技術(shù)、網(wǎng)絡(luò)安全、通訊技術(shù)的高度發(fā)展,以及密碼學(xué)相關(guān)領(lǐng)域的重大突破,使電子投票系統(tǒng)真正大規(guī)模應(yīng)用于投票逐步成為可能。本系統(tǒng)創(chuàng)新性地將電子投票引入到醫(yī)院住院病人反饋意見(jiàn)的過(guò)程中,可以說(shuō)本系統(tǒng)是一個(gè)擁有特定投票內(nèi)容的投票系統(tǒng)。它幫助病人快捷方便的把住院信息、自身病情及恢復(fù)情況、以及對(duì)醫(yī)院住院服務(wù)的意見(jiàn)反饋給院方,對(duì)于院方掌握病人病情確定下一步治療和改進(jìn)自身服務(wù)有著非常重要的意義。課題的價(jià)值及意義提高工作效率本系統(tǒng)對(duì)醫(yī)院提供直接、準(zhǔn)確、快捷的信息,從根本上改變了傳統(tǒng)的類(lèi)似通過(guò)打電話給醫(yī)生反應(yīng)病情的靜態(tài)、呆板、緩慢的信息反饋方式,并且投票項(xiàng)由院方自己設(shè)定可以去除那些多余的無(wú)關(guān)的信息,正常運(yùn)行本系統(tǒng)后,可以與院方的住院病人管理系統(tǒng)關(guān)聯(lián)起來(lái),醫(yī)生可以一目了然的觀察病人的病情,得到更加有效地治療方案;醫(yī)院管理方可以通過(guò)病人的反饋確定改進(jìn)醫(yī)院服務(wù)機(jī)制的方案。大大提高了住院病人信息反饋的效率。增加經(jīng)濟(jì)效益先進(jìn)的信息反饋手段的實(shí)施大大推動(dòng)了管理觀念的變革,使醫(yī)院的工作效率、服務(wù)質(zhì)量和醫(yī)療水平都有了一定的提高,詩(shī)人們感受到清新的現(xiàn)代氣息,重塑了醫(yī)院的整體形象,這在相當(dāng)程度上穩(wěn)定并增加了病源,增收節(jié)支,增加了經(jīng)濟(jì)效益。提高醫(yī)療水平通過(guò)本系統(tǒng)可以實(shí)現(xiàn)遠(yuǎn)程病情的判斷,節(jié)省了不必要的會(huì)診,使一些醫(yī)院,特別是二級(jí)以下醫(yī)院的自身醫(yī)診力量不足的狀況得到有效地改善;疑難雜癥無(wú)需病人轉(zhuǎn)院,也為病人節(jié)省了大量就診費(fèi)用;通過(guò)遠(yuǎn)程醫(yī)療設(shè)置家庭病床,方便病人,減輕了病區(qū)壓力。改變管理者的決策方式?jīng)Q策需要豐富的數(shù)據(jù),手工處理數(shù)據(jù)階段匯總一般要在月末5-10天才能完成。本系統(tǒng)實(shí)施運(yùn)行以后,可動(dòng)態(tài)適時(shí)的向領(lǐng)導(dǎo)提供即時(shí)性的數(shù)據(jù),且所需信息量大大的減少,于是他們便從“終末管理”變成了“過(guò)程管理”;醫(yī)院數(shù)、質(zhì)、量的獎(jiǎng)評(píng)也有了更為豐富而準(zhǔn)確的數(shù)據(jù),獎(jiǎng)評(píng)方式也發(fā)生了變革。總之,隨著醫(yī)院住院反饋系統(tǒng)的深入應(yīng)用,后期軟件的不斷開(kāi)發(fā),將使醫(yī)院的管理發(fā)生革命性的變化,醫(yī)院住院反饋系統(tǒng)將被越來(lái)越多的醫(yī)院所接受。課題的國(guó)內(nèi)外研究現(xiàn)狀我國(guó)現(xiàn)有3萬(wàn)多所醫(yī)院,目前大多數(shù)醫(yī)院在病床管理和財(cái)務(wù)管理方面采用了數(shù)字化借助計(jì)算機(jī)軟件系統(tǒng)進(jìn)行管理,最重要的病人管理信息基本沒(méi)有使用軟件管理。據(jù)衛(wèi)生部調(diào)查顯示,只有不到三分之一的醫(yī)院使用了信息管理系統(tǒng)。衛(wèi)生部強(qiáng)調(diào)“國(guó)內(nèi)三甲以上醫(yī)院都必須實(shí)行信息化管理”,未來(lái)幾年中,我國(guó)將有超過(guò)70%的醫(yī)院實(shí)現(xiàn)信息化管理,預(yù)計(jì)市場(chǎng)總量將達(dá)到200億元。醫(yī)院住院意見(jiàn)反饋系統(tǒng)具有廣闊的前景和發(fā)展空間。2000年以后隨著信息技術(shù)的發(fā)展,我國(guó)的醫(yī)院管理系統(tǒng)歷經(jīng)了單機(jī)單任務(wù)、PC機(jī)+局域網(wǎng)+部門(mén)級(jí)信息系統(tǒng),直到C/S、B/S結(jié)構(gòu)的一體化醫(yī)院信息系統(tǒng)。目前各醫(yī)院建立的計(jì)算機(jī)系統(tǒng)主要是MIS系統(tǒng),以財(cái)務(wù)為重點(diǎn),涉及掛號(hào)、收費(fèi)、藥庫(kù)等流程,二真正涉及臨床醫(yī)療為病人服務(wù)的信息化(PACS、CIS、CPR)幾乎沒(méi)有。在國(guó)外,醫(yī)院信息系統(tǒng)的開(kāi)發(fā)、應(yīng)用正向廣度和深度發(fā)展,達(dá)到了前所未有的新高度、新水平。例如日本的醫(yī)院系統(tǒng)趨向于系統(tǒng)化、網(wǎng)絡(luò)化、綜合性,開(kāi)始走自上而下的開(kāi)發(fā)路線,一般都有大型機(jī)作為中心、支撐整個(gè)系統(tǒng)工作,并盡量采用微機(jī)和網(wǎng)絡(luò)技術(shù),投資規(guī)模大,實(shí)現(xiàn)了數(shù)據(jù)從發(fā)生源直接輸入到計(jì)算機(jī)的形式。這也許就是我國(guó)醫(yī)院信息系統(tǒng)發(fā)展將要走的路。課題的難點(diǎn)、重點(diǎn)、核心問(wèn)題及方向課題的研究?jī)?nèi)容是醫(yī)院住院意見(jiàn)反饋系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。采用java語(yǔ)言和數(shù)據(jù)庫(kù)設(shè)計(jì)一套基于web訪問(wèn)的軟件系統(tǒng)。該系統(tǒng)由前臺(tái)數(shù)據(jù)輸入界面,后臺(tái)管理界面組成,并且具有一定的統(tǒng)計(jì)功能。每個(gè)病人都有自己的個(gè)人頁(yè)面,頁(yè)面包括:病種、床號(hào)、入院日期、出院日期、社保、姓名、性別、年齡、住院號(hào)、文化程度、聯(lián)系電話、家庭住址等病人個(gè)人信息,也包括診斷、病史小結(jié)、專科查體(陽(yáng)性體征)、生活質(zhì)量、輔助檢查、治療等醫(yī)院檢查情況,還有供病人反饋的出院評(píng)估病人滿意度評(píng)分。此系統(tǒng)可供病人查看自己檢查治療的安排和結(jié)果,時(shí)刻動(dòng)態(tài)的了解自己病情和資料安排;也可供醫(yī)生了解病人的基本信息,安排病人治療,并發(fā)布病人的治療計(jì)劃和檢查各項(xiàng)結(jié)果,達(dá)到醫(yī)患交流的目的;更有新意的是提供給病人出院后對(duì)在醫(yī)院住院后進(jìn)行信息反饋評(píng)價(jià)的平臺(tái)。完成項(xiàng)目需要進(jìn)行可行性分析、需求分析、系統(tǒng)設(shè)計(jì)和代碼實(shí)現(xiàn)。前端病人個(gè)人頁(yè)面的設(shè)計(jì)和后臺(tái)數(shù)據(jù)庫(kù)的建立是課題擬解決的關(guān)鍵問(wèn)題。系統(tǒng)必須滿足病人、醫(yī)院查詢、輸入信息的需求,具有界面友好,操作簡(jiǎn)單等特點(diǎn)。各部分內(nèi)容修改查詢具有不同的權(quán)限。還要保障醫(yī)患的隱私。課題的最終目標(biāo)是完成醫(yī)院住院意見(jiàn)反饋的軟件系統(tǒng)和完成論文。前端網(wǎng)頁(yè)設(shè)計(jì)可以使用J2EE語(yǔ)言來(lái)完成代碼設(shè)計(jì),數(shù)據(jù)庫(kù)則需要病人注冊(cè)、信息儲(chǔ)存發(fā)布等功能。數(shù)據(jù)庫(kù)建立是一大難點(diǎn),需要運(yùn)用SQL相關(guān)技術(shù)。課題特色是網(wǎng)站加數(shù)據(jù)庫(kù)的模型,并且將J2EE和數(shù)據(jù)庫(kù)技術(shù)結(jié)合起來(lái)來(lái)實(shí)現(xiàn)病人信息展示和反饋平臺(tái)。不僅有前端的網(wǎng)頁(yè)展示,而且有后臺(tái)數(shù)據(jù)庫(kù)的搭建。能夠把大學(xué)期間學(xué)到的專業(yè)知識(shí)充分的運(yùn)用起來(lái),對(duì)我自身的素質(zhì)和學(xué)習(xí)實(shí)踐能力是一大挑戰(zhàn)。術(shù)語(yǔ)列表JSP:(JavaServerPages),JSP是一種基于Java的技術(shù),用來(lái)產(chǎn)生跨平臺(tái)和跨Web服務(wù)器的動(dòng)態(tài)頁(yè)面。JDBC:(JavaDataBaseConnectivity),Java數(shù)據(jù)庫(kù)連接。它主要是一套讓你訪問(wèn)數(shù)據(jù)庫(kù)的API,程序人員可以利用JDBCAPI來(lái)執(zhí)行SQL語(yǔ)句。Servlet:Servlet可以稱之為“服務(wù)器小程序”,與Javaapplication不同,它沒(méi)有main方法,而是用一些特定的方法用于啟動(dòng)、執(zhí)行和退出。通過(guò)使用Servlet,可以與運(yùn)行與客戶端的Applet進(jìn)行交互,也可以直接與HTML頁(yè)進(jìn)行交互。JavaBeans:JavaBeans是可復(fù)用的平臺(tái)中立的軟件組件,可以在軟件開(kāi)發(fā)工具中被直觀地操作。應(yīng)用程序開(kāi)發(fā)者可以通過(guò)支持JavaBeans的開(kāi)發(fā)工具,直接使用現(xiàn)成的JavaBeans,也可以在開(kāi)發(fā)工具容器中,對(duì)組件進(jìn)行必要的修改、測(cè)試而不必編寫(xiě)和編譯程序。在Java模型中,組件可以修改或與其他組件組合以生成新組件或完整的應(yīng)用程序。HTML:(HypertextMarkupLanguage)超文本標(biāo)記語(yǔ)言,它是組織多媒體文檔的重要語(yǔ)言,它不僅用來(lái)編寫(xiě)Web網(wǎng)頁(yè),而且可以使用它來(lái)制作光盤(pán)上的多媒體節(jié)目。HTML可用來(lái)編排文檔、創(chuàng)建列表、建立鏈接等等。XML:(ExtensibleMarkupLanguage)可擴(kuò)展標(biāo)記語(yǔ)言,它是一種具有數(shù)據(jù)描述功能(Meta-language)、高度結(jié)構(gòu)性及可驗(yàn)證性的語(yǔ)言。SQL:(StructuredQueryLanguage),結(jié)構(gòu)化查詢語(yǔ)言。SQL語(yǔ)言地任務(wù)就是與各種數(shù)據(jù)庫(kù)建立關(guān)系,SQL語(yǔ)言是關(guān)系型數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言,大多數(shù)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言并采用了SQL的語(yǔ)言標(biāo)準(zhǔn)。MySQL:MySQL是一個(gè)可用于各種流行操作系統(tǒng)平臺(tái)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),它具有客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。按照使用又可以分為DML(DataManipulationLanguage),即數(shù)據(jù)操作語(yǔ)言和DDL(DataDefinitionLanguage)。Tomcat:Servlet容器,負(fù)責(zé)處理客戶請(qǐng)求。當(dāng)客戶請(qǐng)求來(lái)到時(shí),獲取請(qǐng)求,然后調(diào)用某個(gè)Servlet,并把Servlet的執(zhí)行結(jié)果返回給用戶。電子科技大學(xué)學(xué)士學(xué)位論文第2章軟件開(kāi)發(fā)基礎(chǔ)軟件開(kāi)發(fā)基礎(chǔ)應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程一般將應(yīng)用軟件的開(kāi)發(fā)過(guò)程劃分為可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、測(cè)試、實(shí)施等階段。這種劃分容易使人忽視軟件功能和結(jié)構(gòu)上存在的差異和內(nèi)在聯(lián)系,容易將兩者混合在一起考慮。另一種劃分是從區(qū)分“做什么”和“怎么做”的角度出發(fā)將該過(guò)程劃分為需求階段、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)等過(guò)程。這種劃分比起傳統(tǒng)的階段劃分,突出了邏輯結(jié)構(gòu)與物理結(jié)構(gòu)的區(qū)別對(duì)軟件設(shè)計(jì)過(guò)程的指導(dǎo)更為明確,如圖2-1應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程。圖2-1系統(tǒng)開(kāi)發(fā)過(guò)程圖2-1系統(tǒng)開(kāi)發(fā)過(guò)程需求的分析軟件產(chǎn)業(yè)存在的一個(gè)普遍問(wèn)題就是缺乏統(tǒng)一定義的名詞術(shù)語(yǔ)來(lái)描述我們的工作。客戶所定義的"需求"對(duì)開(kāi)發(fā)者似乎是一個(gè)較高層次的產(chǎn)品概念,而開(kāi)發(fā)人員所說(shuō)的"需求"對(duì)用戶來(lái)說(shuō)又像是詳細(xì)設(shè)計(jì)了。實(shí)際上,軟件需求包含著多個(gè)層次,不同層次的需求從不同角度與不同程度反映著細(xì)節(jié)問(wèn)題。IEEE軟件工程標(biāo)準(zhǔn)詞匯表(1997年)將需求定義為:用戶解決問(wèn)題或達(dá)到目標(biāo)所需的條件或能力。系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或能力。一種反映上面A或B所描述的條件或能力的文檔說(shuō)明。IEEE的定義包括從用戶角度(系統(tǒng)的外部行為),以及從開(kāi)發(fā)者角度(一些內(nèi)部特性)來(lái)闡述需求,其關(guān)鍵的問(wèn)題是一定要編寫(xiě)需求文檔。也就是說(shuō):需求是用戶所需要的并能觸發(fā)一個(gè)程序或系統(tǒng)開(kāi)發(fā)工作的說(shuō)明;需求是從系統(tǒng)外部能發(fā)現(xiàn)系統(tǒng)所具有的滿足于用戶的特點(diǎn)、功能及屬性等;需求是指明必須實(shí)現(xiàn)什么的規(guī)格說(shuō)明。它描述了系統(tǒng)的行為、特性或?qū)傩?,是在開(kāi)發(fā)過(guò)程中對(duì)系統(tǒng)的約束。系統(tǒng)分析過(guò)程系統(tǒng)分析也稱邏輯設(shè)計(jì),是應(yīng)用軟件系統(tǒng)開(kāi)發(fā)過(guò)程中的重要一環(huán),系統(tǒng)分析工作做得好壞,直接影響整個(gè)系統(tǒng)開(kāi)發(fā)的成敗。在分析階段,開(kāi)發(fā)人員旨在構(gòu)造一個(gè)正確、完整、一致、無(wú)歧異、現(xiàn)實(shí)的并且是可驗(yàn)證的系統(tǒng)模型。系統(tǒng)分析的核心內(nèi)容是正確表達(dá)理解和表達(dá)用戶需求,明確系統(tǒng)做什么。目標(biāo)是基于用戶的需求,分析與優(yōu)化系統(tǒng)的信息流程,在不考慮具體實(shí)現(xiàn)環(huán)境的前提下,建立系統(tǒng)的邏輯結(jié)構(gòu),使其相對(duì)穩(wěn)定,不隨具體實(shí)現(xiàn)環(huán)境的變化而變化,便于系統(tǒng)適應(yīng)環(huán)境的變化及系統(tǒng)的維護(hù)與擴(kuò)充,最后形成系統(tǒng)分析文檔,作為系統(tǒng)設(shè)計(jì)的依據(jù)。系統(tǒng)設(shè)計(jì)過(guò)程在系統(tǒng)設(shè)計(jì)階段,要這重解決“怎么做”的問(wèn)題。即采用某種系統(tǒng)設(shè)計(jì)方法,將系統(tǒng)的信息模型和功能模型轉(zhuǎn)化為系統(tǒng)的信息結(jié)構(gòu)或數(shù)據(jù)庫(kù)物理模式及軟件結(jié)構(gòu),在充分利用現(xiàn)有軟件組件的前提下,設(shè)計(jì)每個(gè)軟件模塊的輸入和輸出格式,形成系統(tǒng)設(shè)計(jì)文檔,作為系統(tǒng)實(shí)施的直接依據(jù)。在系統(tǒng)設(shè)計(jì)階段,開(kāi)發(fā)人員定義項(xiàng)目的設(shè)計(jì)目標(biāo),并把項(xiàng)目分解成能被單個(gè)小組實(shí)現(xiàn)的子系統(tǒng)。開(kāi)發(fā)人員也要選擇構(gòu)建項(xiàng)目的策略,如系統(tǒng)運(yùn)行的硬件/軟件平臺(tái)、持續(xù)的數(shù)據(jù)管理策略、全局控制流、訪問(wèn)控制策略、以及邊界條件的處理。系統(tǒng)設(shè)計(jì)的結(jié)果是一份清楚地描述,說(shuō)明所選擇每條策略,子系統(tǒng)分解以及表示系統(tǒng)軟硬件映射的配置圖。J2EE簡(jiǎn)介J2EE概述隨著Internet計(jì)算的迅速發(fā)展,作為一門(mén)新興的語(yǔ)言,Java以其完全面向?qū)ο蟮脑O(shè)計(jì)風(fēng)格和良好的平臺(tái)無(wú)關(guān)性,已經(jīng)超越了語(yǔ)言本身的功能,成為了開(kāi)發(fā)Web應(yīng)用的理想平臺(tái)。Java平臺(tái)包括了一種用于實(shí)現(xiàn)Java對(duì)象的語(yǔ)言和這些Java對(duì)象的運(yùn)行環(huán)境——Java虛擬機(jī)JVM(JavaVirtualMachine)。Java語(yǔ)言的主要特點(diǎn)是平臺(tái)無(wú)關(guān)性:在一個(gè)操作系統(tǒng)下開(kāi)發(fā)的Java對(duì)象可以不做修改的運(yùn)行在另外一個(gè)操作系統(tǒng)的JVM上。JVM封裝了各種底層操作系統(tǒng)在體系結(jié)構(gòu)和語(yǔ)義上的差異,在此基礎(chǔ)上為Java對(duì)象提供了一個(gè)統(tǒng)一的運(yùn)行環(huán)境。Java對(duì)象的源代碼被編譯為平臺(tái)無(wú)關(guān)的中性代碼——字節(jié)碼。在運(yùn)行時(shí)刻,字節(jié)碼由JVM進(jìn)行解釋,被映射為真正的相關(guān)的操作系統(tǒng)調(diào)用而得以執(zhí)行功能。因此,只要是100%純Java語(yǔ)言實(shí)現(xiàn)的對(duì)象可以被各種具有相應(yīng)JVM的操作系統(tǒng)所支持。Sun公司的J2EE構(gòu)架是在1997年的JavaOne大會(huì)上宣布的,J2EE定義了開(kāi)發(fā)和運(yùn)行企業(yè)級(jí)Web應(yīng)用的標(biāo)準(zhǔn)。它是一組規(guī)范,旨在為支持Java語(yǔ)言服務(wù)器端部署而提供平臺(tái)無(wú)關(guān)的、可移植的、多用戶的、安全的和標(biāo)準(zhǔn)的企業(yè)級(jí)平臺(tái)。伴隨J2EE的出現(xiàn),Java語(yǔ)言的功能和工具得到了極大的擴(kuò)充、豐富和發(fā)展,可以用于復(fù)雜的、多層次的以及分布式的電子商務(wù)和企業(yè)級(jí)應(yīng)用。J2EE構(gòu)架與技術(shù)為組件開(kāi)發(fā)模型提供廣泛的支持,同時(shí)也提供一組開(kāi)發(fā)工具和服務(wù),以便開(kāi)發(fā)模塊化的、可重用的和平臺(tái)獨(dú)立的各種組件技術(shù)的業(yè)務(wù)邏輯。J2EE的優(yōu)勢(shì)J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制,它具有以下突出的優(yōu)點(diǎn):1、事實(shí)的標(biāo)準(zhǔn):J2EE是由SUN引導(dǎo),各廠商共同發(fā)起的,并得到廣泛認(rèn)可的工業(yè)標(biāo)準(zhǔn),業(yè)內(nèi)的大企業(yè)(如IBM,BEA,ORACLE等)都積極參與,很多應(yīng)用軟件開(kāi)發(fā)商也把自己的產(chǎn)品轉(zhuǎn)移到J2EE平臺(tái)上來(lái),使之成為事實(shí)的工業(yè)標(biāo)準(zhǔn)。因此,J2EE擁有良好的市場(chǎng)和旺盛的生命力。2、可保存現(xiàn)有的IT資產(chǎn):使用J2EE能夠充分利用客戶原有的投資,保留已有的信息資源;同時(shí),由于基于J2EE平臺(tái)的產(chǎn)品幾乎在任何操作系統(tǒng)和硬件配置上都可以運(yùn)行,現(xiàn)有的操作系統(tǒng)和硬件也能夠被保留使用。3、高效的開(kāi)發(fā):J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開(kāi)發(fā)人員可以集中精力在如何創(chuàng)建業(yè)務(wù)邏輯上,相應(yīng)地縮短了開(kāi)發(fā)時(shí)間。4、支持異構(gòu)環(huán)境:J2EE能夠開(kāi)發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的程序不依賴于任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計(jì)合理的基于J2EE的應(yīng)用程序只需開(kāi)發(fā)一次就可被部署到各種平臺(tái)。這在典型的異構(gòu)企業(yè)計(jì)算環(huán)境中是十分重要的。J2EE標(biāo)準(zhǔn)也允許客戶定購(gòu)與J2EE兼容的第三方的現(xiàn)成的組件,把它們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制定整個(gè)方案所需的費(fèi)用。5、可伸縮性:企業(yè)必須選擇一種服務(wù)器端平臺(tái),這種平臺(tái)應(yīng)能提供極佳的可伸縮性去滿足那些在它們的系統(tǒng)上進(jìn)行商業(yè)運(yùn)作的大批新客戶。基于J2EE平臺(tái)的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX和大型機(jī)系統(tǒng),這種系統(tǒng)單機(jī)可支持64至256個(gè)處理器。(這是NT服務(wù)器所望塵莫及的)J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺(tái)服務(wù)器集成部署。這種部署可達(dá)數(shù)千個(gè)處理器,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿足未來(lái)商業(yè)應(yīng)用的需要。穩(wěn)定的可用性:一個(gè)服務(wù)器端平臺(tái)必須能夠全天候運(yùn)轉(zhuǎn)以滿足公司客戶和合作伙伴的需要。因?yàn)镮nternet是全球化的、無(wú)處不在的,即使在夜間按計(jì)劃停機(jī)也可能造成嚴(yán)重?fù)p失。意外停機(jī)有可能造成災(zāi)難性后果。可以把J2EE部署到可靠的操作環(huán)境中,它們支持長(zhǎng)期的可用性。最健壯的操作系統(tǒng)可達(dá)到99.999%的可用性或每年只需5分鐘的停機(jī)時(shí)間,這是實(shí)時(shí)性很強(qiáng)商業(yè)系統(tǒng)理想的選擇。數(shù)據(jù)庫(kù)基礎(chǔ)數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)一.數(shù)據(jù)庫(kù)信息:客觀事物的性質(zhì)和特征在人腦中的反映。數(shù)據(jù):是對(duì)客觀事物的性質(zhì)或特征的一種抽象符號(hào)化表示。是記錄下來(lái)的信息。數(shù)據(jù)處理:是對(duì)各種形式的數(shù)據(jù)進(jìn)行收集、組織、加工、存儲(chǔ)、傳播等工作。數(shù)據(jù)處理又稱為信息加工。數(shù)據(jù)庫(kù):顧名思義就是存放數(shù)據(jù)的倉(cāng)庫(kù),特指以一定的組織形式存放于計(jì)算機(jī)中的相關(guān)數(shù)據(jù)的集合。二.數(shù)據(jù)庫(kù)管理系統(tǒng)1.數(shù)據(jù)庫(kù)管理系統(tǒng)的概念:數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,DBMS)是幫助用戶建立、使用和管理數(shù)據(jù)庫(kù)的計(jì)算機(jī)系統(tǒng)。它是位于數(shù)據(jù)庫(kù)和操作系統(tǒng)之間的數(shù)據(jù)庫(kù)管理軟件。2.DBMS的組成a)數(shù)據(jù)定義語(yǔ)言(DataDefinitionLanguage,DLL);用于定義數(shù)據(jù)庫(kù)模式,定義有關(guān)約束條件,供用戶建立數(shù)據(jù)庫(kù)。b)數(shù)據(jù)庫(kù)操作語(yǔ)言(DataManipulationLanguage,DML);實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行的檢索、添加、刪除和修改等操作。c)數(shù)據(jù)庫(kù)運(yùn)行控制程序;負(fù)責(zé)數(shù)據(jù)庫(kù)運(yùn)行過(guò)程中的控制與管理,包括存儲(chǔ)路徑管理程序、緩沖區(qū)管理程序、安全性管理程序、完整性檢查程序、并發(fā)控制程序、事務(wù)管理程序和運(yùn)行日志管理程序等。d)實(shí)用程序3.DBMS的功能DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心,數(shù)據(jù)庫(kù)的建立、使用和維護(hù),都是由DBMS系統(tǒng)統(tǒng)一管理,統(tǒng)一控制。DBMS使用戶方便地定義和操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù),并能保證數(shù)據(jù)的安全性、完整型、并發(fā)性和發(fā)生故障后的系統(tǒng)恢復(fù)。4.DBMS的分類(lèi)按照數(shù)據(jù)管理系統(tǒng)處理數(shù)據(jù)的規(guī)模來(lái)劃分,數(shù)據(jù)庫(kù)管理系統(tǒng)分為大型網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理系統(tǒng)和小型桌面數(shù)據(jù)庫(kù)管理系統(tǒng)。常用的大型網(wǎng)絡(luò)數(shù)據(jù)庫(kù)管理系統(tǒng)有SQLServer,DB2,ORACLE,Sybase等。常用的小型桌面數(shù)據(jù)庫(kù)管理系統(tǒng)有:Dbase,F(xiàn)oxbase,MS-Access等。三.?dāng)?shù)據(jù)庫(kù)系統(tǒng)1.數(shù)據(jù)庫(kù)系統(tǒng)(DBS)是指在計(jì)算中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成。一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)及開(kāi)發(fā)工具、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員(DataBaseAdministrator,DBA)和用戶構(gòu)成,其中數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是數(shù)據(jù)庫(kù)系統(tǒng)的核心。2.數(shù)據(jù)庫(kù)管理員數(shù)據(jù)庫(kù)管理員是維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)的專門(mén)人員,主要任務(wù)是:決定數(shù)據(jù)庫(kù)的信息內(nèi)容與結(jié)構(gòu),決定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)和訪問(wèn)策略,實(shí)施數(shù)據(jù)庫(kù)系統(tǒng)的保護(hù),監(jiān)督和控制數(shù)據(jù)庫(kù)的使用和運(yùn)行,響應(yīng)系統(tǒng)的某些變化,改善系統(tǒng)的性能。四.?dāng)?shù)據(jù)庫(kù)技術(shù)的產(chǎn)生、發(fā)展和特點(diǎn)隨著計(jì)算機(jī)軟硬件的發(fā)展,電子數(shù)據(jù)處理技術(shù)的發(fā)展經(jīng)歷了三個(gè)階段:程序管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。數(shù)據(jù)庫(kù)模型數(shù)據(jù)庫(kù)模型是指數(shù)據(jù)庫(kù)中數(shù)據(jù)的組織形式和聯(lián)系方式,即數(shù)據(jù)庫(kù)的整體模型。按照數(shù)據(jù)庫(kù)中數(shù)據(jù)采取的不同聯(lián)系方式,數(shù)據(jù)庫(kù)模型可以分為三種:網(wǎng)狀型、層次型和關(guān)系型。相應(yīng)的數(shù)據(jù)庫(kù)分別被稱為:網(wǎng)狀型數(shù)據(jù)庫(kù)、層次型數(shù)據(jù)庫(kù)和關(guān)系型數(shù)據(jù)庫(kù)。1.網(wǎng)狀型網(wǎng)狀型數(shù)據(jù)庫(kù)模型將每項(xiàng)記錄當(dāng)成一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)和節(jié)點(diǎn)之間可以建立關(guān)聯(lián),形成一個(gè)復(fù)雜的網(wǎng)狀結(jié)構(gòu)。【優(yōu)點(diǎn)】:避免數(shù)據(jù)的重復(fù)性。【缺點(diǎn)】:關(guān)聯(lián)性比較復(fù)雜,尤其是當(dāng)數(shù)據(jù)庫(kù)變得越來(lái)越大時(shí),關(guān)聯(lián)性的維護(hù)會(huì)非常麻煩。2.層次型層次型數(shù)據(jù)庫(kù)模型采用樹(shù)狀結(jié)構(gòu),一句數(shù)據(jù)的不同類(lèi)型,將數(shù)據(jù)分門(mén)別類(lèi),存儲(chǔ)在不同層次上。【優(yōu)點(diǎn)】:數(shù)據(jù)結(jié)構(gòu)類(lèi)似金字塔,不同層次之間的關(guān)聯(lián)性直接而且簡(jiǎn)單?!救秉c(diǎn)】:由于數(shù)據(jù)縱向發(fā)展,橫向關(guān)系難以建立,數(shù)據(jù)可能會(huì)重復(fù)出現(xiàn),造成管理維護(hù)的不便。3.關(guān)系型關(guān)系型數(shù)據(jù)庫(kù)是以二維矩陣來(lái)存儲(chǔ)數(shù)據(jù)的,行和列形成一個(gè)關(guān)聯(lián)的數(shù)據(jù)表(Table)。在關(guān)系型數(shù)據(jù)庫(kù)中,通常由多個(gè)表存在,表與表之間會(huì)因?yàn)樽侄蔚年P(guān)系產(chǎn)生關(guān)聯(lián)。關(guān)系型數(shù)據(jù)庫(kù)1.關(guān)系型數(shù)據(jù)庫(kù)的定義關(guān)系型數(shù)據(jù)庫(kù)是由IBM公司的SunJose實(shí)驗(yàn)室的研究員E.F.Codd博士提出的。E.F.Codd博士指出:關(guān)系型數(shù)據(jù)庫(kù)是一些相關(guān)的表和其他數(shù)據(jù)庫(kù)對(duì)象的集合。這個(gè)定義表達(dá)了3部分的含義:1.在關(guān)系型數(shù)據(jù)庫(kù)中,信息存放在二維表格結(jié)構(gòu)的數(shù)據(jù)表中,一個(gè)表叫做一個(gè)關(guān)系,一個(gè)關(guān)系型數(shù)據(jù)庫(kù)可以包含一個(gè)或多個(gè)表,每個(gè)表包含行(記錄)和列(字段)。2.關(guān)系型數(shù)據(jù)庫(kù)所包含的表之間是有聯(lián)系的,聯(lián)系由表的主鍵和外鍵體現(xiàn)的參照關(guān)系實(shí)現(xiàn)。3.關(guān)系型數(shù)據(jù)庫(kù)不僅包含表,還包含其他的數(shù)據(jù)庫(kù)對(duì)象。數(shù)據(jù)的獨(dú)立性表現(xiàn)在兩個(gè)重要的方面:物理獨(dú)立性和邏輯獨(dú)立性。物理獨(dú)立性是指用戶所看到的數(shù)據(jù)與數(shù)據(jù)的物理存儲(chǔ)是完全獨(dú)立的,即可以改變或重新安排物理存儲(chǔ)而不會(huì)影響到數(shù)據(jù)的使用和邏輯數(shù)據(jù)庫(kù)的設(shè)計(jì)。邏輯獨(dú)立性指的是,可以改變表、行和列之間的相互關(guān)系,即對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改而不會(huì)削弱應(yīng)用程序特別是查詢的功能。關(guān)系型數(shù)據(jù)庫(kù)與表關(guān)系型數(shù)據(jù)庫(kù)由多個(gè)關(guān)系以及其他的數(shù)據(jù)庫(kù)對(duì)象組成,關(guān)系表現(xiàn)為表,表之間因?yàn)槟承┳侄蔚南嚓P(guān)性而產(chǎn)生聯(lián)系。例:用于教學(xué)管理的教學(xué)數(shù)據(jù)庫(kù)的3個(gè)表,分別是學(xué)生表,客車(chē)嘎表,學(xué)生選課表。學(xué)生表的字段為:學(xué)號(hào)(*)、姓名、性別、出生日期、所在系課程表的字段為:課程號(hào)(*)、課程名、學(xué)分學(xué)生選課表的字段為:學(xué)號(hào)(*)、課程號(hào)(*)、成績(jī)其中在學(xué)生選課表中通過(guò)學(xué)號(hào)和課程號(hào),使學(xué)生同課程之間建立起聯(lián)系。3.關(guān)系型數(shù)據(jù)庫(kù)常用術(shù)語(yǔ)實(shí)體:客觀世界實(shí)際存在并可以相互區(qū)分的事務(wù)。實(shí)體可以是人或物或一個(gè)抽象的概念。實(shí)體可以分為單個(gè)實(shí)體和實(shí)體集。屬性:指實(shí)體具有的某種特性。每一個(gè)實(shí)體可以具有若干屬性。每個(gè)屬性都有一個(gè)取值范圍,叫做屬性的域。關(guān)系數(shù)據(jù)庫(kù)中,表的每一列(字段)描述的就是實(shí)體的某個(gè)屬性。聯(lián)系:一對(duì)一的聯(lián)系(1:1)——班長(zhǎng)和班級(jí)之間的聯(lián)系。一對(duì)多的聯(lián)系(1:N)——用戶和手機(jī)號(hào)碼之間的關(guān)系。多對(duì)多的聯(lián)系(N:N)——學(xué)生和課程之間的關(guān)系。關(guān)鍵字和主鍵。實(shí)體的關(guān)鍵字:實(shí)體屬性中,能唯一標(biāo)識(shí)實(shí)體集中每個(gè)實(shí)體的屬性或某幾個(gè)屬性。主鍵:在關(guān)系數(shù)據(jù)庫(kù)中,關(guān)鍵字被稱為主鍵。是指表中的某一列或某幾列的組合。其值可唯一地標(biāo)識(shí)表中的每一條記錄,每個(gè)表必須由且僅有一個(gè)主鍵。主鍵的值必須是唯一,而且不允許為空值(NULL),一般為字符類(lèi)型的字段。外鍵:在關(guān)系型數(shù)據(jù)庫(kù)中,外鍵指表中含有的與另一個(gè)表的主鍵相對(duì)應(yīng)的字段,它用來(lái)與其他表建立聯(lián)系。例:在上面的關(guān)系數(shù)據(jù)庫(kù)中,學(xué)生選課表中的學(xué)號(hào)和課程號(hào)為外鍵,在學(xué)生表和課程表中為主鍵?!緝?yōu)點(diǎn)】:提供表之間的連接??梢愿鶕?jù)外鍵的值來(lái)檢查輸入數(shù)據(jù)的合法性。保證外鍵字段的值都是一個(gè)有效的主鍵,從而可以實(shí)施參照完整性。4.數(shù)據(jù)完整性數(shù)據(jù)完整性是用來(lái)確保數(shù)據(jù)庫(kù)中的數(shù)據(jù)的正確性和可靠性。實(shí)體完整性:是為了保證表中的數(shù)據(jù)唯一,實(shí)體完整性可由主鍵來(lái)實(shí)現(xiàn)。表中的主鍵在所有記錄上的取值必須唯一。域完整性:域完整性可以保證數(shù)據(jù)的的取值在有效的范圍之內(nèi)。參照完整性:用于確保相聯(lián)系的表間的數(shù)據(jù)保持一致,避免因一個(gè)表的記錄的修改,造成另一個(gè)表的內(nèi)容變?yōu)闊o(wú)效的值。一般來(lái)說(shuō),參照完整性是通過(guò)主鍵和外鍵來(lái)維護(hù)的。自定義完整性:由用戶自行定義的,不同于前面3種的完整性,也可以說(shuō)是一種強(qiáng)制數(shù)據(jù)定義。例:在輸入學(xué)生表的記錄時(shí),應(yīng)確保姓名字段不為空(NOTNULL)。關(guān)系型數(shù)據(jù)庫(kù)設(shè)計(jì)一.?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程數(shù)據(jù)庫(kù)設(shè)計(jì)一般都有經(jīng)歷需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)幾個(gè)階段:1.需求分析主要任務(wù):從數(shù)據(jù)庫(kù)的所有用戶那里收集對(duì)數(shù)據(jù)的需求和對(duì)數(shù)據(jù)處理的要求,并把這些需求寫(xiě)成用戶和設(shè)計(jì)人員都能接受的系統(tǒng)需求說(shuō)明書(shū)。2.概念設(shè)計(jì)將需求說(shuō)明書(shū)中關(guān)于數(shù)據(jù)的需求進(jìn)行抽象,進(jìn)而轉(zhuǎn)化為信息世界種的概念模型。建立數(shù)據(jù)庫(kù)概念模型的主要工具是E-R模型,也稱為實(shí)體聯(lián)系模型(Entity-RelationModel)。E-R模型主要采用E-R模型圖表達(dá)數(shù)據(jù)庫(kù)的概念模型。E-R模型圖種包含實(shí)體、屬性和聯(lián)系三種基本圖素。具體規(guī)定如下:矩形框:表示實(shí)體,框內(nèi)寫(xiě)明實(shí)體名。圓角矩形框:表示實(shí)體的屬性,框內(nèi)寫(xiě)明實(shí)體屬性。菱形框:描述實(shí)體間的聯(lián)系,框內(nèi)寫(xiě)明聯(lián)系名。線段:用戶連接相聯(lián)系的實(shí)體和實(shí)體間的屬性。3.邏輯設(shè)計(jì)邏輯設(shè)計(jì)主要是將E-R模型轉(zhuǎn)換為某一特定的DBMS能接受的邏輯模式。對(duì)于關(guān)系數(shù)據(jù)庫(kù)主要是完成表的結(jié)構(gòu)和關(guān)聯(lián)的設(shè)計(jì)。通常根據(jù)E-R模型圖將每個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系,即所謂的表,實(shí)體屬性即為表的字段,并為表設(shè)置主鍵。實(shí)體之間的聯(lián)系要視聯(lián)系的種類(lèi)而定:1)E-R模型圖種每個(gè)一對(duì)一的聯(lián)系(1:1)不需要再建立一個(gè)表,直接將一個(gè)表的主鍵作為外鍵添入另一個(gè)表中即可。2)E-R模型圖中一對(duì)多的聯(lián)系(1:n)的變換也不需要再建立一個(gè)表,設(shè)表A與表B之間是1:N關(guān)系,則變換時(shí)將表A的主鍵作為外部鍵添加到表B中即可。3)E-R模型圖中每個(gè)多對(duì)多(m:n)的聯(lián)系要單獨(dú)轉(zhuǎn)換為一個(gè)表,表中的字段將包含相聯(lián)系的實(shí)體的主鍵和聯(lián)系本身具備的屬性,并用相聯(lián)系的實(shí)體雙方的主鍵組合起來(lái)做聯(lián)系表的主鍵。4.物理設(shè)計(jì)物理設(shè)計(jì)用于確定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)。主要任務(wù)包括:確定數(shù)據(jù)庫(kù)文件和索引文件的記錄格式和物理結(jié)構(gòu),選擇存取方式,決定訪問(wèn)路徑和外存儲(chǔ)器的分配策略等等。二.關(guān)系型數(shù)據(jù)庫(kù)規(guī)范化為了建立冗余較小、結(jié)構(gòu)合理的數(shù)據(jù)庫(kù),Codd把關(guān)系應(yīng)滿足的規(guī)范劃分為若干等級(jí),每一個(gè)等級(jí)稱為一個(gè)范示,滿足最低要求的稱為第一范式(1NF),在1NF基礎(chǔ)上又滿足某些要求的稱為第二范式(2NF),在2NF基礎(chǔ)上再滿足一些要求的為第三范式(3NF)。1NF:如果一個(gè)表的每一個(gè)字段都不可能再分,則稱表滿足第一范式。2NF:表式1NF,而且它的每一非主鍵字段完全依賴于主鍵,則表滿足第二范式。3NF:表是2NF,而且它的每一非主鍵字段不傳遞依賴于主鍵,則表滿足第三范式。傳遞依賴的含義:指經(jīng)由其他字段傳遞而以來(lái)于主鍵的字段。3NF的實(shí)際含義是要求非主鍵字段不應(yīng)該有從屬關(guān)系。開(kāi)發(fā)工具的選擇MyEclipse9MyEclipse,是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)源產(chǎn)品的支持十分不錯(cuò)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,javascript,Spring,SQL,Hibernate。MyEclipse9.0經(jīng)過(guò)M1,M2,終于出了正式版(MyEclipseForSpring還是8.6.1)。MyEclipse9.0集成了Eclipse3.6.1,并且支持HTML5和JavaEE6。MySQL5.51.MySQL簡(jiǎn)介MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQLAB公司。在2008年1月16號(hào)被Sun公司收購(gòu)。而2009年,SUN又被Oracle收購(gòu)。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“j結(jié)構(gòu)化查詢語(yǔ)言”。SQL是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本。目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP/Perl/Python)和LNMP(Linux+Nginx+MySQL+php/perl/Python),即使用Linux作為操作系統(tǒng),Apache和Nginx作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開(kāi)放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(qián)(除開(kāi)人工成本)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。2.查詢和索引的優(yōu)化只有當(dāng)數(shù)據(jù)庫(kù)里已經(jīng)有了足夠多的測(cè)試數(shù)據(jù)時(shí),它的性能測(cè)試結(jié)果才有實(shí)際參考價(jià)值。如果在測(cè)試數(shù)據(jù)庫(kù)里只有幾百條數(shù)據(jù)記錄,它們往往在執(zhí)行完第一條查詢命令之后就被全部加載到內(nèi)存里,這將使后續(xù)的查詢命令都執(zhí)行得非常快--不管有沒(méi)有使用索引。只有當(dāng)數(shù)據(jù)庫(kù)里的記錄超過(guò)了1000條、數(shù)據(jù)總量也超過(guò)了MySQL服務(wù)器上的內(nèi)存總量時(shí),數(shù)據(jù)庫(kù)的性能測(cè)試結(jié)果才有意義。在不確定應(yīng)該在哪些數(shù)據(jù)列上創(chuàng)建索引的時(shí)候,人們從EXPLAINSELECT命令那里往往可以獲得一些幫助。這其實(shí)只是簡(jiǎn)單地給一條普通的SELECT命令加一個(gè)EXPLAIN關(guān)鍵字作為前綴而已。有了這個(gè)關(guān)鍵字,MySQL將不是去執(zhí)行那條SELECT命令,而是去對(duì)它進(jìn)行分析。MySQL將以表格的形式把查詢的執(zhí)行過(guò)程和用到的索引等信息列出來(lái)。在EXPLAIN命令的輸出結(jié)果里,第1列是從數(shù)據(jù)庫(kù)讀取的數(shù)據(jù)表的名字,它們按被讀取的先后順序排列。type列指定了本數(shù)據(jù)表與其它數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系(JOIN)。在各種類(lèi)型的關(guān)聯(lián)關(guān)系當(dāng)中,效率最高的是system,然后依次是const、eq_ref、ref、range、index和All(All的意思是:對(duì)應(yīng)于上一級(jí)數(shù)據(jù)表里的每一條記錄,這個(gè)數(shù)據(jù)表里的所有記錄都必須被讀取一遍——這種情況往往可以用一索引來(lái)避免)。possible_keys數(shù)據(jù)列給出了MySQL在搜索數(shù)據(jù)記錄時(shí)可選用的各個(gè)索引。key數(shù)據(jù)列是MySQL實(shí)際選用的索引,這個(gè)索引按字節(jié)計(jì)算的長(zhǎng)度在key_len數(shù)據(jù)列里給出。比如說(shuō),對(duì)于一個(gè)INTEGER數(shù)據(jù)列的索引,這個(gè)字節(jié)長(zhǎng)度將是4。如果用到了復(fù)合索引,在key_len數(shù)據(jù)列里還可以看到MySQL具體使用了它的哪些部分。作為一般規(guī)律,key_len數(shù)據(jù)列里的值越小越好。ref數(shù)據(jù)列給出了關(guān)聯(lián)關(guān)系中另一個(gè)數(shù)據(jù)表里的數(shù)據(jù)列的名字。row數(shù)據(jù)列是MySQL在執(zhí)行這個(gè)查詢時(shí)預(yù)計(jì)會(huì)從這個(gè)數(shù)據(jù)表里讀出的數(shù)據(jù)行的個(gè)數(shù)。row數(shù)據(jù)列里的所有數(shù)字的乘積可以大致了解這個(gè)查詢需要處理多少組合。最后,extra數(shù)據(jù)列提供了與JOIN操作有關(guān)的更多信息,比如說(shuō),如果MySQL在執(zhí)行這個(gè)查詢時(shí)必須創(chuàng)建一個(gè)臨時(shí)數(shù)據(jù)表,就會(huì)在extra列看到usingtemporary字樣。電子科技大學(xué)學(xué)士學(xué)位論文第3章需求和可行性分析PAGE66PAGE67需求和可行性分析功能需求分析通過(guò)對(duì)用戶的需求調(diào)查分析,可以概括出用戶的功能需求如下:填寫(xiě)個(gè)人基本信息、單選投票、多選投票、查看投票、投票設(shè)計(jì)。填寫(xiě)個(gè)人基本信息:填寫(xiě)個(gè)人姓名、住院時(shí)間等基本情況。單選投票:用戶只能從多個(gè)選項(xiàng)中選取一項(xiàng)進(jìn)行投票。多選投票:用戶可以從多個(gè)選項(xiàng)中選取多項(xiàng)進(jìn)行投票。查看投票:提供用戶查看當(dāng)前投票情況,投票結(jié)果以條形圖顯示。投票設(shè)計(jì):管理員可以設(shè)計(jì)不同的投票主題,及投票主題的內(nèi)容供用戶進(jìn)行投票。投票設(shè)計(jì)又包括以下功能需求:增加主題、刪除主題、查看主題、修改主題。管理、技術(shù)上可行性分析管理上的可行性在醫(yī)院方面,從主管領(lǐng)導(dǎo)、醫(yī)護(hù)人員人員到具體的網(wǎng)絡(luò)管理維護(hù)人員認(rèn)識(shí)是一致的,他們都大力支持系統(tǒng)的開(kāi)發(fā),而且由于醫(yī)院有良好的管理基礎(chǔ),因而建立新系統(tǒng)在管理上是可行的。技術(shù)可行性Java語(yǔ)言主要有以下幾個(gè)方面的特點(diǎn):①平臺(tái)無(wú)關(guān)性。Java的編譯程序生成一種高級(jí)的、與機(jī)器獨(dú)立的字節(jié)碼(ByteCode),它是針對(duì)由Java解釋程序和運(yùn)行時(shí)系統(tǒng)實(shí)現(xiàn)的虛擬機(jī)而生成的,可以在任何支持Java解釋器的操作系統(tǒng)平臺(tái)上運(yùn)行。從而使編譯后的Java程序具有很好的跨平臺(tái)性。②簡(jiǎn)潔性。Java是一種面向?qū)ο蟮母呒?jí)程序設(shè)計(jì)語(yǔ)言,特別注重簡(jiǎn)潔性。它沒(méi)有C/C++中大量存在的預(yù)處理程序、#define及相關(guān)成份、typedef、頭文件,且Java中無(wú)危險(xiǎn)的指針運(yùn)算,既減少了程序的復(fù)雜性,又增加了安全性。Java語(yǔ)言與C/C++有許多相似之處,卻比C/C++簡(jiǎn)單得多,不但易讀易懂,而且代碼的修改和重用也很容易。③可移植性。程序被編譯后生成的并不是真正的機(jī)器碼,而是字節(jié)碼。字節(jié)碼是以Java虛擬機(jī)(JavaVirtualMachine)為基礎(chǔ)的,Java對(duì)每一個(gè)可能和系統(tǒng)軟硬件相關(guān)的部分都作了明確的定義,消除了C/C++語(yǔ)言中數(shù)據(jù)類(lèi)型的不確定性(例如整數(shù)類(lèi)型int在不同的系統(tǒng)中可能會(huì)有16,32或64bit等不同的長(zhǎng)度)。Java語(yǔ)言環(huán)境本身也容易移植到新的體系結(jié)構(gòu)和操作系統(tǒng),其編譯程序也是用Java語(yǔ)言編寫(xiě)的,它運(yùn)行時(shí)的系統(tǒng)是用ANSIC編寫(xiě)的,帶有清晰的可移植邊界。④安全性。Java安全體系結(jié)構(gòu)除了自身語(yǔ)言的安全性外,還包括字節(jié)碼驗(yàn)證器、類(lèi)裝入器、安全管理器、訪問(wèn)控制器、權(quán)限、策略和保護(hù)域等層層防護(hù)措施,使Java程序具有很高的安全性。對(duì)終端用戶而言,它鑒別代碼提供者的身份,保護(hù)用戶文件及私有數(shù)據(jù)不被惡意的程序或病毒感染和破壞;對(duì)開(kāi)發(fā)者而言,可以將特定的安全特性集成到應(yīng)用程序中。MyEclipse是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)源產(chǎn)品的支持十分不錯(cuò)。利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開(kāi)發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。對(duì)于JavaEE模型,WEB開(kāi)發(fā)工具,數(shù)據(jù)庫(kù)服務(wù),應(yīng)用程序服務(wù)器的連接器等每一種功能上的類(lèi)別,在Eclipse中都有相應(yīng)的功能部件,并通過(guò)一系列的插件來(lái)實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們?cè)诓挥绊懫渌K的情況下,對(duì)任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級(jí)。簡(jiǎn)單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的JavaEE集成開(kāi)發(fā)環(huán)境,支持代碼編寫(xiě)、配置、測(cè)試以及除錯(cuò),MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時(shí)不需安裝Eclipse。MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),其體積小、速度快、總體擁有成本低,擁有眾多優(yōu)勢(shì):一,它使用的核心線程是完全多線程,支持多處理器;二,有多種列類(lèi)型:1、2、3、4、和8字節(jié)長(zhǎng)度自有符號(hào)/無(wú)符號(hào)整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、和ENUM類(lèi)型;三,它通過(guò)一個(gè)高度優(yōu)化的類(lèi)庫(kù)實(shí)現(xiàn)SQL函數(shù)庫(kù)并像他們能達(dá)到的一樣快速,通常在查詢初始化后不該有任何內(nèi)存分配。沒(méi)有內(nèi)存漏洞;四,全面支持SQL的GROUPBY和ORDERBY子句,支持聚合函數(shù)(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查詢中混來(lái)自不同數(shù)據(jù)庫(kù)的表;五,支持ANSISQL的LEFT0UTERJOIN和ODBC;六,所有列都有缺省值。你可以用INSERT插入一個(gè)表列的子集,那些沒(méi)用明確給定值的列設(shè)置為他們的決省值;七,MySQL可以工作在不同的平臺(tái)上。支持C、C++、Java、Perl、PHP、Python和TCLAPI。安全上的可行性在建立數(shù)據(jù)庫(kù)時(shí)可以通過(guò)對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)用戶名和密碼進(jìn)行保密,以及在建立數(shù)據(jù)庫(kù)以后可以對(duì)數(shù)據(jù)進(jìn)行壓縮等技術(shù),保證數(shù)據(jù)的安全,使數(shù)據(jù)庫(kù)具有安全保障。第4章系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)醫(yī)院反饋投票系統(tǒng)的設(shè)計(jì)投票協(xié)議是電子投票系統(tǒng)的核心,身份認(rèn)證則是為電子投票服務(wù)的,因此,對(duì)電子投票系統(tǒng)的設(shè)計(jì),也就是對(duì)電子投票協(xié)議的具體實(shí)現(xiàn)。這里,我們以VonRSA電子投票協(xié)議為中心,以提出的身份認(rèn)證算法為輔助,來(lái)設(shè)計(jì)電子投票系統(tǒng)。系統(tǒng)設(shè)計(jì)原則考慮到電子投票系統(tǒng)的特殊性及其網(wǎng)絡(luò)應(yīng)用的的特點(diǎn),在設(shè)計(jì)系統(tǒng)時(shí),主要遵循了以下原則:①功能完備。由于電子投票系統(tǒng)在使用中的特殊性,使得電子投票系統(tǒng)必須滿足準(zhǔn)確性、完整性、公正性、唯一性、秘密性、可驗(yàn)證行、非強(qiáng)制性、靈活性、效率性和方便性的要求。我們提出的VonRSA投票協(xié)議,很好的滿足了上述要求,因此,在系統(tǒng)設(shè)計(jì)過(guò)程中,必須嚴(yán)格按照VonRSA協(xié)議規(guī)定的流程,保證實(shí)現(xiàn)的系統(tǒng)滿足上述各方面的要求。②安全性。由于本系統(tǒng)主要是應(yīng)用在開(kāi)放網(wǎng)絡(luò)中,而網(wǎng)絡(luò)安全的安全狀況一直令人擔(dān)憂。安全問(wèn)題主要包括系統(tǒng)安全和信息安全兩個(gè)方面。系統(tǒng)安全是指一些非法用戶對(duì)系統(tǒng)進(jìn)行惡意的攻擊,造成系統(tǒng)運(yùn)行錯(cuò)誤或者癱瘓;信息安全是指系統(tǒng)的敏感信息被惡意竊取、篡改或者破壞,它涉及到信息的存儲(chǔ)、訪問(wèn)和傳輸?shù)入A段。所以在系統(tǒng)中采用了一些安全和防范措施:1)采用嚴(yán)格的身份認(rèn)證機(jī)制,防止非法用戶闖入系統(tǒng)。2)在網(wǎng)絡(luò)上傳輸?shù)男畔⒍冀?jīng)過(guò)加密處理,防止用戶信息被竊取或篡改,這一點(diǎn)在身份認(rèn)證過(guò)程及投票過(guò)程都有很好的體現(xiàn)。③先進(jìn)性和開(kāi)放性。網(wǎng)絡(luò)系統(tǒng)采用開(kāi)放式結(jié)構(gòu),充分利用符合國(guó)際標(biāo)準(zhǔn)的計(jì)算機(jī)、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)方面的先進(jìn)技術(shù)、軟件和主流產(chǎn)品進(jìn)行設(shè)計(jì)。④可靠性。為保證系統(tǒng)的正常運(yùn)行、數(shù)據(jù)信息的完整性和可靠性,所采用的系統(tǒng)軟硬件都應(yīng)有很強(qiáng)的可靠性。⑤實(shí)用性和經(jīng)濟(jì)性。系統(tǒng)應(yīng)該在整體費(fèi)用最小前提下進(jìn)行設(shè)計(jì)與規(guī)劃,既能滿足系統(tǒng)性能要求,又要減少系統(tǒng)建設(shè)費(fèi)用,使系統(tǒng)具有較高的性能價(jià)格比,也使系統(tǒng)易于推廣使用。⑥好用性。所設(shè)計(jì)的系統(tǒng),應(yīng)該提供友好的界面和簡(jiǎn)易的操作,投票人不需要專門(mén)的知識(shí)就可以進(jìn)行投票,從而可以吸引更多的投票人參與投票——這也是使用電子投票系統(tǒng)的初衷之一。MVC模式模型-視圖-控制器(MVC)是XeroxPARC在八十年代為編程語(yǔ)言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,至今已被廣泛使用。最近幾年被推薦為Sun公司J2EE平臺(tái)的設(shè)計(jì)模式。MVC結(jié)構(gòu)提供了一種按功能對(duì)各種對(duì)象進(jìn)行分割的方法,它強(qiáng)制性地使應(yīng)用程序的輸入、處理和輸出分開(kāi),所以依據(jù)這種設(shè)計(jì)思想能夠構(gòu)造良好的松耦合的構(gòu)件。使用MVC的應(yīng)用程序被分成三個(gè)核心構(gòu)件:模型、視圖、控制器。系統(tǒng)總體結(jié)構(gòu)本系統(tǒng)采用MVC的設(shè)計(jì)模式,用戶輸入輸出界面均為JSP頁(yè)面,即展示層(VIEW),用戶的請(qǐng)求(REQUEST)將會(huì)被發(fā)送到控制層(CONTROL)的一個(gè)SERVLET集中處理,根據(jù)請(qǐng)求調(diào)用模型層(MODEL)的JAVABEAN對(duì)請(qǐng)求進(jìn)行實(shí)際處理,并把結(jié)果返回給控制層,控制層根據(jù)請(qǐng)求的執(zhí)行結(jié)果將響應(yīng)(RESPONSE)派發(fā)到相應(yīng)的JSP頁(yè)面。例如,一個(gè)數(shù)據(jù)提交(操作請(qǐng)求)的標(biāo)準(zhǔn)流程:在問(wèn)卷管理模塊中的添加問(wèn)卷頁(yè)面(SurveyAdd.jsp),用戶在這個(gè)頁(yè)面中輸入數(shù)據(jù),提交之后,請(qǐng)求被派發(fā)到一個(gè)名為SurveyManage的servlet中集中處理,在這個(gè)servlet中,調(diào)用了持久層的名為SurveyDAO的javabean的addSurvey方法對(duì)數(shù)據(jù)進(jìn)行持久化,然后把處理結(jié)果返回給SurveyMange這個(gè)控制器,控制器根據(jù)返回的結(jié)果決定將相應(yīng)的頁(yè)面展現(xiàn)給客戶端瀏覽器。又如,一個(gè)數(shù)據(jù)查詢(數(shù)據(jù)請(qǐng)求)的標(biāo)準(zhǔn)流程:在問(wèn)卷設(shè)計(jì)頁(yè)面中(SurveyAdmin.jsp),用戶打開(kāi)頁(yè)面后,頁(yè)面即調(diào)用SurveyDAO的listAllSurvey方法查詢出所有問(wèn)卷信息返回給頁(yè)面,即頁(yè)面進(jìn)行數(shù)據(jù)查詢時(shí)不再經(jīng)過(guò)CONTROLLER層。如圖4-1:返回返回頁(yè)面controller操作請(qǐng)求返回?cái)?shù)據(jù)請(qǐng)求數(shù)據(jù)操作請(qǐng)求返回?cái)?shù)據(jù)請(qǐng)求數(shù)據(jù)數(shù)據(jù)請(qǐng)求ViewModel數(shù)據(jù)請(qǐng)求ViewModel圖4-1標(biāo)準(zhǔn)流程返回?cái)?shù)據(jù)圖4-1標(biāo)準(zhǔn)流程返回?cái)?shù)據(jù)系統(tǒng)的層次結(jié)構(gòu)設(shè)計(jì)電子投票系統(tǒng)是通過(guò)網(wǎng)絡(luò)來(lái)進(jìn)行投票的,理論上講,在任何可以聯(lián)網(wǎng)的地方,投票人都應(yīng)該可以順利地進(jìn)行投票。鑒于此種分布性需求,我們采用B/S結(jié)構(gòu)來(lái)對(duì)電子投票系統(tǒng)進(jìn)行設(shè)計(jì),實(shí)現(xiàn)的系統(tǒng)模型如圖4-2所示,軟件結(jié)構(gòu)如圖4-3所示。采用B/S結(jié)構(gòu),整個(gè)投票系統(tǒng)就只有服務(wù)器端和客戶端兩個(gè)部分組成。其中服務(wù)器是整個(gè)系統(tǒng)的核心,它的組成部分主要有:電子投票應(yīng)用程序服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器,當(dāng)然還有底層的操作系統(tǒng)軟件、以及用于站點(diǎn)管理的Web服務(wù)器軟件。其中應(yīng)用程序服務(wù)器將實(shí)現(xiàn)電子投票協(xié)議的各個(gè)功能,并負(fù)責(zé)調(diào)度客戶端和數(shù)據(jù)庫(kù)服務(wù)器之間的數(shù)據(jù)。圖4-2B/S結(jié)構(gòu)圖4-2B/S結(jié)構(gòu)Web瀏覽器Web瀏覽器數(shù)據(jù)庫(kù)服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器操作系統(tǒng)操作系統(tǒng)圖4-3服務(wù)器端圖4-3服務(wù)器端而B(niǎo)/S結(jié)構(gòu)下的客戶端則不需要專門(mén)的支持軟件,它只需要一個(gè)普通的瀏覽器即可,不過(guò)由于本系統(tǒng)服務(wù)器端的語(yǔ)言平臺(tái)是Java,因此,在客戶端還需要Java虛擬機(jī)(JavaVirtualMachine,JVM)的支持,目前,大多數(shù)的瀏覽器如MicrosoftIE,Netscape等都已經(jīng)集成了JVM,可以很好的運(yùn)行Java代碼。功能模塊設(shè)計(jì)通過(guò)對(duì)功能需求進(jìn)行分析和概括得到如圖所示的系統(tǒng)功能模塊圖4-4:基本信息模塊:填寫(xiě)個(gè)人姓名,入、出院時(shí)間等基本情況。病人投票模塊:用戶只能從多個(gè)選項(xiàng)中選取一或幾項(xiàng)項(xiàng)進(jìn)行投票。投票統(tǒng)計(jì)模塊:用戶可以查看投票數(shù)統(tǒng)計(jì)。管理員模塊:管理員可以設(shè)計(jì)不同的投票主題,及投票主題的內(nèi)容供用戶進(jìn)行投票。投票設(shè)計(jì)又包括以下功能需求:刪除主題、查看主題。管理員投票統(tǒng)計(jì)病人投票基本信息刪除投票查看投票顯示投票數(shù)顯示信息項(xiàng)顯示投票項(xiàng)確認(rèn)投票圖4-4功能模塊圖醫(yī)院住院反饋系統(tǒng)管理員投票統(tǒng)計(jì)病人投票基本信息刪除投票查看投票顯示投票數(shù)顯示信息項(xiàng)顯示投票項(xiàng)確認(rèn)投票圖4-4功能模塊圖醫(yī)院住院反饋系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)該系統(tǒng)的數(shù)據(jù)庫(kù)用MySQL根據(jù)投票系統(tǒng)功能設(shè)計(jì)的要求,可以列出以下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):投票表:存放投票信息;用戶表:存放管理員的用戶名和密碼;數(shù)據(jù)項(xiàng)包括:序號(hào)、標(biāo)識(shí)、選項(xiàng)類(lèi)型、投票主題、投票選項(xiàng)內(nèi)容、得票數(shù)。電子科技大學(xué)學(xué)士學(xué)位論文第5章系統(tǒng)開(kāi)發(fā)系統(tǒng)開(kāi)發(fā)數(shù)據(jù)庫(kù)設(shè)計(jì)核心實(shí)體包括:?jiǎn)柧恚⊿URVEY),問(wèn)題(QUESTION),答卷(ANSWERSHEET);還有管理員表(ADMINS),友情鏈接表(LINK),系統(tǒng)配置表(CONFIG)創(chuàng)建數(shù)據(jù)庫(kù)CREATEDATABASEVOTE;創(chuàng)建表創(chuàng)建數(shù)據(jù)庫(kù)中用到的反饋投票表:Createtablefeedback(idintnotnullauto_increment,namechar(10),hidchar(10),sexchar(4),agechar(4),marrychar(4),contactchar(12),addresschar(50),culturechar(10),zkctchar(100),shzlqjchar(10),shzlyschar(10),shzlybhdchar(10),shzlsmchar(20),shzlgzchar(10),ztywchar(200),sjzzchar(200),cypgchar(10),zyrint,ryrqdatetime,cyrqdatetime,fydecimal(8,2),sbvarchar(15),qtvarchar(10),primarykey(id));數(shù)據(jù)庫(kù)創(chuàng)建之后的結(jié)構(gòu)圖如下:FieldTypeNullKeyDefaultExtraidint(11)PRINULLauto_incrementnamechar(10)YESNULLhidchar(10)YESNULLsexchar(4)YESNULLagechar(4)YESNULLmarrychar(4)YESNULLcontactchar(12)YESNULLaddresschar(50)YESNULLculturechar(10)YESNULLzkctchar(100)YESNULLshzlqjchar(10)YESNULLshzlyschar(10)YESNULLshzlybhdchar(10)YESNULLshzlsmchar(20)YESNULLshzlgzchar(10)YESNULLztywchar(200)YESNULLsjzzchar(200)YESNULLcypgchar(10)YESNULLzyrint(11)YESNULLryrqdatetimeYESNULLcyrqdatetimeYESNULLfydecimal(8,2)YESNULLsbvarchar(15)YESNULLqtvarchar(10)YESNULL表5-1反饋表表5-1反饋表創(chuàng)建數(shù)據(jù)庫(kù)中用到的用戶表createtableuser(useridintnotnullauto_increment,usernamechar(20),passwordchar(20),primarykey(userid));insertintouservalues(null,'admin','admin');數(shù)據(jù)庫(kù)創(chuàng)建之后的結(jié)構(gòu)圖如下:FieldTypeNullKeyDefaultExtrauseridint(11)PRINULLauto_incrementusernamechar(20)YESNULLpasswordchar(20)YESNULL表5-2用戶表表5-2用戶表連接數(shù)據(jù)庫(kù)該系統(tǒng)使用了MySQL的JDBC驅(qū)動(dòng)程序來(lái)連接數(shù)據(jù)庫(kù)。因?yàn)閷?duì)數(shù)據(jù)庫(kù)的訪問(wèn),在整個(gè)系統(tǒng)中比較頻繁,所以我將對(duì)數(shù)據(jù)庫(kù)的操作寫(xiě)成一個(gè)DBConnect的類(lèi),通過(guò)該類(lèi)來(lái)連接數(shù)據(jù)庫(kù)和訪問(wèn)數(shù)據(jù)庫(kù)。//部分代碼如下publicclassdb{publicstaticConnectiongetConn(){Connectionconn=null;try{//加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序Class.forName("com.mysql.jdbc.Driver");//建立連接conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/vote","root","wangge");}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}returnconn;}publicstaticStatementcreateStmt(Connectionconn){Statementstmt=null;try{stmt=conn.createStatement();}catch(SQLExceptione){e.printStackTrace();} returnstmt; }publicstaticResultSetexecuteQuery(Statementstmt,Stringsql){ ResultSetrs=null; try{ rs=stmt.executeQuery(sql); }catch(SQLExceptione){ e.printStackTrace(); } returnrs; }功能的實(shí)現(xiàn)系統(tǒng)流程圖:否是返回管理員登陸刪除投票項(xiàng)確認(rèn)頁(yè)面投票頁(yè)面系統(tǒng)首頁(yè)歡迎否是返回管理員登陸刪除投票項(xiàng)確認(rèn)頁(yè)面投票頁(yè)面系統(tǒng)首頁(yè)歡迎圖5-1系統(tǒng)流程圖圖5-1系統(tǒng)流程圖歡迎頁(yè)面:TITLE元素僅可在HEAD元素內(nèi)使用。位于TITLE開(kāi)閉標(biāo)簽之內(nèi)的文本都會(huì)在瀏覽器的標(biāo)題欄上顯示。對(duì)于Web頁(yè),“InternetExplorer”會(huì)被自動(dòng)追加到標(biāo)題后。聲明標(biāo)題為“歡迎光臨”<title>歡迎光臨</title>引用目錄是css/style.css的css樣式文件: <linkrel="stylesheet"type="text/css"href="styles.css"> 引用超文本鏈接“點(diǎn)擊進(jìn)入問(wèn)卷調(diào)查”和“管理員登陸”:<ahref="newvote.jsp">點(diǎn)此進(jìn)入問(wèn)卷調(diào)查</a><ahref="login.jsp">管理員登陸</a>發(fā)布以后的頁(yè)面如圖5-2:圖5-2歡迎界面圖5-2歡迎界面問(wèn)卷調(diào)查頁(yè)面當(dāng)提交表單時(shí),向test.ok發(fā)送表單數(shù)據(jù)。<formaction="testok.jsp"method="post"name="formName">個(gè)人基本信息部分病人在jsp頁(yè)面輸入姓名,年齡,住院號(hào),聯(lián)系電話,家庭住址,入院日期,出院日期,住院日,費(fèi)用總計(jì)。姓    名<inputtype="text"name="name"/><br>年    齡<inputtype="text"name="age"/><br>住 院 號(hào)<inputtype="text"name="hid"/><br>聯(lián)系電話<inputtype="text"name="contact"/><br>家庭住址<inputtype="text"name="address"/><br>入院日期<inputtype="text"name="ryrq"><br>出院日期<inputtype="text"name="cyrq"><br>住院日共<inputtype="text"name="zyr">天<br>費(fèi)用總計(jì)<inputtype="text"name="fy">元<br>病人基本信息填寫(xiě)部分如圖5-3:圖5-3病人信息填寫(xiě)表格圖5-3病人信息填寫(xiě)表格投票必須單選的部分包括性別,婚姻狀況,文化程度等等。以下以性別和婚姻狀況的選項(xiàng)為例:<li>性別</li><ul><li><inputtype="radio"name="sex"value="男">男</li><li><inputtype="radio"name="sex"value="女">女</li></ul><li>婚姻狀況</li><ul><li><inputtype="radio"name="marry"value="已婚">已婚</li><li><inputtype="radio"name="marry"value="未婚">未婚</li><li><inputtype="radio"name="marry"value="離異">離異</li><li><inputtype="radio"name="marry"value="喪偶">喪偶<br></li></ul></ul>投票選項(xiàng)單選部分如圖5-4:圖5-4投票選項(xiàng)圖5-4投票選項(xiàng)投票可多選的部分,以下以專科檢查部分為例:<li>??撇轶w(可多選)</li><ul><li><inputtype="checkbox"name="zkct"value="曲頸試驗(yàn)">曲頸試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="仰臥挺腹試驗(yàn)">仰臥挺腹試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="直腿抬高試驗(yàn)">直腿抬高試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="4字試驗(yàn)">4字試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="壓頂試驗(yàn)">壓頂試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="引頸試驗(yàn)">引頸試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="椎間孔擠壓試驗(yàn)">椎間孔擠壓試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="臂叢牽拉試驗(yàn)">臂叢牽拉試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="觸誘發(fā)痛試驗(yàn)">觸誘發(fā)痛試驗(yàn)</li><li><inputtype="checkbox"name="zkct"value="痛覺(jué)過(guò)敏">痛覺(jué)過(guò)敏</li><li><inputtype="checkbox"name="zkct"value="感覺(jué)減退">感覺(jué)減退</li><li><inputtype="checkbox"name="zkct"value="肌力減退">肌力減退</li><li><inputtype="checkbox"name="zkct"value="反射減弱或消失">反射減弱或消失</li><li><inputtype="checkbox"name="zkct"value="關(guān)節(jié)活動(dòng)受限">關(guān)節(jié)活動(dòng)受限</li></ul>點(diǎn)擊提交之后提交表單,點(diǎn)擊重填之后返回繼續(xù)填寫(xiě):<inputtype="submit"value="提交"onClick="returndo_action()"><inputtype="reset"value="重填">投票部分(2)如圖5-5:圖5-5投票選項(xiàng)圖5-5投票選項(xiàng)投票提交成功頁(yè)面從request中拿出name的值,賦給定義的新變量name。類(lèi)似的將age,sex等值賦給新變量。Stringname=request.getParameter("name");Stringage=request.getParameter("age");Stringsex=request.getParameter("sex");顯示出投票詳情:<h3align="center">提交詳情</h3><formaction="ok.jsp"><tableborder=1align="center"><tr><tdalign="center">病號(hào)</td><td><%=hid%></td></tr><tr><td><divalign="center">姓名</div></td><td><%=name%></td></tr><tr><td><divalign="center">出院日期</div></td><td><%=cyrq%></td></tr><tr><td><divalign="center">其他</div></td><td><%=qt%></td></tr> 點(diǎn)擊“確認(rèn)”之后提交表單,點(diǎn)擊“返回修改”之后返回:<divalign="center"><inputtype="submit"value="確認(rèn)"><ahref="newvote.jsp">返回修改</a></div>投票提交成功頁(yè)面如圖5-6:圖5-6提交詳情圖5-6提交詳情投票成功頁(yè)面清除瀏覽器中的緩存,就可以使用戶再次進(jìn)入曾經(jīng)訪問(wèn)過(guò)的頁(yè)面時(shí),web瀏覽器必須從服務(wù)端下載最新的內(nèi)容,達(dá)到刷新的效果 <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> 投票成功提示頁(yè)面如圖5-7:圖5-7提交成功圖5-7提交成功管理員登陸頁(yè)面管理員輸入用戶名和密碼于數(shù)據(jù)庫(kù)中存儲(chǔ)的密碼校對(duì),正確的話進(jìn)去后面的頁(yè)面,否則提示用戶名或密碼錯(cuò)誤:dbtestdb=newdb(); Stringusername=request.getParameter("name");Stringpassword=request.getParameter("password"); Connectioncon=testdb.getConn(); Statementsta=testdb.createStmt(con); Stringsql="selectpasswordfromuserwhereusername='"+username+"'"; ResultSetrs=testdb.executeQuery(sta,sql);if(rs.next()){if(password.equals(rs.getString(1)))response.sendRedirect("displaydetail.jsp");}else{out.println("賬號(hào)名或密碼錯(cuò)誤");由于事先預(yù)設(shè)入數(shù)據(jù)庫(kù)中的管理員賬號(hào)是admin密碼是admin。登陸頁(yè)面如圖5-8:圖5-8管理員登陸圖5-8管理員登陸投票結(jié)果詳情頁(yè)面將數(shù)據(jù)表feedback中的數(shù)據(jù)調(diào)出賦給sql:dbtestdb=newdb(); Stringsql="select*fromfeedback"; Connectioncon=testdb.getConn(); Statementsta=testdb.createStmt(con); ResultSetrs=testdb.executeQuery(sta,sql); 顯示出反饋結(jié)果詳情:<td>病號(hào)</td><td><divalign="center">姓名</div></td><td><divalign="center">生活質(zhì)量</div></td><td><divalign="center">鎮(zhèn)痛藥物</div></td> <td><divalign="center">神經(jīng)阻滯及毀損</div></td> <td><divalign="center">出院評(píng)估</div></td> <td><divalign="center">住院日</div></td> <td><divalign="center">住院費(fèi)用</div></td> <td><divalign="center">其他</div></td> <td><divalign="center">操作</div></td></tr><%while(rs.next()){%><tr><td><%=rs.getS

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論