版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
ABSTRACTV目錄28第1章.引言 1299171.1.課題背景 1243971.2.課題的價值及意義 2302961.2.1.提高工作效率 2237621.2.2.增加經(jīng)濟效益 2231671.2.3.提高醫(yī)療水平 2292701.2.4.改變管理者的決策方式 2193671.3.課題的國內(nèi)外研究現(xiàn)狀 289321.4.課題的難點、重點、核心問題及方向 3252321.5.術語列表 418067第2章.軟件開發(fā)基礎 561182.1.應用系統(tǒng)的開發(fā)過程 5144752.1.1.需求的分析 5129772.1.2.系統(tǒng)分析過程 687472.1.3.系統(tǒng)設計過程 690672.2.J2EE簡介 6133962.2.1.J2EE概述 6308632.2.2.J2EE的優(yōu)勢 7266672.2.3.穩(wěn)定的可用性: 8166082.3.數(shù)據(jù)庫基礎 8273452.3.1.數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)與數(shù)據(jù)庫系統(tǒng) 842892.3.2.數(shù)據(jù)庫模型 9132732.3.3.關系型數(shù)據(jù)庫 10192712.3.4.關系型數(shù)據(jù)庫設計 1211662.4.開發(fā)工具的選擇 1353642.4.1.MyEclipse9 13159412.4.2.MySQL5.5 1317724第3章.需求和可行性分析 16123583.1.功能需求分析 1654453.2.管理、技術上可行性分析 16169283.2.1.管理上的可行性 16321223.2.2.技術可行性 16177513.2.3.安全上的可行性 17238第4章.系統(tǒng)設計 19209454.1.系統(tǒng)總體設計 19237134.1.1.醫(yī)院反饋投票系統(tǒng)的設計 19272524.1.2.系統(tǒng)設計原則 195494.1.3.MVC模式 20214464.1.4.系統(tǒng)總體結構 20164394.1.5.系統(tǒng)的層次結構設計 2052744.2.功能模塊設計 22208014.3.數(shù)據(jù)庫的設計 226408第5章.系統(tǒng)開發(fā) 2317725.1.數(shù)據(jù)庫設計 23292535.2.創(chuàng)建數(shù)據(jù)庫 23171835.3.創(chuàng)建表 23169155.3.1.創(chuàng)建數(shù)據(jù)庫中用到的反饋投票表: 23128345.3.2.創(chuàng)建數(shù)據(jù)庫中用到的用戶表 2458595.4.連接數(shù)據(jù)庫 2558285.5.功能的實現(xiàn) 26260845.5.1.歡迎頁面: 26165565.5.2.問卷調查頁面 27313695.5.3.投票提交成功頁面 30179875.5.4.投票成功頁面 31121155.5.5.管理員登陸頁面 3299425.5.6.投票結果詳情頁面 3386775.5.7.刪除投票 34242895.5.8.投票人數(shù)統(tǒng)計頁面 3525763第6章.系統(tǒng)測試、總結和展望 3919586.1.系統(tǒng)測試 396286.1.1.測試環(huán)境 3993366.1.2.結果分析 3934166.2.總結 404962致謝 4130452參考文獻 421049外文資料原文 4310824翻譯文稿 50電子科技大學學士學位論文第1章引言PAGE18PAGE17引言課題背景近年來,計算機網(wǎng)絡特別是Internet在我國有著長足的發(fā)展,據(jù)統(tǒng)計,我國在2021年還只有210萬因特網(wǎng)用戶,到2021年底已升至890萬臺,因特網(wǎng)用戶已達2250萬。從目前來看,互聯(lián)網(wǎng)提供的各種便利服務,如網(wǎng)上購物,網(wǎng)絡銀行,無紙辦公,正取代原來的生活方式,為人們喜愛和接受??梢韵胂?,在不遠的將來,幾乎是我們身邊的每一件事情,都可以借助與網(wǎng)絡和計算機實現(xiàn)。投票行為,是現(xiàn)代民主社會中一個經(jīng)常發(fā)生的行為,而不是專屬于選舉的特殊行為,上至國家領導人選舉,下至用餐抉擇,都要進行投票。熱別是在近來,各類投票活動不斷增加,不僅有傳統(tǒng)的選舉投票,如各級黨代會、人大、政協(xié)選舉;還有其他的評審投票,如各級、各類獎項評審,立項項目評審;再如各級各類十佳、最佳人物、食物評比,人事考評、論文評審、晉級評議等,所有這些活動都是和投票行為緊密聯(lián)系的。然而,傳統(tǒng)的人工投票方式存在的問題卻日益突出:第一,人工記費花費的時間太長。第二,重新記票相當困難。這是因為票箱開封,選票難以聚集,而且記票時有可能弄張選票,甚至遺失選票,這無疑加大了投票的代價,造成了人財力的浪費。在這種情況下,投票行為的實現(xiàn)方式也不可能在這個日新月異的社會環(huán)境中停滯不前,于是,電子投票系統(tǒng)便應運而生。電子投票作為通常投票的電子化,利用先進的網(wǎng)絡設施和密碼學技術,使選民可以在投票站或自己家中設置的計算機終端通過互聯(lián)網(wǎng)進行投票,最后的記票工作全部由計算機自動完成,不僅在組織工作、選票搜集與統(tǒng)計方面都節(jié)省了大量的人力物力,而且在一定程度上保證投票人的利益和投票結果的公正,所有這些優(yōu)點使其取代傳統(tǒng)的投票方式成為必然的趨勢?,F(xiàn)在,計算機互聯(lián)技術、網(wǎng)絡安全、通訊技術的高度發(fā)展,以及密碼學相關領域的重大突破,使電子投票系統(tǒng)真正大規(guī)模應用于投票逐步成為可能。本系統(tǒng)創(chuàng)新性地將電子投票引入到醫(yī)院住院病人反饋意見的過程中,可以說本系統(tǒng)是一個擁有特定投票內(nèi)容的投票系統(tǒng)。它幫助病人快捷方便的把住院信息、自身病情及恢復情況、以及對醫(yī)院住院服務的意見反饋給院方,對于院方掌握病人病情確定下一步治療和改進自身服務有著非常重要的意義。課題的價值及意義提高工作效率本系統(tǒng)對醫(yī)院提供直接、準確、快捷的信息,從根本上改變了傳統(tǒng)的類似通過打給醫(yī)生反應病情的靜態(tài)、呆板、緩慢的信息反饋方式,并且投票項由院方自己設定可以去除那些多余的無關的信息,正常運行本系統(tǒng)后,可以與院方的住院病人管理系統(tǒng)關聯(lián)起來,醫(yī)生可以一目了然的觀察病人的病情,得到更加有效地治療方案;醫(yī)院管理方可以通過病人的反饋確定改進醫(yī)院服務機制的方案。大大提高了住院病人信息反饋的效率。增加經(jīng)濟效益先進的信息反饋手段的實施大大推動了管理觀念的變革,使醫(yī)院的工作效率、服務質量和醫(yī)療水平都有了一定的提高,詩人們感受到清新的現(xiàn)代氣息,重塑了醫(yī)院的整體形象,這在相當程度上穩(wěn)定并增加了病源,增收節(jié)支,增加了經(jīng)濟效益。提高醫(yī)療水平通過本系統(tǒng)可以實現(xiàn)遠程病情的判斷,節(jié)省了不必要的會診,使一些醫(yī)院,特別是二級以下醫(yī)院的自身醫(yī)診力量不足的狀況得到有效地改善;疑難雜癥無需病人轉院,也為病人節(jié)省了大量就診費用;通過遠程醫(yī)療設置家庭病床,方便病人,減輕了病區(qū)壓力。改變管理者的決策方式?jīng)Q策需要豐富的數(shù)據(jù),手工處理數(shù)據(jù)階段匯總一般要在月末5-10天才能完成。本系統(tǒng)實施運行以后,可動態(tài)適時的向領導提供即時性的數(shù)據(jù),且所需信息量大大的減少,于是他們便從“終末管理”變成了“過程管理”;醫(yī)院數(shù)、質、量的獎評也有了更為豐富而準確的數(shù)據(jù),獎評方式也發(fā)生了變革。總之,隨著醫(yī)院住院反饋系統(tǒng)的深入應用,后期軟件的不斷開發(fā),將使醫(yī)院的管理發(fā)生革命性的變化,醫(yī)院住院反饋系統(tǒng)將被越來越多的醫(yī)院所接受。課題的國內(nèi)外研究現(xiàn)狀我國現(xiàn)有3萬多所醫(yī)院,目前大多數(shù)醫(yī)院在病床管理和財務管理方面采用了數(shù)字化借助計算機軟件系統(tǒng)進行管理,最重要的病人管理信息基本沒有使用軟件管理。據(jù)衛(wèi)生部調查顯示,只有不到三分之一的醫(yī)院使用了信息管理系統(tǒng)。衛(wèi)生部強調“國內(nèi)三甲以上醫(yī)院都必須實行信息化管理”,未來幾年中,我國將有超過70%的醫(yī)院實現(xiàn)信息化管理,預計市場總量將達到200億元。醫(yī)院住院意見反饋系統(tǒng)具有廣闊的前景和發(fā)展空間。2021年以后隨著信息技術的發(fā)展,我國的醫(yī)院管理系統(tǒng)歷經(jīng)了單機單任務、PC機+局域網(wǎng)+部門級信息系統(tǒng),直到C/S、B/S結構的一體化醫(yī)院信息系統(tǒng)。目前各醫(yī)院建立的計算機系統(tǒng)主要是MIS系統(tǒng),以財務為重點,涉及掛號、收費、藥庫等流程,二真正涉及臨床醫(yī)療為病人服務的信息化(PACS、CIS、CPR)幾乎沒有。在國外,醫(yī)院信息系統(tǒng)的開發(fā)、應用正向廣度和深度發(fā)展,達到了前所未有的新高度、新水平。例如日本的醫(yī)院系統(tǒng)趨向于系統(tǒng)化、網(wǎng)絡化、綜合性,開始走自上而下的開發(fā)路線,一般都有大型機作為中心、支撐整個系統(tǒng)工作,并盡量采用微機和網(wǎng)絡技術,投資規(guī)模大,實現(xiàn)了數(shù)據(jù)從發(fā)生源直接輸入到計算機的形式。這也許就是我國醫(yī)院信息系統(tǒng)發(fā)展將要走的路。課題的難點、重點、核心問題及方向課題的研究內(nèi)容是醫(yī)院住院意見反饋系統(tǒng)的設計與實現(xiàn)。采用java語言和數(shù)據(jù)庫設計一套基于web訪問的軟件系統(tǒng)。該系統(tǒng)由前臺數(shù)據(jù)輸入界面,后臺管理界面組成,并且具有一定的統(tǒng)計功能。每個病人都有自己的個人頁面,頁面包括:病種、床號、入院日期、出院日期、社保、姓名、性別、年齡、住院號、文化程度、聯(lián)系、家庭住址等病人個人信息,也包括診斷、病史小結、??撇轶w(陽性體征)、生活質量、輔助檢查、治療等醫(yī)院檢查情況,還有供病人反饋的出院評估病人滿意度評分。此系統(tǒng)可供病人查看自己檢查治療的安排和結果,時刻動態(tài)的了解自己病情和資料安排;也可供醫(yī)生了解病人的基本信息,安排病人治療,并發(fā)布病人的治療計劃和檢查各項結果,達到醫(yī)患交流的目的;更有新意的是提供給病人出院后對在醫(yī)院住院后進行信息反饋評價的平臺。完成項目需要進行可行性分析、需求分析、系統(tǒng)設計和代碼實現(xiàn)。前端病人個人頁面的設計和后臺數(shù)據(jù)庫的建立是課題擬解決的關鍵問題。系統(tǒng)必須滿足病人、醫(yī)院查詢、輸入信息的需求,具有界面友好,操作簡單等特點。各部分內(nèi)容修改查詢具有不同的權限。還要保障醫(yī)患的隱私。課題的最終目標是完成醫(yī)院住院意見反饋的軟件系統(tǒng)和完成論文。前端網(wǎng)頁設計可以使用J2EE語言來完成代碼設計,數(shù)據(jù)庫則需要病人注冊、信息儲存發(fā)布等功能。數(shù)據(jù)庫建立是一大難點,需要運用SQL相關技術。課題特色是網(wǎng)站加數(shù)據(jù)庫的模型,并且將J2EE和數(shù)據(jù)庫技術結合起來來實現(xiàn)病人信息展示和反饋平臺。不僅有前端的網(wǎng)頁展示,而且有后臺數(shù)據(jù)庫的搭建。能夠把大學期間學到的專業(yè)知識充分的運用起來,對我自身的素質和學習實踐能力是一大挑戰(zhàn)。術語列表JSP:(JavaServerPages),JSP是一種基于Java的技術,用來產(chǎn)生跨平臺和跨Web服務器的動態(tài)頁面。JDBC:(JavaDataBaseConnectivity),Java數(shù)據(jù)庫連接。它主要是一套讓你訪問數(shù)據(jù)庫的API,程序人員可以利用JDBCAPI來執(zhí)行SQL語句。Servlet:Servlet可以稱之為“服務器小程序”,與Javaapplication不同,它沒有main方法,而是用一些特定的方法用于啟動、執(zhí)行和退出。通過使用Servlet,可以與運行與客戶端的Applet進行交互,也可以直接與HTML頁進行交互。JavaBeans:JavaBeans是可復用的平臺中立的軟件組件,可以在軟件開發(fā)工具中被直觀地操作。應用程序開發(fā)者可以通過支持JavaBeans的開發(fā)工具,直接使用現(xiàn)成的JavaBeans,也可以在開發(fā)工具容器中,對組件進行必要的修改、測試而不必編寫和編譯程序。在Java模型中,組件可以修改或與其他組件組合以生成新組件或完整的應用程序。HTML:(HypertextMarkupLanguage)超文本標記語言,它是組織多媒體文檔的重要語言,它不僅用來編寫Web網(wǎng)頁,而且可以使用它來制作光盤上的多媒體節(jié)目。HTML可用來編排文檔、創(chuàng)建列表、建立鏈接等等。XML:(ExtensibleMarkupLanguage)可擴展標記語言,它是一種具有數(shù)據(jù)描述功能(Meta-language)、高度結構性及可驗證性的語言。SQL:(StructuredQueryLanguage),結構化查詢語言。SQL語言地任務就是與各種數(shù)據(jù)庫建立關系,SQL語言是關系型數(shù)據(jù)庫的標準語言,大多數(shù)關系型數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言并采用了SQL的語言標準。MySQL:MySQL是一個可用于各種流行操作系統(tǒng)平臺的關系數(shù)據(jù)庫系統(tǒng),它具有客戶機/服務器體系結構的分布式數(shù)據(jù)庫管理系統(tǒng)。按照使用又可以分為DML(DataManipulationLanguage),即數(shù)據(jù)操作語言和DDL(DataDefinitionLanguage)。Tomcat:Servlet容器,負責處理客戶請求。當客戶請求來到時,獲取請求,然后調用某個Servlet,并把Servlet的執(zhí)行結果返回給用戶。電子科技大學學士學位論文第2章軟件開發(fā)基礎軟件開發(fā)基礎應用系統(tǒng)的開發(fā)過程應用系統(tǒng)的開發(fā)過程一般將應用軟件的開發(fā)過程劃分為可行性研究、需求分析、概要設計、詳細設計、測試、實施等階段。這種劃分容易使人忽視軟件功能和結構上存在的差異和內(nèi)在聯(lián)系,容易將兩者混合在一起考慮。另一種劃分是從區(qū)分“做什么”和“怎么做”的角度出發(fā)將該過程劃分為需求階段、系統(tǒng)分析、系統(tǒng)設計、系統(tǒng)實現(xiàn)等過程。這種劃分比起傳統(tǒng)的階段劃分,突出了邏輯結構與物理結構的區(qū)別對軟件設計過程的指導更為明確,如圖2-1應用系統(tǒng)開發(fā)過程。圖2-1系統(tǒng)開發(fā)過程圖2-1系統(tǒng)開發(fā)過程需求的分析軟件產(chǎn)業(yè)存在的一個普遍問題就是缺乏統(tǒng)一定義的名詞術語來描述我們的工作。客戶所定義的"需求"對開發(fā)者似乎是一個較高層次的產(chǎn)品概念,而開發(fā)人員所說的"需求"對用戶來說又像是詳細設計了。實際上,軟件需求包含著多個層次,不同層次的需求從不同角度與不同程度反映著細節(jié)問題。IEEE軟件工程標準詞匯表(2021年)將需求定義為:用戶解決問題或達到目標所需的條件或能力。系統(tǒng)或系統(tǒng)部件要滿足合同、標準、規(guī)范或其它正式規(guī)定文檔所需具有的條件或能力。一種反映上面A或B所描述的條件或能力的文檔說明。IEEE的定義包括從用戶角度(系統(tǒng)的外部行為),以及從開發(fā)者角度(一些內(nèi)部特性)來闡述需求,其關鍵的問題是一定要編寫需求文檔。也就是說:需求是用戶所需要的并能觸發(fā)一個程序或系統(tǒng)開發(fā)工作的說明;需求是從系統(tǒng)外部能發(fā)現(xiàn)系統(tǒng)所具有的滿足于用戶的特點、功能及屬性等;需求是指明必須實現(xiàn)什么的規(guī)格說明。它描述了系統(tǒng)的行為、特性或屬性,是在開發(fā)過程中對系統(tǒng)的約束。系統(tǒng)分析過程系統(tǒng)分析也稱邏輯設計,是應用軟件系統(tǒng)開發(fā)過程中的重要一環(huán),系統(tǒng)分析工作做得好壞,直接影響整個系統(tǒng)開發(fā)的成敗。在分析階段,開發(fā)人員旨在構造一個正確、完整、一致、無歧異、現(xiàn)實的并且是可驗證的系統(tǒng)模型。系統(tǒng)分析的核心內(nèi)容是正確表達理解和表達用戶需求,明確系統(tǒng)做什么。目標是基于用戶的需求,分析與優(yōu)化系統(tǒng)的信息流程,在不考慮具體實現(xiàn)環(huán)境的前提下,建立系統(tǒng)的邏輯結構,使其相對穩(wěn)定,不隨具體實現(xiàn)環(huán)境的變化而變化,便于系統(tǒng)適應環(huán)境的變化及系統(tǒng)的維護與擴充,最后形成系統(tǒng)分析文檔,作為系統(tǒng)設計的依據(jù)。系統(tǒng)設計過程在系統(tǒng)設計階段,要這重解決“怎么做”的問題。即采用某種系統(tǒng)設計方法,將系統(tǒng)的信息模型和功能模型轉化為系統(tǒng)的信息結構或數(shù)據(jù)庫物理模式及軟件結構,在充分利用現(xiàn)有軟件組件的前提下,設計每個軟件模塊的輸入和輸出格式,形成系統(tǒng)設計文檔,作為系統(tǒng)實施的直接依據(jù)。在系統(tǒng)設計階段,開發(fā)人員定義項目的設計目標,并把項目分解成能被單個小組實現(xiàn)的子系統(tǒng)。開發(fā)人員也要選擇構建項目的策略,如系統(tǒng)運行的硬件/軟件平臺、持續(xù)的數(shù)據(jù)管理策略、全局控制流、訪問控制策略、以及邊界條件的處理。系統(tǒng)設計的結果是一份清楚地描述,說明所選擇每條策略,子系統(tǒng)分解以及表示系統(tǒng)軟硬件映射的配置圖。J2EE簡介J2EE概述隨著Internet計算的迅速發(fā)展,作為一門新興的語言,Java以其完全面向對象的設計風格和良好的平臺無關性,已經(jīng)超越了語言本身的功能,成為了開發(fā)Web應用的理想平臺。Java平臺包括了一種用于實現(xiàn)Java對象的語言和這些Java對象的運行環(huán)境——Java虛擬機JVM(JavaVirtualMachine)。Java語言的主要特點是平臺無關性:在一個操作系統(tǒng)下開發(fā)的Java對象可以不做修改的運行在另外一個操作系統(tǒng)的JVM上。JVM封裝了各種底層操作系統(tǒng)在體系結構和語義上的差異,在此基礎上為Java對象提供了一個統(tǒng)一的運行環(huán)境。Java對象的源代碼被編譯為平臺無關的中性代碼——字節(jié)碼。在運行時刻,字節(jié)碼由JVM進行解釋,被映射為真正的相關的操作系統(tǒng)調用而得以執(zhí)行功能。因此,只要是100%純Java語言實現(xiàn)的對象可以被各種具有相應JVM的操作系統(tǒng)所支持。Sun公司的J2EE構架是在2021年的JavaOne大會上宣布的,J2EE定義了開發(fā)和運行企業(yè)級Web應用的標準。它是一組規(guī)范,旨在為支持Java語言服務器端部署而提供平臺無關的、可移植的、多用戶的、安全的和標準的企業(yè)級平臺。伴隨J2EE的出現(xiàn),Java語言的功能和工具得到了極大的擴充、豐富和發(fā)展,可以用于復雜的、多層次的以及分布式的電子商務和企業(yè)級應用。J2EE構架與技術為組件開發(fā)模型提供廣泛的支持,同時也提供一組開發(fā)工具和服務,以便開發(fā)模塊化的、可重用的和平臺獨立的各種組件技術的業(yè)務邏輯。J2EE的優(yōu)勢J2EE為搭建具有可伸縮性、靈活性、易維護性的商務系統(tǒng)提供了良好的機制,它具有以下突出的優(yōu)點:1、事實的標準:J2EE是由SUN引導,各廠商共同發(fā)起的,并得到廣泛認可的工業(yè)標準,業(yè)內(nèi)的大企業(yè)(如IBM,BEA,ORACLE等)都積極參與,很多應用軟件開發(fā)商也把自己的產(chǎn)品轉移到J2EE平臺上來,使之成為事實的工業(yè)標準。因此,J2EE擁有良好的市場和旺盛的生命力。2、可保存現(xiàn)有的IT資產(chǎn):使用J2EE能夠充分利用客戶原有的投資,保留已有的信息資源;同時,由于基于J2EE平臺的產(chǎn)品幾乎在任何操作系統(tǒng)和硬件配置上都可以運行,現(xiàn)有的操作系統(tǒng)和硬件也能夠被保留使用。3、高效的開發(fā):J2EE允許公司把一些通用的、很繁瑣的服務端任務交給中間件供應商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建業(yè)務邏輯上,相應地縮短了開發(fā)時間。4、支持異構環(huán)境:J2EE能夠開發(fā)部署在異構環(huán)境中的可移植程序。基于J2EE的程序不依賴于任何特定操作系統(tǒng)、中間件、硬件。因此設計合理的基于J2EE的應用程序只需開發(fā)一次就可被部署到各種平臺。這在典型的異構企業(yè)計算環(huán)境中是十分重要的。J2EE標準也允許客戶定購與J2EE兼容的第三方的現(xiàn)成的組件,把它們部署到異構環(huán)境中,節(jié)省了由自己制定整個方案所需的費用。5、可伸縮性:企業(yè)必須選擇一種服務器端平臺,這種平臺應能提供極佳的可伸縮性去滿足那些在它們的系統(tǒng)上進行商業(yè)運作的大批新客戶。基于J2EE平臺的應用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX和大型機系統(tǒng),這種系統(tǒng)單機可支持64至256個處理器。(這是NT服務器所望塵莫及的)J2EE領域的供應商提供了更為廣泛的負載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺服務器集成部署。這種部署可達數(shù)千個處理器,實現(xiàn)可高度伸縮的系統(tǒng),滿足未來商業(yè)應用的需要。穩(wěn)定的可用性:一個服務器端平臺必須能夠全天候運轉以滿足公司客戶和合作伙伴的需要。因為Internet是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴重損失。意外停機有可能造成災難性后果。可以把J2EE部署到可靠的操作環(huán)境中,它們支持長期的可用性。最健壯的操作系統(tǒng)可達到99.999%的可用性或每年只需5分鐘的停機時間,這是實時性很強商業(yè)系統(tǒng)理想的選擇。數(shù)據(jù)庫基礎數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)與數(shù)據(jù)庫系統(tǒng)一.數(shù)據(jù)庫信息:客觀事物的性質和特征在人腦中的反映。數(shù)據(jù):是對客觀事物的性質或特征的一種抽象符號化表示。是記錄下來的信息。數(shù)據(jù)處理:是對各種形式的數(shù)據(jù)進行收集、組織、加工、存儲、傳播等工作。數(shù)據(jù)處理又稱為信息加工。數(shù)據(jù)庫:顧名思義就是存放數(shù)據(jù)的倉庫,特指以一定的組織形式存放于計算機中的相關數(shù)據(jù)的集合。二.數(shù)據(jù)庫管理系統(tǒng)1.數(shù)據(jù)庫管理系統(tǒng)的概念:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是幫助用戶建立、使用和管理數(shù)據(jù)庫的計算機系統(tǒng)。它是位于數(shù)據(jù)庫和操作系統(tǒng)之間的數(shù)據(jù)庫管理軟件。2.DBMS的組成a)數(shù)據(jù)定義語言(DataDefinitionLanguage,DLL);用于定義數(shù)據(jù)庫模式,定義有關約束條件,供用戶建立數(shù)據(jù)庫。b)數(shù)據(jù)庫操作語言(DataManipulationLanguage,DML);實現(xiàn)對數(shù)據(jù)庫進行的檢索、添加、刪除和修改等操作。c)數(shù)據(jù)庫運行控制程序;負責數(shù)據(jù)庫運行過程中的控制與管理,包括存儲路徑管理程序、緩沖區(qū)管理程序、安全性管理程序、完整性檢查程序、并發(fā)控制程序、事務管理程序和運行日志管理程序等。d)實用程序3.DBMS的功能DBMS是數(shù)據(jù)庫系統(tǒng)的核心,數(shù)據(jù)庫的建立、使用和維護,都是由DBMS系統(tǒng)統(tǒng)一管理,統(tǒng)一控制。DBMS使用戶方便地定義和操縱數(shù)據(jù)庫中的數(shù)據(jù),并能保證數(shù)據(jù)的安全性、完整型、并發(fā)性和發(fā)生故障后的系統(tǒng)恢復。4.DBMS的分類按照數(shù)據(jù)管理系統(tǒng)處理數(shù)據(jù)的規(guī)模來劃分,數(shù)據(jù)庫管理系統(tǒng)分為大型網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)和小型桌面數(shù)據(jù)庫管理系統(tǒng)。常用的大型網(wǎng)絡數(shù)據(jù)庫管理系統(tǒng)有SQLServer,DB2,ORACLE,Sybase等。常用的小型桌面數(shù)據(jù)庫管理系統(tǒng)有:Dbase,F(xiàn)oxbase,MS-Access等。三.數(shù)據(jù)庫系統(tǒng)1.數(shù)據(jù)庫系統(tǒng)(DBS)是指在計算中引入數(shù)據(jù)庫后的系統(tǒng)構成。一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(DBMS)及開發(fā)工具、應用系統(tǒng)、數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)和用戶構成,其中數(shù)據(jù)庫管理系統(tǒng)(DBMS)是數(shù)據(jù)庫系統(tǒng)的核心。2.數(shù)據(jù)庫管理員數(shù)據(jù)庫管理員是維護數(shù)據(jù)庫系統(tǒng)的專門人員,主要任務是:決定數(shù)據(jù)庫的信息內(nèi)容與結構,決定數(shù)據(jù)庫的存儲結構和訪問策略,實施數(shù)據(jù)庫系統(tǒng)的保護,監(jiān)督和控制數(shù)據(jù)庫的使用和運行,響應系統(tǒng)的某些變化,改善系統(tǒng)的性能。四.數(shù)據(jù)庫技術的產(chǎn)生、發(fā)展和特點隨著計算機軟硬件的發(fā)展,電子數(shù)據(jù)處理技術的發(fā)展經(jīng)歷了三個階段:程序管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫模型數(shù)據(jù)庫模型是指數(shù)據(jù)庫中數(shù)據(jù)的組織形式和聯(lián)系方式,即數(shù)據(jù)庫的整體模型。按照數(shù)據(jù)庫中數(shù)據(jù)采取的不同聯(lián)系方式,數(shù)據(jù)庫模型可以分為三種:網(wǎng)狀型、層次型和關系型。相應的數(shù)據(jù)庫分別被稱為:網(wǎng)狀型數(shù)據(jù)庫、層次型數(shù)據(jù)庫和關系型數(shù)據(jù)庫。1.網(wǎng)狀型網(wǎng)狀型數(shù)據(jù)庫模型將每項記錄當成一個節(jié)點,節(jié)點和節(jié)點之間可以建立關聯(lián),形成一個復雜的網(wǎng)狀結構。【優(yōu)點】:避免數(shù)據(jù)的重復性。【缺點】:關聯(lián)性比較復雜,尤其是當數(shù)據(jù)庫變得越來越大時,關聯(lián)性的維護會非常麻煩。2.層次型層次型數(shù)據(jù)庫模型采用樹狀結構,一句數(shù)據(jù)的不同類型,將數(shù)據(jù)分門別類,存儲在不同層次上?!緝?yōu)點】:數(shù)據(jù)結構類似金字塔,不同層次之間的關聯(lián)性直接而且簡單。【缺點】:由于數(shù)據(jù)縱向發(fā)展,橫向關系難以建立,數(shù)據(jù)可能會重復出現(xiàn),造成管理維護的不便。3.關系型關系型數(shù)據(jù)庫是以二維矩陣來存儲數(shù)據(jù)的,行和列形成一個關聯(lián)的數(shù)據(jù)表(Table)。在關系型數(shù)據(jù)庫中,通常由多個表存在,表與表之間會因為字段的關系產(chǎn)生關聯(lián)。關系型數(shù)據(jù)庫1.關系型數(shù)據(jù)庫的定義關系型數(shù)據(jù)庫是由IBM公司的SunJose實驗室的研究員E.F.Codd博士提出的。E.F.Codd博士指出:關系型數(shù)據(jù)庫是一些相關的表和其他數(shù)據(jù)庫對象的集合。這個定義表達了3部分的含義:1.在關系型數(shù)據(jù)庫中,信息存放在二維表格結構的數(shù)據(jù)表中,一個表叫做一個關系,一個關系型數(shù)據(jù)庫可以包含一個或多個表,每個表包含行(記錄)和列(字段)。2.關系型數(shù)據(jù)庫所包含的表之間是有聯(lián)系的,聯(lián)系由表的主鍵和外鍵體現(xiàn)的參照關系實現(xiàn)。3.關系型數(shù)據(jù)庫不僅包含表,還包含其他的數(shù)據(jù)庫對象。數(shù)據(jù)的獨立性表現(xiàn)在兩個重要的方面:物理獨立性和邏輯獨立性。物理獨立性是指用戶所看到的數(shù)據(jù)與數(shù)據(jù)的物理存儲是完全獨立的,即可以改變或重新安排物理存儲而不會影響到數(shù)據(jù)的使用和邏輯數(shù)據(jù)庫的設計。邏輯獨立性指的是,可以改變表、行和列之間的相互關系,即對數(shù)據(jù)結構進行修改而不會削弱應用程序特別是查詢的功能。關系型數(shù)據(jù)庫與表關系型數(shù)據(jù)庫由多個關系以及其他的數(shù)據(jù)庫對象組成,關系表現(xiàn)為表,表之間因為某些字段的相關性而產(chǎn)生聯(lián)系。例:用于教學管理的教學數(shù)據(jù)庫的3個表,分別是學生表,客車嘎表,學生選課表。學生表的字段為:學號(*)、姓名、性別、出生日期、所在系課程表的字段為:課程號(*)、課程名、學分學生選課表的字段為:學號(*)、課程號(*)、成績其中在學生選課表中通過學號和課程號,使學生同課程之間建立起聯(lián)系。3.關系型數(shù)據(jù)庫常用術語實體:客觀世界實際存在并可以相互區(qū)分的事務。實體可以是人或物或一個抽象的概念。實體可以分為單個實體和實體集。屬性:指實體具有的某種特性。每一個實體可以具有若干屬性。每個屬性都有一個取值范圍,叫做屬性的域。關系數(shù)據(jù)庫中,表的每一列(字段)描述的就是實體的某個屬性。聯(lián)系:一對一的聯(lián)系(1:1)——班長和班級之間的聯(lián)系。一對多的聯(lián)系(1:N)——用戶和號碼之間的關系。多對多的聯(lián)系(N:N)——學生和課程之間的關系。關鍵字和主鍵。實體的關鍵字:實體屬性中,能唯一標識實體集中每個實體的屬性或某幾個屬性。主鍵:在關系數(shù)據(jù)庫中,關鍵字被稱為主鍵。是指表中的某一列或某幾列的組合。其值可唯一地標識表中的每一條記錄,每個表必須由且僅有一個主鍵。主鍵的值必須是唯一,而且不允許為空值(NULL),一般為字符類型的字段。外鍵:在關系型數(shù)據(jù)庫中,外鍵指表中含有的與另一個表的主鍵相對應的字段,它用來與其他表建立聯(lián)系。例:在上面的關系數(shù)據(jù)庫中,學生選課表中的學號和課程號為外鍵,在學生表和課程表中為主鍵?!緝?yōu)點】:提供表之間的連接??梢愿鶕?jù)外鍵的值來檢查輸入數(shù)據(jù)的合法性。保證外鍵字段的值都是一個有效的主鍵,從而可以實施參照完整性。4.數(shù)據(jù)完整性數(shù)據(jù)完整性是用來確保數(shù)據(jù)庫中的數(shù)據(jù)的正確性和可靠性。實體完整性:是為了保證表中的數(shù)據(jù)唯一,實體完整性可由主鍵來實現(xiàn)。表中的主鍵在所有記錄上的取值必須唯一。域完整性:域完整性可以保證數(shù)據(jù)的的取值在有效的范圍之內(nèi)。參照完整性:用于確保相聯(lián)系的表間的數(shù)據(jù)保持一致,避免因一個表的記錄的修改,造成另一個表的內(nèi)容變?yōu)闊o效的值。一般來說,參照完整性是通過主鍵和外鍵來維護的。自定義完整性:由用戶自行定義的,不同于前面3種的完整性,也可以說是一種強制數(shù)據(jù)定義。例:在輸入學生表的記錄時,應確保姓名字段不為空(NOTNULL)。關系型數(shù)據(jù)庫設計一.數(shù)據(jù)庫設計過程數(shù)據(jù)庫設計一般都有經(jīng)歷需求分析、概念設計、邏輯設計和物理設計幾個階段:1.需求分析主要任務:從數(shù)據(jù)庫的所有用戶那里收集對數(shù)據(jù)的需求和對數(shù)據(jù)處理的要求,并把這些需求寫成用戶和設計人員都能接受的系統(tǒng)需求說明書。2.概念設計將需求說明書中關于數(shù)據(jù)的需求進行抽象,進而轉化為信息世界種的概念模型。建立數(shù)據(jù)庫概念模型的主要工具是E-R模型,也稱為實體聯(lián)系模型(Entity-RelationModel)。E-R模型主要采用E-R模型圖表達數(shù)據(jù)庫的概念模型。E-R模型圖種包含實體、屬性和聯(lián)系三種基本圖素。具體規(guī)定如下:矩形框:表示實體,框內(nèi)寫明實體名。圓角矩形框:表示實體的屬性,框內(nèi)寫明實體屬性。菱形框:描述實體間的聯(lián)系,框內(nèi)寫明聯(lián)系名。線段:用戶連接相聯(lián)系的實體和實體間的屬性。3.邏輯設計邏輯設計主要是將E-R模型轉換為某一特定的DBMS能接受的邏輯模式。對于關系數(shù)據(jù)庫主要是完成表的結構和關聯(lián)的設計。通常根據(jù)E-R模型圖將每個實體轉換為一個關系,即所謂的表,實體屬性即為表的字段,并為表設置主鍵。實體之間的聯(lián)系要視聯(lián)系的種類而定:1)E-R模型圖種每個一對一的聯(lián)系(1:1)不需要再建立一個表,直接將一個表的主鍵作為外鍵添入另一個表中即可。2)E-R模型圖中一對多的聯(lián)系(1:n)的變換也不需要再建立一個表,設表A與表B之間是1:N關系,則變換時將表A的主鍵作為外部鍵添加到表B中即可。3)E-R模型圖中每個多對多(m:n)的聯(lián)系要單獨轉換為一個表,表中的字段將包含相聯(lián)系的實體的主鍵和聯(lián)系本身具備的屬性,并用相聯(lián)系的實體雙方的主鍵組合起來做聯(lián)系表的主鍵。4.物理設計物理設計用于確定數(shù)據(jù)庫的存儲結構。主要任務包括:確定數(shù)據(jù)庫文件和索引文件的記錄格式和物理結構,選擇存取方式,決定訪問路徑和外存儲器的分配策略等等。二.關系型數(shù)據(jù)庫規(guī)范化為了建立冗余較小、結構合理的數(shù)據(jù)庫,Codd把關系應滿足的規(guī)范劃分為若干等級,每一個等級稱為一個范示,滿足最低要求的稱為第一范式(1NF),在1NF基礎上又滿足某些要求的稱為第二范式(2NF),在2NF基礎上再滿足一些要求的為第三范式(3NF)。1NF:如果一個表的每一個字段都不可能再分,則稱表滿足第一范式。2NF:表式1NF,而且它的每一非主鍵字段完全依賴于主鍵,則表滿足第二范式。3NF:表是2NF,而且它的每一非主鍵字段不傳遞依賴于主鍵,則表滿足第三范式。傳遞依賴的含義:指經(jīng)由其他字段傳遞而以來于主鍵的字段。3NF的實際含義是要求非主鍵字段不應該有從屬關系。開發(fā)工具的選擇MyEclipse9MyEclipse,是一個十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。MyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,javascript,Spring,SQL,Hibernate。MyEclipse9.0經(jīng)過M1,M2,終于出了正式版(MyEclipseForSpring還是8.6.1)。MyEclipse9.0集成了Eclipse3.6.1,并且支持HTML5和JavaEE6。MySQL5.51.MySQL簡介MySQL是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2021年1月16號被Sun公司收購。而2021年,SUN又被Oracle收購。MySQL是一種關聯(lián)數(shù)據(jù)庫管理系統(tǒng),關聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“j結構化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。目前Internet上流行的網(wǎng)站構架方式是LAMP(Linux+Apache+MySQL+PHP/Perl/Python)和LNMP(Linux+Nginx+MySQL+php/perl/Python),即使用Linux作為操作系統(tǒng),Apache和Nginx作為Web服務器,MySQL作為數(shù)據(jù)庫,PHP/Perl/Python作為服務器端腳本解釋器。由于這四個軟件都是免費或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩(wěn)定、免費的網(wǎng)站系統(tǒng)。2.查詢和索引的優(yōu)化只有當數(shù)據(jù)庫里已經(jīng)有了足夠多的測試數(shù)據(jù)時,它的性能測試結果才有實際參考價值。如果在測試數(shù)據(jù)庫里只有幾百條數(shù)據(jù)記錄,它們往往在執(zhí)行完第一條查詢命令之后就被全部加載到內(nèi)存里,這將使后續(xù)的查詢命令都執(zhí)行得非???-不管有沒有使用索引。只有當數(shù)據(jù)庫里的記錄超過了1000條、數(shù)據(jù)總量也超過了MySQL服務器上的內(nèi)存總量時,數(shù)據(jù)庫的性能測試結果才有意義。在不確定應該在哪些數(shù)據(jù)列上創(chuàng)建索引的時候,人們從EXPLAINSELECT命令那里往往可以獲得一些幫助。這其實只是簡單地給一條普通的SELECT命令加一個EXPLAIN關鍵字作為前綴而已。有了這個關鍵字,MySQL將不是去執(zhí)行那條SELECT命令,而是去對它進行分析。MySQL將以表格的形式把查詢的執(zhí)行過程和用到的索引等信息列出來。在EXPLAIN命令的輸出結果里,第1列是從數(shù)據(jù)庫讀取的數(shù)據(jù)表的名字,它們按被讀取的先后順序排列。type列指定了本數(shù)據(jù)表與其它數(shù)據(jù)表之間的關聯(lián)關系(JOIN)。在各種類型的關聯(lián)關系當中,效率最高的是system,然后依次是const、eq_ref、ref、range、index和All(All的意思是:對應于上一級數(shù)據(jù)表里的每一條記錄,這個數(shù)據(jù)表里的所有記錄都必須被讀取一遍——這種情況往往可以用一索引來避免)。possible_keys數(shù)據(jù)列給出了MySQL在搜索數(shù)據(jù)記錄時可選用的各個索引。key數(shù)據(jù)列是MySQL實際選用的索引,這個索引按字節(jié)計算的長度在key_len數(shù)據(jù)列里給出。比如說,對于一個INTEGER數(shù)據(jù)列的索引,這個字節(jié)長度將是4。如果用到了復合索引,在key_len數(shù)據(jù)列里還可以看到MySQL具體使用了它的哪些部分。作為一般規(guī)律,key_len數(shù)據(jù)列里的值越小越好。ref數(shù)據(jù)列給出了關聯(lián)關系中另一個數(shù)據(jù)表里的數(shù)據(jù)列的名字。row數(shù)據(jù)列是MySQL在執(zhí)行這個查詢時預計會從這個數(shù)據(jù)表里讀出的數(shù)據(jù)行的個數(shù)。row數(shù)據(jù)列里的所有數(shù)字的乘積可以大致了解這個查詢需要處理多少組合。最后,extra數(shù)據(jù)列提供了與JOIN操作有關的更多信息,比如說,如果MySQL在執(zhí)行這個查詢時必須創(chuàng)建一個臨時數(shù)據(jù)表,就會在extra列看到usingtemporary字樣。電子科技大學學士學位論文第3章需求和可行性分析PAGE64PAGE65需求和可行性分析功能需求分析通過對用戶的需求調查分析,可以概括出用戶的功能需求如下:填寫個人基本信息、單選投票、多選投票、查看投票、投票設計。填寫個人基本信息:填寫個人姓名、住院時間等基本情況。單選投票:用戶只能從多個選項中選取一項進行投票。多選投票:用戶可以從多個選項中選取多項進行投票。查看投票:提供用戶查看當前投票情況,投票結果以條形圖顯示。投票設計:管理員可以設計不同的投票主題,及投票主題的內(nèi)容供用戶進行投票。投票設計又包括以下功能需求:增加主題、刪除主題、查看主題、修改主題。管理、技術上可行性分析管理上的可行性在醫(yī)院方面,從主管領導、醫(yī)護人員人員到具體的網(wǎng)絡管理維護人員認識是一致的,他們都大力支持系統(tǒng)的開發(fā),而且由于醫(yī)院有良好的管理基礎,因而建立新系統(tǒng)在管理上是可行的。技術可行性Java語言主要有以下幾個方面的特點:①平臺無關性。Java的編譯程序生成一種高級的、與機器獨立的字節(jié)碼(ByteCode),它是針對由Java解釋程序和運行時系統(tǒng)實現(xiàn)的虛擬機而生成的,可以在任何支持Java解釋器的操作系統(tǒng)平臺上運行。從而使編譯后的Java程序具有很好的跨平臺性。②簡潔性。Java是一種面向對象的高級程序設計語言,特別注重簡潔性。它沒有C/C++中大量存在的預處理程序、#define及相關成份、typedef、頭文件,且Java中無危險的指針運算,既減少了程序的復雜性,又增加了安全性。Java語言與C/C++有許多相似之處,卻比C/C++簡單得多,不但易讀易懂,而且代碼的修改和重用也很容易。③可移植性。程序被編譯后生成的并不是真正的機器碼,而是字節(jié)碼。字節(jié)碼是以Java虛擬機(JavaVirtualMachine)為基礎的,Java對每一個可能和系統(tǒng)軟硬件相關的部分都作了明確的定義,消除了C/C++語言中數(shù)據(jù)類型的不確定性(例如整數(shù)類型int在不同的系統(tǒng)中可能會有16,32或64bit等不同的長度)。Java語言環(huán)境本身也容易移植到新的體系結構和操作系統(tǒng),其編譯程序也是用Java語言編寫的,它運行時的系統(tǒng)是用ANSIC編寫的,帶有清晰的可移植邊界。④安全性。Java安全體系結構除了自身語言的安全性外,還包括字節(jié)碼驗證器、類裝入器、安全管理器、訪問控制器、權限、策略和保護域等層層防護措施,使Java程序具有很高的安全性。對終端用戶而言,它鑒別代碼提供者的身份,保護用戶文件及私有數(shù)據(jù)不被惡意的程序或病毒感染和破壞;對開發(fā)者而言,可以將特定的安全特性集成到應用程序中。MyEclipse是一個十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應用程序服務器的整合方面極大的提高工作效率。對于JavaEE模型,WEB開發(fā)工具,數(shù)據(jù)庫服務,應用程序服務器的連接器等每一種功能上的類別,在Eclipse中都有相應的功能部件,并通過一系列的插件來實現(xiàn)它們。MyEclipse結構上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯,MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時不需安裝Eclipse。MySQL是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),其體積小、速度快、總體擁有成本低,擁有眾多優(yōu)勢:一,它使用的核心線程是完全多線程,支持多處理器;二,有多種列類型:1、2、3、4、和8字節(jié)長度自有符號/無符號整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、和ENUM類型;三,它通過一個高度優(yōu)化的類庫實現(xiàn)SQL函數(shù)庫并像他們能達到的一樣快速,通常在查詢初始化后不該有任何內(nèi)存分配。沒有內(nèi)存漏洞;四,全面支持SQL的GROUPBY和ORDERBY子句,支持聚合函數(shù)(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查詢中混來自不同數(shù)據(jù)庫的表;五,支持ANSISQL的LEFT0UTERJOIN和ODBC;六,所有列都有缺省值。你可以用INSERT插入一個表列的子集,那些沒用明確給定值的列設置為他們的決省值;七,MySQL可以工作在不同的平臺上。支持C、C++、Java、Perl、PHP、Python和TCLAPI。安全上的可行性在建立數(shù)據(jù)庫時可以通過對數(shù)據(jù)庫的設計用戶名和密碼進行保密,以及在建立數(shù)據(jù)庫以后可以對數(shù)據(jù)進行壓縮等技術,保證數(shù)據(jù)的安全,使數(shù)據(jù)庫具有安全保障。第4章系統(tǒng)設計系統(tǒng)設計系統(tǒng)總體設計醫(yī)院反饋投票系統(tǒng)的設計投票協(xié)議是電子投票系統(tǒng)的核心,身份認證則是為電子投票服務的,因此,對電子投票系統(tǒng)的設計,也就是對電子投票協(xié)議的具體實現(xiàn)。這里,我們以VonRSA電子投票協(xié)議為中心,以提出的身份認證算法為輔助,來設計電子投票系統(tǒng)。系統(tǒng)設計原則考慮到電子投票系統(tǒng)的特殊性及其網(wǎng)絡應用的的特點,在設計系統(tǒng)時,主要遵循了以下原則:①功能完備。由于電子投票系統(tǒng)在使用中的特殊性,使得電子投票系統(tǒng)必須滿足準確性、完整性、公正性、唯一性、秘密性、可驗證行、非強制性、靈活性、效率性和方便性的要求。我們提出的VonRSA投票協(xié)議,很好的滿足了上述要求,因此,在系統(tǒng)設計過程中,必須嚴格按照VonRSA協(xié)議規(guī)定的流程,保證實現(xiàn)的系統(tǒng)滿足上述各方面的要求。②安全性。由于本系統(tǒng)主要是應用在開放網(wǎng)絡中,而網(wǎng)絡安全的安全狀況一直令人擔憂。安全問題主要包括系統(tǒng)安全和信息安全兩個方面。系統(tǒng)安全是指一些非法用戶對系統(tǒng)進行惡意的攻擊,造成系統(tǒng)運行錯誤或者癱瘓;信息安全是指系統(tǒng)的敏感信息被惡意竊取、篡改或者破壞,它涉及到信息的存儲、訪問和傳輸?shù)入A段。所以在系統(tǒng)中采用了一些安全和防范措施:1)采用嚴格的身份認證機制,防止非法用戶闖入系統(tǒng)。2)在網(wǎng)絡上傳輸?shù)男畔⒍冀?jīng)過加密處理,防止用戶信息被竊取或篡改,這一點在身份認證過程及投票過程都有很好的體現(xiàn)。③先進性和開放性。網(wǎng)絡系統(tǒng)采用開放式結構,充分利用符合國際標準的計算機、網(wǎng)絡和數(shù)據(jù)庫方面的先進技術、軟件和主流產(chǎn)品進行設計。④可靠性。為保證系統(tǒng)的正常運行、數(shù)據(jù)信息的完整性和可靠性,所采用的系統(tǒng)軟硬件都應有很強的可靠性。⑤實用性和經(jīng)濟性。系統(tǒng)應該在整體費用最小前提下進行設計與規(guī)劃,既能滿足系統(tǒng)性能要求,又要減少系統(tǒng)建設費用,使系統(tǒng)具有較高的性能價格比,也使系統(tǒng)易于推廣使用。⑥好用性。所設計的系統(tǒng),應該提供友好的界面和簡易的操作,投票人不需要專門的知識就可以進行投票,從而可以吸引更多的投票人參與投票——這也是使用電子投票系統(tǒng)的初衷之一。MVC模式模型-視圖-控制器(MVC)是XeroxPARC在八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設計模式,至今已被廣泛使用。最近幾年被推薦為Sun公司J2EE平臺的設計模式。MVC結構提供了一種按功能對各種對象進行分割的方法,它強制性地使應用程序的輸入、處理和輸出分開,所以依據(jù)這種設計思想能夠構造良好的松耦合的構件。使用MVC的應用程序被分成三個核心構件:模型、視圖、控制器。系統(tǒng)總體結構本系統(tǒng)采用MVC的設計模式,用戶輸入輸出界面均為JSP頁面,即展示層(VIEW),用戶的請求(REQUEST)將會被發(fā)送到控制層(CONTROL)的一個SERVLET集中處理,根據(jù)請求調用模型層(MODEL)的JAVABEAN對請求進行實際處理,并把結果返回給控制層,控制層根據(jù)請求的執(zhí)行結果將響應(RESPONSE)派發(fā)到相應的JSP頁面。例如,一個數(shù)據(jù)提交(操作請求)的標準流程:在問卷管理模塊中的添加問卷頁面(SurveyAdd.jsp),用戶在這個頁面中輸入數(shù)據(jù),提交之后,請求被派發(fā)到一個名為SurveyManage的servlet中集中處理,在這個servlet中,調用了持久層的名為SurveyDAO的javabean的addSurvey方法對數(shù)據(jù)進行持久化,然后把處理結果返回給SurveyMange這個控制器,控制器根據(jù)返回的結果決定將相應的頁面展現(xiàn)給客戶端瀏覽器。又如,一個數(shù)據(jù)查詢(數(shù)據(jù)請求)的標準流程:在問卷設計頁面中(SurveyAdmin.jsp),用戶打開頁面后,頁面即調用SurveyDAO的listAllSurvey方法查詢出所有問卷信息返回給頁面,即頁面進行數(shù)據(jù)查詢時不再經(jīng)過CONTROLLER層。如圖4-1:返回返回頁面controller操作請求返回數(shù)據(jù)請求數(shù)據(jù)操作請求返回數(shù)據(jù)請求數(shù)據(jù)數(shù)據(jù)請求ViewModel數(shù)據(jù)請求ViewModel圖4-1標準流程返回數(shù)據(jù)圖4-1標準流程返回數(shù)據(jù)系統(tǒng)的層次結構設計電子投票系統(tǒng)是通過網(wǎng)絡來進行投票的,理論上講,在任何可以聯(lián)網(wǎng)的地方,投票人都應該可以順利地進行投票。鑒于此種分布性需求,我們采用B/S結構來對電子投票系統(tǒng)進行設計,實現(xiàn)的系統(tǒng)模型如圖4-2所示,軟件結構如圖4-3所示。采用B/S結構,整個投票系統(tǒng)就只有服務器端和客戶端兩個部分組成。其中服務器是整個系統(tǒng)的核心,它的組成部分主要有:電子投票應用程序服務器、數(shù)據(jù)庫服務器,當然還有底層的操作系統(tǒng)軟件、以及用于站點管理的Web服務器軟件。其中應用程序服務器將實現(xiàn)電子投票協(xié)議的各個功能,并負責調度客戶端和數(shù)據(jù)庫服務器之間的數(shù)據(jù)。圖4-2B/S結構圖4-2B/S結構Web瀏覽器Web瀏覽器數(shù)據(jù)庫服務器數(shù)據(jù)庫服務器操作系統(tǒng)操作系統(tǒng)圖4-3服務器端圖4-3服務器端而B/S結構下的客戶端則不需要專門的支持軟件,它只需要一個普通的瀏覽器即可,不過由于本系統(tǒng)服務器端的語言平臺是Java,因此,在客戶端還需要Java虛擬機(JavaVirtualMachine,JVM)的支持,目前,大多數(shù)的瀏覽器如MicrosoftIE,Netscape等都已經(jīng)集成了JVM,可以很好的運行Java代碼。功能模塊設計通過對功能需求進行分析和概括得到如圖所示的系統(tǒng)功能模塊圖4-4:基本信息模塊:填寫個人姓名,入、出院時間等基本情況。病人投票模塊:用戶只能從多個選項中選取一或幾項項進行投票。投票統(tǒng)計模塊:用戶可以查看投票數(shù)統(tǒng)計。管理員模塊:管理員可以設計不同的投票主題,及投票主題的內(nèi)容供用戶進行投票。投票設計又包括以下功能需求:刪除主題、查看主題。管理員投票統(tǒng)計病人投票基本信息刪除投票查看投票顯示投票數(shù)顯示信息項顯示投票項確認投票圖4-4功能模塊圖醫(yī)院住院反饋系統(tǒng)管理員投票統(tǒng)計病人投票基本信息刪除投票查看投票顯示投票數(shù)顯示信息項顯示投票項確認投票圖4-4功能模塊圖醫(yī)院住院反饋系統(tǒng)數(shù)據(jù)庫的設計該系統(tǒng)的數(shù)據(jù)庫用MySQL根據(jù)投票系統(tǒng)功能設計的要求,可以列出以下數(shù)據(jù)項和數(shù)據(jù)結構:投票表:存放投票信息;用戶表:存放管理員的用戶名和密碼;數(shù)據(jù)項包括:序號、標識、選項類型、投票主題、投票選項內(nèi)容、得票數(shù)。電子科技大學學士學位論文第5章系統(tǒng)開發(fā)系統(tǒng)開發(fā)數(shù)據(jù)庫設計核心實體包括:問卷(SURVEY),問題(QUESTION),答卷(ANSWERSHEET);還有管理員表(ADMINS),友情鏈接表(LINK),系統(tǒng)配置表(CONFIG)創(chuàng)建數(shù)據(jù)庫CREATEDATABASEVOTE;創(chuàng)建表創(chuàng)建數(shù)據(jù)庫中用到的反饋投票表: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ù)庫創(chuàng)建之后的結構圖如下: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ù)庫中用到的用戶表createtableuser(useridintnotnullauto_increment,usernamechar(20),passwordchar(20),primarykey(userid));insertintouservalues(null,'admin','admin');數(shù)據(jù)庫創(chuàng)建之后的結構圖如下:FieldTypeNullKeyDefaultExtrauseridint(11)PRINULLauto_incrementusernamechar(20)YESNULLpasswordchar(20)YESNULL表5-2用戶表表5-2用戶表連接數(shù)據(jù)庫該系統(tǒng)使用了MySQL的JDBC驅動程序來連接數(shù)據(jù)庫。因為對數(shù)據(jù)庫的訪問,在整個系統(tǒng)中比較頻繁,所以我將對數(shù)據(jù)庫的操作寫成一個DBConnect的類,通過該類來連接數(shù)據(jù)庫和訪問數(shù)據(jù)庫。//部分代碼如下publicclassdb{publicstaticConnectiongetConn(){Connectionconn=null;try{//加載數(shù)據(jù)庫驅動程序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; }功能的實現(xiàn)系統(tǒng)流程圖:否是返回管理員登陸刪除投票項確認頁面投票頁面系統(tǒng)首頁歡迎否是返回管理員登陸刪除投票項確認頁面投票頁面系統(tǒng)首頁歡迎圖5-1系統(tǒng)流程圖圖5-1系統(tǒng)流程圖歡迎頁面:TITLE元素僅可在HEAD元素內(nèi)使用。位于TITLE開閉標簽之內(nèi)的文本都會在瀏覽器的標題欄上顯示。對于Web頁,“InternetExplorer”會被自動追加到標題后。聲明標題為“歡迎光臨”<title>歡迎光臨</title>引用目錄是css/style.css的css樣式文件: <linkrel="stylesheet"type="text/css"href="styles.css"> 引用超文本鏈接“點擊進入問卷調查”和“管理員登陸”:<ahref="newvote.jsp">點此進入問卷調查</a><ahref="login.jsp">管理員登陸</a>發(fā)布以后的頁面如圖5-2:圖5-2歡迎界面圖5-2歡迎界面問卷調查頁面當提交表單時,向test.ok發(fā)送表單數(shù)據(jù)。<formaction="testok.jsp"method="post"name="formName">個人基本信息部分病人在jsp頁面輸入姓名,年齡,住院號,聯(lián)系,家庭住址,入院日期,出院日期,住院日,費用總計。姓    名<inputtype="text"name="name"/><br>年    齡<inputtype="text"name="age"/><br>住 院 號<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>費用總計<inputtype="text"name="fy">元<br>病人基本信息填寫部分如圖5-3:圖5-3病人信息填寫表格圖5-3病人信息填寫表格投票必須單選的部分包括性別,婚姻狀況,文化程度等等。以下以性別和婚姻狀況的選項為例:<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>投票選項單選部分如圖5-4:圖5-4投票選項圖5-4投票選項投票可多選的部分,以下以??茩z查部分為例:<li>專科查體(可多選)</li><ul><li><inputtype="checkbox"name="zkct"value="曲頸試驗">曲頸試驗</li><li><inputtype="checkbox"name="zkct"value="仰臥挺腹試驗">仰臥挺腹試驗</li><li><inputtype="checkbox"name="zkct"value="直腿抬高試驗">直腿抬高試驗</li><li><inputtype="checkbox"name="zkct"value="4字試驗">4字試驗</li><li><inputtype="checkbox"name="zkct"value="壓頂試驗">壓頂試驗</li><li><inputtype="checkbox"name="zkct"value="引頸試驗">引頸試驗</li><li><inputtype="checkbox"name="zkct"value="椎間孔擠壓試驗">椎間孔擠壓試驗</li><li><inputtype="checkbox"name="zkct"value="臂叢牽拉試驗">臂叢牽拉試驗</li><li><inputtype="checkbox"name="zkct"value="觸誘發(fā)痛試驗">觸誘發(fā)痛試驗</li><li><inputtype="checkbox"name="zkct"value="痛覺過敏">痛覺過敏</li><li><inputtype="checkbox"name="zkct"value="感覺減退">感覺減退</li><li><inputtype="checkbox"name="zkct"value="肌力減退">肌力減退</li><li><inputtype="checkbox"name="zkct"value="反射減弱或消失">反射減弱或消失</li><li><inputtype="checkbox"name="zkct"val
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海口2025年海南??谑新糜魏臀幕瘡V電體育局招聘5人筆試歷年參考題庫附帶答案詳解
- 河南2025年河南女子職業(yè)學院招聘人事代理人員筆試歷年參考題庫附帶答案詳解
- 杭州浙江杭州市西湖區(qū)傳媒中心招聘專業(yè)技術人員(編外)筆試歷年參考題庫附帶答案詳解
- 廣西2025年廣西人民醫(yī)院招聘筆試歷年參考題庫附帶答案詳解
- 宿遷2025年江蘇宿遷市洋河新區(qū)教育系統(tǒng)招聘教師7人筆試歷年參考題庫附帶答案詳解
- 威海2025年北京交通大學(威海)教輔管理人員招聘6人筆試歷年參考題庫附帶答案詳解
- 職業(yè)人群慢性病自我管理技能培訓
- 北京2025年北京石油化工學院教師崗位招聘筆試歷年參考題庫附帶答案詳解
- 職業(yè)人群工作壓力精準干預策略
- 2026-2032年中國加那利草子行業(yè)進出口態(tài)勢分析及對外貿(mào)易前景展望報告
- 活物賣買合同協(xié)議書模板
- 清潔驗證完整版本
- 2023年山東省中考英語二輪復習專題++時態(tài)+語態(tài)
- 現(xiàn)場移交接收方案
- 基于大數(shù)據(jù)的金融風險管理模型構建與應用研究
- 腹痛的診斷與治療
- 中國郵票JT目錄
- D700-(Sc)13-尼康相機說明書
- T-CHAS 20-3-7-1-2023 醫(yī)療機構藥事管理與藥學服務 第3-7-1 部分:藥學保障服務 重點藥品管理 高警示藥品
- 水利水電工程建設用地設計標準(征求意見稿)
- 建設工程施工專業(yè)分包合同(GF-2003-0213)
評論
0/150
提交評論