版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 摘 要2</b></p><p> 第一章 緒 論3</p><p> 1.1 數(shù)據(jù)庫技術(shù)3</p><p> 1.1.1 數(shù)據(jù)庫體系結(jié)構(gòu)3<
2、/p><p> 1.1.2 數(shù)據(jù)庫管理信息系統(tǒng)(DBMS)3</p><p> 1.2 公交查詢系統(tǒng)4</p><p> 1.2.1 計算機(jī)網(wǎng)絡(luò)4</p><p> 1.2.2 系統(tǒng)功能4</p><p> 1.2.3 系統(tǒng)運(yùn)行環(huán)境4</p><p>
3、; 1.2.4 系統(tǒng)開發(fā)工具5</p><p> 1.2.5 現(xiàn)狀與前景5</p><p> 1.3 本文所作的工作5</p><p> 第二章 基于Eclispe平臺下的開發(fā)技術(shù)6</p><p> 2.1 B/S結(jié)構(gòu)介紹6</p><p> 2.2 Java程序框架7&l
4、t;/p><p> 2.3 B/S架構(gòu)具備極大的優(yōu)越性7</p><p> 第三章 公交查詢系統(tǒng)設(shè)計分析8</p><p> 3.1應(yīng)用需求分析8</p><p> 3.2 系統(tǒng)功能模塊劃分8</p><p> 3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計11</p><p>
5、 3.3.1概念設(shè)計11</p><p> 3.3.2 邏輯設(shè)計13</p><p> 第四章 公交查詢系統(tǒng)設(shè)計分析15</p><p> 4.1 查詢模塊的功能實(shí)現(xiàn)16</p><p> 4.2 管理更新的功能實(shí)現(xiàn)18</p><p> 4.3 公交線路管
6、理19</p><p><b> 結(jié)束語22</b></p><p><b> 致 謝23</b></p><p><b> 摘 要</b></p><p> 如今計算機(jī)網(wǎng)絡(luò)發(fā)展非常迅速,時間的重要性對于人們來說不言而喻,人們出行越來越注重
7、時間的節(jié)約,城市公交已經(jīng)成為出行的一種主要的方式,本文結(jié)合公交運(yùn)行的實(shí)際來對公交查詢信息系統(tǒng)進(jìn)行可行性研究,通過詳實(shí)的問題定義與需求分析并且進(jìn)行了合理的設(shè)計,提出了在B/S模式下的三層體系結(jié)構(gòu),應(yīng)用了當(dāng)前最流行的Eclispe開發(fā)環(huán)境,后臺采用了以目前最穩(wěn)定的SQL Server2005數(shù)據(jù)庫為開發(fā)平臺。目前,該信息系統(tǒng)已經(jīng)完成了模塊的需求分析、數(shù)據(jù)庫設(shè)計以及應(yīng)用程序設(shè)計的工作,并且主要模塊運(yùn)行有效、穩(wěn)定。該系統(tǒng)可以幫助查詢?nèi)藛T找到能最
8、快到達(dá)目的地,并且節(jié)約費(fèi)用。通過瀏覽器查詢,通過計算機(jī)網(wǎng)絡(luò)全面聯(lián)網(wǎng),實(shí)現(xiàn)中心控制、自動更新、更多的查詢方式、和GIS系統(tǒng)的互聯(lián)互通等等更多更強(qiáng)大的功能。從這方面來說,此系統(tǒng)具有美好的應(yīng)用前景。</p><p> 關(guān)鍵詞:管理信息系統(tǒng),B/S結(jié)構(gòu),數(shù)據(jù)庫,WEB服務(wù)器,JSP</p><p><b> 第一章 緒 論</b></p>
9、;<p> 數(shù)據(jù)庫技術(shù)作為數(shù)據(jù)管理技術(shù),是計算機(jī)軟件領(lǐng)域的一個重要分支,產(chǎn)生于60年代末?,F(xiàn)已形成相當(dāng)規(guī)模的理論體系和實(shí)用技術(shù)。優(yōu)秀的數(shù)據(jù)庫設(shè)計是應(yīng)用成功的基石。萬萬丈高樓平地起,數(shù)據(jù)庫設(shè)計如同高樓的基石,是開發(fā)高品質(zhì)應(yīng)用的前提。</p><p><b> 1.1 數(shù)據(jù)庫技術(shù)</b></p><p> 1.1.1 數(shù)據(jù)庫體系結(jié)構(gòu)</
10、p><p> 數(shù)據(jù)的體系結(jié)構(gòu)分成三級:內(nèi)部級(Internal),概念級(Conceptual)和外部級(External)。這個三級結(jié)構(gòu)有時也稱為“三級模式結(jié)構(gòu)”。1)外部級:最接近用戶,是單個用戶所能看到的數(shù)據(jù)特性。單個用戶使用的數(shù)據(jù)視圖的描述稱為“外模式”。2)概念級:涉及到所有用戶的數(shù)據(jù)定義、是全局的數(shù)據(jù)視圖。全局視圖的描述稱為“概念模式”。3)內(nèi)部
11、級:最接近于物理存儲設(shè)備,涉及到實(shí)際數(shù)據(jù)存儲的結(jié)構(gòu)物理存儲數(shù)據(jù)視圖的描述稱為“內(nèi)模式”。數(shù)據(jù)庫的三級模式結(jié)構(gòu)是數(shù)據(jù)的三個抽象級別。它把數(shù)據(jù)的具體組織留給DBMS去做,用戶只要抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機(jī)中的表示和存儲,這樣就減輕了用戶使用系統(tǒng)的負(fù)擔(dān)。</p><p> 1.1.2 數(shù)據(jù)庫管理信息系統(tǒng)(DBMS)</p><p> 數(shù)據(jù)庫管理系
12、統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義、查詢、更新及各種控制,都是通過DBMS進(jìn)行的。在不同的計算機(jī)系統(tǒng)中,由于缺乏統(tǒng)一的標(biāo)準(zhǔn),即使同種數(shù)據(jù)模型的DBMS,它們在用戶接口、系統(tǒng)功能方面也常常是不相同的。用戶對數(shù)據(jù)庫進(jìn)行操作,是由DBMS把操作從應(yīng)用程序帶到外部級、概念級、再導(dǎo)向內(nèi)部級,進(jìn)而操作存儲器中的數(shù)據(jù)。DBMS的主要目標(biāo)
13、,是使數(shù)據(jù)作為一種可管理的資源處理。DBMS的主要功能為:1) 數(shù)據(jù)庫定義功能:DBMS提供數(shù)據(jù)定義語言(DDL)定義數(shù)據(jù)庫的三級結(jié)構(gòu),包括外模式、概念模式、內(nèi)模式及基相互之間的映象,定義數(shù)據(jù)的完整性、安全控制等約束。因此,在DBMS中應(yīng)包括DDL的編譯程序。2)數(shù)據(jù)庫的操縱功能:DBMS提供數(shù)據(jù)操縱語言(DML)實(shí)現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的操作?;镜臄?shù)據(jù)操作分成兩
14、類四種:檢索(查詢)、更新(插入、刪除、修改)3)數(shù)據(jù)庫的保護(hù)功能:數(shù)據(jù)庫中的數(shù)</p><p> 4)數(shù)據(jù)庫的恢復(fù):在數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時,系統(tǒng)有能力把數(shù)據(jù)庫恢復(fù)到正確的狀態(tài)。5)數(shù)據(jù)庫的并發(fā)控制:DBMS的并發(fā)控制子系統(tǒng)能防止錯誤發(fā)生,正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作。6)數(shù)據(jù)庫的完整性控制:保證數(shù)據(jù)庫
15、中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯誤的操作。7)數(shù)據(jù)庫的安全性控制:防止未經(jīng)授權(quán)的用戶蓄謀或無意地存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)的泄露、更改或破壞。8)數(shù)據(jù)庫的存儲管理:把各種DML語句轉(zhuǎn)換成低層的文件系統(tǒng)命令,起到數(shù)據(jù)的存儲、檢索和更新的作用。9)數(shù)據(jù)庫的維護(hù)功能:它有許多實(shí)用程序提供給數(shù)據(jù)庫管理員:數(shù)據(jù)裝載程序
16、備份程序文件重組織程序性能監(jiān)控程序10)數(shù)據(jù)字典:數(shù)據(jù)庫系統(tǒng)中存放三級結(jié)構(gòu)定義的數(shù)據(jù)庫稱為數(shù)據(jù)字典(DD)。對數(shù)據(jù)庫的操作都要通過訪問DD才能實(shí)現(xiàn),通常DD中還存放數(shù)據(jù)庫運(yùn)行時的統(tǒng)計信息。</p><p> 1.2 公交查詢系統(tǒng) </p><p> 1.2.
17、1 計算機(jī)網(wǎng)絡(luò) </p><p> 計算機(jī)網(wǎng)絡(luò)是指將多臺具有獨(dú)立功能的計算機(jī),通過通信線路和通信設(shè)備連接起來,在網(wǎng)絡(luò)軟件的支持下實(shí)現(xiàn)數(shù)據(jù)通信和資源共享的計算機(jī)系統(tǒng)。計算機(jī)網(wǎng)絡(luò)的規(guī)模有大有小,大的可以覆蓋全球,小的僅局限于一個辦公室。現(xiàn)在一般按照網(wǎng)絡(luò)覆蓋的地理范圍將計算機(jī)網(wǎng)絡(luò)分為三類:局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)。</p><p> 1.2.2 系統(tǒng)
18、功能</p><p> 1)基于瀏覽器(B/S模式)的公交線路分類查詢;</p><p> 2)數(shù)據(jù)的錄入、修改、添加、刪除。</p><p> 1.2.3 系統(tǒng)運(yùn)行環(huán)境該系統(tǒng)采用Browser/Server模式進(jìn)行設(shè)計: 在服務(wù)器上運(yùn)行Web發(fā)布服務(wù)器、數(shù)據(jù)庫程序,服務(wù)器操作系統(tǒng)為Win
19、dowsNT/2000/XP/2003 server,客戶機(jī)操作為Windows9×/ NT/2000/XP/2003,其上運(yùn)行瀏覽器程序,服務(wù)器和客戶機(jī)可為同一設(shè)備。</p><p> 1.2.4 系統(tǒng)開發(fā)工具該系統(tǒng)采用JDK Java環(huán)境進(jìn)行開發(fā),數(shù)據(jù)庫服務(wù)器為SQLServer2000,WEB發(fā)布服務(wù)器為Tomcat Server;客戶端
20、使用瀏覽器運(yùn)行程序,整個系統(tǒng)調(diào)試成功。</p><p> 1.2.5 現(xiàn)狀與前景 </p><p> 公交查詢系統(tǒng)現(xiàn)狀分析:鑒于中國目前的經(jīng)濟(jì)發(fā)展?fàn)顩r,中國人出行還是以公交車為主,所以每個城市的公交系統(tǒng)都比較龐大發(fā)達(dá)。公交查詢系統(tǒng)是近兩年出現(xiàn)的新生事物,每個城市的發(fā)展?fàn)顩r也是良莠不齊。目前的公交查詢系統(tǒng),基本上具備一下功能:采用車站站點(diǎn)查詢、車次查詢、路線分析查詢?nèi)N查詢形式,不僅能夠
21、查詢到各條線路的起停站點(diǎn),同時還能夠分析出換乘車輛情況。 </p><p> 公交查詢系統(tǒng)的發(fā)展前景:未來的公交查詢系統(tǒng),將是基于B/S架構(gòu),通過瀏覽器查詢,通過計算機(jī)網(wǎng)絡(luò)全面聯(lián)網(wǎng),實(shí)現(xiàn)中心控制、自動更新、更多的查詢方式、和GIS系統(tǒng)的互聯(lián)互通等等更多更強(qiáng)大的功能。</p><p> 1.3 本文所作的工作</p><p> 數(shù)據(jù)的三級模式
22、結(jié)構(gòu):內(nèi)部級,外部級和概念級。數(shù)據(jù)庫系統(tǒng)的系統(tǒng)結(jié)構(gòu)保證了數(shù)據(jù)庫系統(tǒng)中能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義、操縱、保護(hù)恢復(fù)及并發(fā)性,安全性和完整性等各種控制以及存儲和維護(hù)等功能,是通過DBMS進(jìn)行的。 本文首先介紹了城市公交查詢系統(tǒng)的應(yīng)用背景、開發(fā)環(huán)境以及選用的開發(fā)工具與數(shù)據(jù)庫的關(guān)系,闡明了計算機(jī)互聯(lián)網(wǎng)絡(luò)的概念
23、。并對數(shù)據(jù)庫的體系結(jié)構(gòu)、DBMS進(jìn)行了介紹;介紹關(guān)系型數(shù)據(jù)庫的基本概念,著重說明了幾個關(guān)鍵概念的定義;然后對SQL語言作了一個介紹說明;從特點(diǎn)和功能入手,介紹Java、JSP;并且介紹了B/S模式的概念、特點(diǎn);用軟件工程的方法分析城市公交查詢系統(tǒng),對整個系統(tǒng)進(jìn)行了需求分析、功能模塊劃分,并通過ER圖對數(shù)據(jù)庫進(jìn)行概念設(shè)計;對城市公交查詢系統(tǒng)的具體設(shè)計,描述了查詢、錄入模塊的實(shí)現(xiàn)過程。 最后,在結(jié)束語的總結(jié)部分指出了系統(tǒng)的亮點(diǎn)以及不足之處,
24、簡單介紹了自己開發(fā)過程中的體會與心得:在摸索中實(shí)踐,在實(shí)踐中摸索。</p><p> 第二章 基于Eclispe平臺下的開發(fā)技術(shù)</p><p> Java是Sun Microsystems于1995年推出的高級編程語言,Java 領(lǐng)域的JavaSE、JavaEE技術(shù)已發(fā)展成為同C#和.NET平分天下的應(yīng)用軟件開發(fā)平臺和技術(shù)。</p><p> 在
25、Sun 正式發(fā)布 JSP(JavaServer Pages) 之后,這種新的 Web 應(yīng)用開發(fā)技術(shù)很快引起了人們的關(guān)注。 JSP 為創(chuàng)建高度動態(tài)的 Web 應(yīng)用提供了一個獨(dú)特的開發(fā)環(huán)境。按照 Sun 的說法, JSP 能夠適應(yīng)市場上包括 Apache WebServer,IIS4.0 在內(nèi)的 85% 的服務(wù)器產(chǎn)品。</p><p> 當(dāng)今比較流行的軟件技術(shù)研發(fā)模式是C/S和B/S的體系結(jié)構(gòu)。C/S(Client
26、/Server)結(jié)構(gòu),即客戶機(jī)和服務(wù)器結(jié)構(gòu)。通過C/S可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。</p><p> Eclipse 這樣功能完整且成熟的開發(fā)環(huán)境,是由藍(lán)色巨人IBM 所釋出。IBM 花了4 千萬美金來開發(fā)這個IDE(Integrated Development Environment)。第一版1.0 在2001 年11 月釋出,隨
27、后逐漸受到歡迎。Eclipse已經(jīng)成為開放原始碼計劃(Open Source Project),大部分的開發(fā)扔然掌握在IBM手中,但是有一部份由eclipse.org的軟件聯(lián)盟主導(dǎo)。</p><p> 2.1 B/S結(jié)構(gòu)介紹</p><p> B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起而對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種
28、結(jié)構(gòu)下,用戶工作界面通過WWW瀏覽器來實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn)。大大簡化了客戶端電腦載荷,減少了系統(tǒng)維護(hù)與升級的成本和工作量,降低了用戶的總體成本。B/S方式可以形成所謂三層以上的結(jié)構(gòu)。B/S結(jié)構(gòu)是一次到位開發(fā),能實(shí)現(xiàn)不同人員,從不同地點(diǎn),以不同的接入方式訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語
29、言出現(xiàn)之后,B/S架構(gòu)管理軟件更為方便、快捷、高效。B/S工作機(jī)制如圖3-1所示:</p><p> 傳統(tǒng)的C/S架構(gòu)(客戶機(jī)/服務(wù)器,Client/Server)方式中,業(yè)務(wù)邏輯位于客戶端,每完成一項(xiàng)事務(wù),都要頻繁地訪問數(shù)據(jù)庫,使得網(wǎng)絡(luò)上數(shù)據(jù)流量非常大,對于慢速連接的用戶,甚至無法使用。</p><p> 圖 2.1 B/S工作機(jī)制</p><p> 2.
30、2 Java程序框架</p><p> 為彌補(bǔ)上述C/S架構(gòu)的缺陷,人們發(fā)展出了三層或多層架構(gòu):客戶機(jī)—中間件(應(yīng)用服務(wù)器)—數(shù)據(jù)庫服務(wù)器(Client—Middle ware—Database Server)。在這種架構(gòu)中,業(yè)務(wù)邏輯放置于中間件服務(wù)器上,大量的數(shù)據(jù)流也位于中間件和數(shù)據(jù)庫之間,而客戶機(jī)只是簡單地發(fā)出請求,中間件接受請求后進(jìn)行事務(wù)處理并將處理的結(jié)果返回給客戶機(jī),這一類型的客戶機(jī)也稱之為“廋客戶”。
31、B/S架構(gòu)實(shí)際上是三層架構(gòu)的一種,所不同的是客戶端就是目前幾乎每臺電腦中都有的網(wǎng)絡(luò)瀏覽器,而中間件則是Web應(yīng)用服務(wù)器。注意到主要的業(yè)務(wù)邏輯均由位于Web應(yīng)用服務(wù)器上的Servlet和JSP程序或EJB來處理。</p><p> 2.3 B/S架構(gòu)具備極大的優(yōu)越性</p><p> 1)面向電子商務(wù)時代的技術(shù)</p><p> 將來所有的應(yīng)用系統(tǒng)幾乎都在互聯(lián)網(wǎng)
32、或企業(yè)內(nèi)部廣域網(wǎng)上運(yùn)行,發(fā)展電子商務(wù)成為企業(yè)不可避免的信息化道路。B/S架構(gòu)的軟件正是電子商務(wù)的基石,正是這類軟件使得移動辦公和分布式協(xié)同工作真正成為現(xiàn)實(shí)。無論在世界的那個角落,只需要一臺可以聯(lián)網(wǎng)的設(shè)備(計算機(jī)、PDA甚至手機(jī))都可以方便地與客戶聯(lián)系和與他人協(xié)同工作。</p><p> 2)軟件操作、維護(hù)和升級方式的革命</p><p> 軟件系統(tǒng)的改進(jìn)和升級越來越頻繁,B/S架構(gòu)的產(chǎn)
33、品在維護(hù)和升級方面具備顯著的優(yōu)勢。無論用戶的規(guī)模有多大,有多少分支機(jī)構(gòu)都不會增加任何維護(hù)升級的工作量,所有的操作只對服務(wù)器進(jìn)行,通過遠(yuǎn)程連接服務(wù)器,異地的運(yùn)維人員甚至于可以做到遠(yuǎn)程維護(hù)和升級,這對人力、時間、費(fèi)用的節(jié)省是相當(dāng)驚人的。所有的客戶端只是瀏覽器,所有的操作都和上網(wǎng)瀏覽網(wǎng)頁類似,使用者接受的培訓(xùn)也僅限于業(yè)務(wù)邏輯而無需將大量精力浪費(fèi)學(xué)習(xí)軟件操作上。</p><p> 第三章 公交查詢系統(tǒng)設(shè)計分
34、析</p><p> 根據(jù)數(shù)據(jù)庫系統(tǒng)生存期的設(shè)計方法,從數(shù)據(jù)庫應(yīng)用系統(tǒng)和開發(fā)的全過程來考慮將數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計分為以下幾個階段: </p><p> 1)規(guī)劃; </p><p> 2)需求分析; </p><p> 3)概念設(shè)計; </p><p> 4)邏輯設(shè)計; &l
35、t;/p><p><b> 5)物理設(shè)計</b></p><p> 3.1應(yīng)用需求分析 要設(shè)計一個良好的公交查詢系統(tǒng),就必須首先明確該應(yīng)用環(huán)境對系統(tǒng)的要求。公交查詢系統(tǒng)的應(yīng)用背景為:方便市民搭乘公交車出行;手動(目前)、自動(將來)、及時更新查詢數(shù)據(jù)。因此,該系統(tǒng)需滿足以下幾方面需求:1)問題分析</p><p> (1)功能需
36、求:該模塊實(shí)現(xiàn)公交查詢功能。該模塊實(shí)現(xiàn)數(shù)據(jù)的錄入、修改、刪除功能。</p><p> ?。?)性能需求:系統(tǒng)的相應(yīng)時間不能超過10ms</p><p> ?。?)出錯處理需求:當(dāng)輸入的信息不全,或格式不正確時,提示出錯信息。</p><p><b> 2)問題描述</b></p><p> (1)信息要求:可實(shí)現(xiàn)按起
37、點(diǎn)-中轉(zhuǎn)站-終點(diǎn)查詢查詢和按線路查詢兩種查詢方式。</p><p> ?。?)處理要求:該模塊實(shí)現(xiàn)數(shù)據(jù)的錄入、修改、刪除功能。該模塊由公交站點(diǎn)管理與公交線路管理兩部分組成.</p><p> ?。?)安全性與完整性要求。用戶進(jìn)入系統(tǒng)前必須登陸,輸入密碼,經(jīng)服務(wù)器確認(rèn)后放開進(jìn)入系統(tǒng)。(暫未實(shí)現(xiàn))</p><p> 3)數(shù)據(jù)的更新修改:</p
38、><p> 更新:系統(tǒng)允許管理員級別的用戶對數(shù)據(jù)進(jìn)行更新、修改并且存盤操作;編輯:系統(tǒng)允許管理員級別的用戶對數(shù)據(jù)進(jìn)行編輯、刪除的操作,保證現(xiàn)庫的真實(shí)性與實(shí)時性。4)打印輸出(暫未實(shí)現(xiàn)):系統(tǒng)可以將用戶查詢到的內(nèi)容動態(tài)地生成報表,并打印輸出。</p><p> 3.2 系統(tǒng)功能模塊劃分</p><p> 公交查詢系統(tǒng)功能劃分模塊如下
39、:</p><p> 1)查詢系統(tǒng)模塊 該模塊實(shí)現(xiàn)公交查詢功能??蓪?shí)現(xiàn)按起點(diǎn)-中轉(zhuǎn)站-終點(diǎn)查詢查詢和按線路查詢兩種查詢方式。</p><p> 詳細(xì)設(shè)計視圖如圖3-1</p><p> 圖3-1查詢系統(tǒng)模塊</p><p> 2)錄入系統(tǒng)模塊 該模塊實(shí)現(xiàn)數(shù)據(jù)的錄入、修改、刪除功能。該模塊由公交站點(diǎn)管理與公交線路管理兩部分組成.詳細(xì)
40、設(shè)計視圖如圖3-2錄入系統(tǒng)模塊所示:</p><p> 圖3-2 錄入系統(tǒng)模塊</p><p> 2)信息輸入輸出模塊如圖3-3所示:</p><p> 圖3-3 信息輸入輸出模塊</p><p> 3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p> 3.3.1概念設(shè)計
41、概念設(shè)計的目標(biāo)是產(chǎn)生反映城市公交查詢系統(tǒng)需求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式。概念模式是獨(dú)立于數(shù)據(jù)庫邏輯結(jié)構(gòu),獨(dú)立于支持?jǐn)?shù)據(jù)庫的DBMS,不依賴于計算機(jī)系統(tǒng)的。1)ER模型ER模型是對現(xiàn)實(shí)世界的一種抽象。它的主要成分是實(shí)體、聯(lián)系和屬性。使用這三種成分,我們可以建立許多應(yīng)用環(huán)境的ER模型。2) ER模型的操作在利用ER模型進(jìn)行數(shù)
42、據(jù)庫概念設(shè)計的過程中,常常需要對ER圖進(jìn)行種種變換。這些變換又稱為ER模型的操作,包括實(shí)體類型、聯(lián)系類型和屬性的分裂、合并和增刪等等。3)利用ER方法的數(shù)據(jù)庫概念設(shè)計利用ER方法進(jìn)行數(shù)據(jù)庫的概念設(shè)計,可以分成三步進(jìn)行:首先設(shè)計局部ER模式,然后把各局部ER模式綜合成一個全局ER模式,最后對全局ER模式進(jìn)行優(yōu)化,得到最終的ER模式,即概念模式。</p><
43、;p> 設(shè)計局部的ER模式通常,一個數(shù)據(jù)庫系統(tǒng)都是為多個不同用戶服務(wù)的。各個用戶對數(shù)據(jù)的觀點(diǎn)可能不一樣,信息處理需求也可能不同。在設(shè)計數(shù)據(jù)庫概念結(jié)構(gòu)時,為了更好地模擬現(xiàn)實(shí)世界,一個有效的策略是“分而治之”,即先分別考慮各個用戶的信息需求,形成局部概念結(jié)構(gòu),然后再綜合成全局結(jié)構(gòu)。在ER方法中,局部概念結(jié)構(gòu)又稱為局部ER模式,其圖形表示稱為ER圖(如圖4-5)。實(shí)體和屬性的定義如下:
44、站點(diǎn)(站點(diǎn)編號,站點(diǎn)名稱,站點(diǎn)類別)線路(線路編號,始發(fā)時間,終發(fā)時間,備注)線路站點(diǎn)對應(yīng)(線路編號,站點(diǎn)名稱)</p><p> 圖3-4實(shí)體和屬性用例</p><p><b> 4)聯(lián)系定義</b></p><p> ER模型的“聯(lián)系”用于刻畫實(shí)體之間的關(guān)聯(lián)。一種完整的方式是對局部結(jié)構(gòu)
45、中任意兩個實(shí)體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個實(shí)體類型之間是否存在聯(lián)系。若有聯(lián)系,進(jìn)一步確定是1:N,M:N,還是1:1等。還要考察一個實(shí)體類型內(nèi)部是否存在聯(lián)系,兩個實(shí)體類型之間是否存在聯(lián)系,多個實(shí)體類型之間是否存在聯(lián)系,等等。</p><p> 圖3-5 E/R圖的表示</p><p> 5)設(shè)計全局ER模式</p><p> 所有局部E
46、R模式都設(shè)計好了后,接下來就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要支持所有局部ER模式,而且必須合理地表示一個完整、一致的數(shù)據(jù)庫概念結(jié)構(gòu)。(1)確定公共實(shí)體類型 為了給多個局部ER模式的合并提供開始合并的基礎(chǔ),首先要確定各局部結(jié)構(gòu)中的公共實(shí)體類型。在這一步中我們僅根據(jù)實(shí)體類型名和鍵枕認(rèn)定公共實(shí)體類型。一般把同名實(shí)體類型作為公共實(shí)體類型的一類候選,把具有相同鍵的實(shí)體類型作為公
47、共實(shí)體類型的另一類候選。(2)局部ER模式的合并合并的原則是:首先進(jìn)行兩兩合并;先和合并那些現(xiàn)實(shí)世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實(shí)體類型開始,最后再加入獨(dú)立的局部結(jié)構(gòu)。 (3)消除沖突 沖突分為三類:屬性沖突、結(jié)構(gòu)沖突、命名沖突。 設(shè)計全局ER模式的目的不在于把若干局部ER模式形式上合并為一個ER模式,而在于消除沖突,使之成為能夠被所有用
48、戶共同理解和接受的同一的概念模型。 (4)全局ER模式的優(yōu)化</p><p> 3.3.2 邏輯設(shè)計 </p><p> 本系統(tǒng)初步定義了4個視圖,具體視圖設(shè)計及實(shí)例如下:</p><p> 1)公交車信息的視圖設(shè)計(如圖4-6):</p><p><b> 用途:輸入公
49、交車號</b></p><p> 輸出對應(yīng)公交車所有信息</p><p> 圖3-6 公交車信息的視圖設(shè)計</p><p> 2)公交車信息實(shí)例(如圖4-7):</p><p> 圖3-7 公交車信息實(shí)例</p><p> 車站信息視圖設(shè)計(如圖4-8):</p><p>
50、;<b> 輸入: 車站號</b></p><p> 輸出: 對應(yīng)車站所有信息</p><p> 圖3-8車站信息視圖設(shè)計</p><p> 車站信息實(shí)例(如圖3-9)</p><p> 圖3-9 車站信息實(shí)例</p><p> 3)公交車――站點(diǎn)查詢視圖(如圖3-10):</
51、p><p><b> 輸入:公交車號</b></p><p> 輸出:公交車經(jīng)過的所有站點(diǎn)</p><p> 圖3-10 公交車――站點(diǎn)查詢視圖</p><p> 4)站點(diǎn)――公交車查詢視圖(如圖4-11):</p><p><b> 輸入: 經(jīng)過站點(diǎn)</b><
52、/p><p> 輸出: 對應(yīng)公交車號</p><p> 圖3-11 站點(diǎn)――公交車查詢視圖</p><p> 第四章 公交查詢系統(tǒng)設(shè)計分析</p><p> 4.1 查詢模塊的功能實(shí)現(xiàn)</p><p> 公交查詢模塊是用戶與系統(tǒng)進(jìn)行交互的直接媒介。除了要完成用戶的請求外,更需要從用戶的
53、角度出發(fā),以人為本。設(shè)計出人性化的交互頁面。</p><p> 查詢模塊主要有文本框和提交按鈕組合而成。從實(shí)際出發(fā)對于公交查詢系統(tǒng)而言,用戶輸入始發(fā)站,終點(diǎn)站后提交請求,后臺數(shù)據(jù)庫查詢系統(tǒng)為系統(tǒng)列出符合條件的公交班次。當(dāng)用戶發(fā)現(xiàn)填寫有誤時,點(diǎn)擊重填按鈕,文本框自動清空。當(dāng)然,用戶還可以選擇第二種查詢方式:選擇要查詢的線路,提交后用戶自動列出該路公交車所路經(jīng)的站點(diǎn)。</p><p> 公
54、交查詢系統(tǒng)運(yùn)行界面如圖4-1所示:</p><p> 圖4-1 公交查詢系統(tǒng)運(yùn)行界面</p><p><b> 關(guān)鍵代碼如下:</b></p><p> connection = DataConnectionManager.getInstance().getConnection();</p><p><b&g
55、t; try {</b></p><p> routes = route_Manager.selectes(connection);</p><p> } catch (Exception e) {</p><p><b> throw e;</b></p><p> } finally { <
56、;/p><p> if (connection != null) {</p><p> connection.close();</p><p> connection = null;</p><p><b> }</b></p><p><b> }</b></p
57、><p> <SCRIPT language=JAVASCRIPT type=text/javascript></p><p><b> <!--</b></p><p> function loginSubmit(theObj)</p><p><b> {</b></
58、p><p> if (theObj.fromStep.value == "" && theObj.toStep.value != "")</p><p><b> {</b></p><p> alert("始發(fā)站不能為空");</p><p>
59、; theObj.fromStep.focus();</p><p> return false;</p><p><b> }</b></p><p> else if (theObj.fromStep.value != "" && theObj.toStep.value == "&quo
60、t;)</p><p><b> {</b></p><p> alert("終點(diǎn)站不能為空");</p><p> theObj.toStep.focus();</p><p> return false;</p><p><b> }</b>
61、</p><p> else if (theObj.fromStep.value == "" && theObj.toStep.value == "")</p><p><b> {</b></p><p> alert("始發(fā)站和終點(diǎn)站不能為空");</p
62、><p> theObj.fromStep.focus();</p><p> return false;</p><p><b> }</b></p><p> return true;</p><p><b> }</b></p><p>&
63、lt;b> // --></b></p><p><b> </SCRIPT></b></p><p> <link rel="STYLESHEET" type="text/css" href="../css/all.css"></p>&l
64、t;p> <style type="text/css"></p><p><b> <!--</b></p><p> body { font-size: 9pt}</p><p> table { font-size: 9pt}</p><p> a:activ
65、e { font-size: 9pt; color: #000000;}</p><p> A:hover { font-size: 9pt; COLOR: #000000; TEXT-DECORATION: none}</p><p> a:link { font-size: 9pt; color: #000000;}</p><p> a:visite
66、d { font-size: 9pt; color: #000000;}</p><p><b> --></b></p><p> 4.2 管理更新的功能實(shí)現(xiàn)</p><p> 管理更新功能是針對系統(tǒng)維護(hù)而設(shè)計的。隨著城市現(xiàn)代化的發(fā)展,公路部分線路也會有相應(yīng)的變化。為使本系統(tǒng)能跟上發(fā)展,與現(xiàn)實(shí)保持同步,管理更新功能也是
67、舉足輕重的。其中包括站點(diǎn)管理和線路管理。</p><p> 在數(shù)據(jù)庫中每條公交線路都有其相應(yīng)的站點(diǎn),沒路公交車都有其相應(yīng)的公交線路。當(dāng)現(xiàn)實(shí)中的某個因素改變時,數(shù)據(jù)庫中的記錄也要有相應(yīng)同步的變化。站點(diǎn)管理就是對路線上的站點(diǎn)進(jìn)行相應(yīng)的更新。輸入相應(yīng)的站點(diǎn)序號,站點(diǎn)名稱和類型后點(diǎn)擊保存系統(tǒng)將數(shù)據(jù)錄入數(shù)據(jù)庫當(dāng)中?,F(xiàn)實(shí)中的某些站點(diǎn)更改時在站點(diǎn)列表中點(diǎn)擊刪除即可。站點(diǎn)管理界面如圖5.2.1所示:</p>&l
68、t;p> 圖4-2公交站點(diǎn)管理截圖</p><p> 公交站點(diǎn)管理主要代碼如下:</p><p> <jsp:useBean class="com.lanyuer.util.JspParamReader" id="reader scope="request"" </p><p><b
69、> /></b></p><p><b> <%</b></p><p> reader.setRequest(request);</p><p> List stopsets = null;</p><p> Connection connection;</p>&
70、lt;p> com.lanyuer.route.stopset_Manager stopset_Manager = </p><p> com.lanyuer.route.stopset_Manager.getInstance();</p><p> com.lanyuer.route.stopset stopset1 = null;</p><p>
71、 connection = DataConnectionManager.getInstance().getConnection();</p><p><b> try {</b></p><p> if (reader.getString("delRoute_Pk","").length() > 0) </p&
72、gt;<p> stopset_Manager.deleteByPk(connection,com.lanyuer.route.stopset_Pk.valueOf</p><p> (reader.getString("delRoute_Pk","")));</p><p> stopsets = stopset_Manager
73、.selectes(connection);</p><p> if (reader.getString("stopset_Pk","").length() > 0) </p><p> stopset1 = stopset_Manager.selectByPk</p><p> (connection,com.l
74、anyuer.route.stopset_Pk.valueOf</p><p> (reader.getString("stopset_Pk","")));</p><p> } catch (Exception e) {</p><p><b> throw e;</b></p>&
75、lt;p> } finally { </p><p> if (connection != null) {</p><p> connection.close();</p><p> connection = null;</p><p><b> }</b></p><p><
76、;b> }</b></p><p><b> %></b></p><p><b> <%</b></p><p> Iterator iterator = stopsets.iterator();</p><p> while(iterator.hasNex
77、t()) {</p><p> com.lanyuer.route.stopset stopset = (com.lanyuer.route.stopset)iterator.next();</p><p><b> %> </b></p><p> 4.3 公交線路管理</p><p> 現(xiàn)
78、實(shí)中的公交線路在數(shù)據(jù)庫中都對應(yīng)了相應(yīng)的記錄。各路的公交車走各自的公交線路,隨著城市現(xiàn)代化的進(jìn)程,某些公交車的線路可能發(fā)生改變。這需要在系統(tǒng)中及時的做出更改。在公交線路管理界面中輸入線路的編號,起始時間,及其對應(yīng)的公交號碼提交系統(tǒng)后會作保存。某些線路更改了公交號碼就課點(diǎn)擊刪除按鈕將其刪除。這樣數(shù)據(jù)庫就獲取了更新數(shù)據(jù),查詢系統(tǒng)能夠準(zhǔn)確的提供有效信息。公交線路管理運(yùn)行界面如圖5-3所示:</p><p> 圖4-3公
79、交線路公里界面</p><p> 公交站點(diǎn)管理主要代碼如下:</p><p> <jsp:useBean class="com.lanyuer.util.JspParamReader" id="reader" scope="request" /></p><p><b> <
80、;%</b></p><p> reader.setRequest(request);</p><p> List routes = null;</p><p> Connection connection;</p><p> com.lanyuer.route.route_Manager route_Manager =
81、com.lanyuer.route.route_Manager.getInstance();</p><p> com.lanyuer.route.route route1 = null;</p><p> connection = DataConnectionManager.getInstance().getConnection();</p><p><
82、b> try {</b></p><p> if (reader.getString("delRoute_Pk","").length() > 0) </p><p> route_Manager.deleteByPk(connection,com.lanyuer.route.route_Pk.valueOf(reade
83、r.getString("delRoute_Pk","")));</p><p> routes = route_Manager.selectes(connection);</p><p> if (reader.getString("route_Pk","").length() > 0) </
84、p><p><b> route1 = </b></p><p> route_Manager.selectByPk(connection,com.lanyuer.route.route_Pk.valueOf(reader.getString("route_Pk","")));</p><p> } c
85、atch (Exception e) {</p><p><b> throw e;</b></p><p> } finally { </p><p> if (connection != null) {</p><p> connection.close();</p><p> co
86、nnection = null;</p><p><b> }</b></p><p><b> }</b></p><p><b> %></b></p><p><b> <%</b></p><p> I
87、terator iterator = routes.iterator();</p><p> while(iterator.hasNext()) {</p><p> com.lanyuer.route.route route = (com.lanyuer.route.route)iterator.next();</p><p><b> %>
88、 </b></p><p><b> <tr></b></p><p> <td align="center"><%=route.getiEndTime()%></td></p><p> <td align="center"&
89、gt;<%=route.getcNote()%></td></p><p> <td align="center"></p><p> <a href="?delRoute_Pk=<%=java.net.URLEncoder.encode(route.getPrimaryKey().toString())%&
90、gt;">刪除</a></td></p><p><b> </tr></b></p><p><b> <%</b></p><p><b> }</b></p><p><b> %><
91、/b></p><p><b> 結(jié)束語</b></p><p> 一個應(yīng)用程序設(shè)計開發(fā)的好壞,與設(shè)計人員對開發(fā)工具的掌握程度息息相關(guān)。根據(jù)個人情況,盡量選擇了自己較熟悉的開發(fā)環(huán)境及工具,以便能夠順利的實(shí)現(xiàn)系統(tǒng)避免延期。同時設(shè)計的思想,套路在開發(fā)前期需要認(rèn)真的物色,一個好的設(shè)計思路是開發(fā)出好的系統(tǒng)的基石;開發(fā)之前經(jīng)過思考研究以B/S的模式設(shè)計本系統(tǒng)。<
92、/p><p> 盡管如此在本系統(tǒng)的開發(fā)設(shè)計過程中,由于本人對開發(fā)工具的掌握尚有欠缺,可以說整個的開發(fā)過程是一邊摸索一邊實(shí)踐出來的。但令人高興的是,通過這樣一個邊學(xué)習(xí)邊應(yīng)用的過程與其他同學(xué)、老師的幫助,本人完成了公交查詢系統(tǒng)的開發(fā)工作,并實(shí)現(xiàn)了該應(yīng)用程序背景所要求的功能。在此過程中能力得到了相應(yīng)的提升,為日后設(shè)計開發(fā)和學(xué)習(xí)增強(qiáng)了信心。但總的來說,程序仍然存在許多不足之處,在整個開發(fā)過程中本人一直本著認(rèn)真、虛心、刻苦、
93、積極的態(tài)度,堅持自己獨(dú)立完成設(shè)計,并基本達(dá)到了應(yīng)用設(shè)計的功能要求。相信隨著對開發(fā)工具的逐漸熟悉和知識體系的逐漸完善,該系統(tǒng)在日后一定能夠得到不斷改進(jìn),發(fā)揮出它應(yīng)有的作用。</p><p><b> 致 謝</b></p><p> 在本系統(tǒng)的開發(fā)設(shè)計過程中,本人得到了父母、指導(dǎo)老師、朋友、以及同事們的大力支持與幫助。感謝伍德利老師在具體設(shè)計過程中給予的悉心指導(dǎo);感
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計--公交查詢系統(tǒng)
- 公交查詢系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---城市公交查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 畢業(yè)設(shè)計論文 公交查詢系統(tǒng)設(shè)計
- 畢業(yè)論文-城市公交查詢系統(tǒng)設(shè)計
- 城市公交查詢系統(tǒng).doc
- 城市公交查詢系統(tǒng).doc
- 城市公交查詢系統(tǒng).doc
- 畢業(yè)設(shè)計--公交查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- jsp城市公交查詢系統(tǒng)
- 公交查詢系統(tǒng)設(shè)計
- 公交查詢系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計----基于.net的城市公交查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 畢業(yè)論文---城市公交查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 城市公交查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)論文——城市公交查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 城市公交查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)畢業(yè)論文
- 城市公交查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- 基于java的城市公交查詢系統(tǒng)
- 公交查詢系統(tǒng)畢業(yè)論文
評論
0/150
提交評論