智能公交系統論文_第1頁
智能公交系統論文_第2頁
智能公交系統論文_第3頁
智能公交系統論文_第4頁
智能公交系統論文_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

來源:/share/detail/30622860論文摘要:本文結合公交查詢系統的實際需要,通過對B/S模式、JDK開發環境及工具、Web發布服務、數據庫以及SQL語言的深入學習及實踐,主要完成了公交查詢系統的需求分析、數據庫設計、應用程序設計的工作。第一章引言§1.1數據庫技術數據庫技術作為數據管理技術,是計算機軟件領域的一個重要分支,產生于60年代末。現已形成相當規模的理論體系和實用技術。優秀的數據庫設計是應用成功的基石。萬萬丈高樓平地起,數據庫設計如同高樓的基石,是開發高品質應用的前提。1.1.1數據庫管理系統(DBMS)數據庫管理系統(DBMS)是指數據庫系統中管理數據的軟件系統。DBMS是數據庫系統的核心組成部分。對數據庫的一切操作,包括定義、查詢、更新及各種控制,都是通過DBMS進行的。在不同的計算機系統中,由于缺乏統一的標準,即使同種數據模型的DBMS,它們在用戶接口、系統功能方面也常常是不相同的。用戶對數據庫進行操作,是由DBMS把操作從應用程序帶到外部級、概念級、再導向內部級,進而操作存儲器中的數據。DBMS的主要目標,是使數據作為一種可管理的資源處理?!?.2公交查詢系統1.2.1系統功能1、基于瀏覽器(B/S模式)的公交線路分類查詢;2、數據的錄入、修改、添加、刪除。1.2.2系統運行環境該系統采用Browser/Server模式進行設計:在服務器上運行Web發布服務器、數據庫程序,服務器操作系統為WindowsNT/2000/XP/2003server,客戶機操作為Windows9x/NT/2000/XP/2003,其上運行瀏覽器程序,服務器和客戶機可為同一設備。1.2.3系統開發工具該系統采用JDKJava環境進行開發,數據庫服務器為MySQL,WEB發布服務器為TomcatServer;客戶端使用瀏覽器運行程序,整個系統調試成功。§1.3本文所作工作首先介紹了城市公交查詢系統的應用背景、開發環境以及選用的開發工具與數據庫的關系,闡明了計算機互聯網絡的概念。并對數據庫的體系結構、DBMS進行了介紹;介紹關系型數據庫的基本概念,著重說明了幾個關鍵概念的定義;然后對SQL語言作了一個介紹說明;從特點和功能入手,介紹Java、JSP;并且介紹了B/S模式的概念、特點;用軟件工程的方法分析城市公交查詢系統,對整個系統進行了需求分析、功能模塊劃分,并通過ER圖對數據庫進行概念設計;對城市公交查詢系統的具體設計,描述了查詢、錄入模塊的實現過程。第二章數據庫理論基礎§2.1關系型數據庫2.1.1數據庫的設計理論關系數據庫的設計理論主要包括三個方面的內容:數據依賴、范式,模式設計方法。其中數據依賴起著核心的作用。函數依賴(Functionaldependency,FD)的定義設R(U)是一個關系模式,U是R的屬性集合,X和Y是U的子集。對于R(U)的任何一個可能的關系r,如果r中不存在兩個元組,它們在X上的屬性值相同,而在Y上的屬性值不同,則稱'Y函數依賴于X”,記作X—Y。如果X—Y,并且對于X的任一真子集X',都有Y不函數依賴于X',則稱“Y完全函數依賴于X”,記作XfY。若X—Y,但Y不完全函數依賴于X,則稱“Y部分函數依賴于X”,記作XPY。如果X—Y,Y—Z,且Y卡X,X不函數依賴于Y,則稱“Z傳遞函數依賴于X”。范式在對表的形式進行了規范化定義后,數據結構還有五種規范化定義,定名為規范化模式,稱為范式。在這五種范式中,一般只用前三種,對于常用系統就足夠了。而且這五種范式是“向上兼容”的,即滿足第五范式的數據結構自動滿足一、二、三、四范式,滿足第四范式的數據結構自動滿足第一、二、三范式,……,依此類推。為防止數據庫出現更新異常、插入異常、刪除異常、數據冗余太大等現象,關系型數據庫要盡量按關系規范化要求進行數據庫設計。模式設計方法一個好的模式設計方法應符合下列三條原則:表達性:涉及到兩個數據庫模式的等價性問題,即數據等價和依賴等價,分別用無損聯接和保持函數依賴來衡量。分離性:是指屬性間的“獨立關系”應該用不同的關系模式表達。獨立聯系是我們所考慮的“基本信息單位”。實際上分離就是清除存儲異常和數據冗余現象。如果能達到這個目的,就分離。分離的基準就是一系列范式,分離與依賴等價有時是不可兼容的。最小冗余性:要求在分解后的數據庫能表達原來數據庫的所有信息這個前提下實現。目的就是節省存儲空間,提高對關系的操作效率,清除不必要的冗余。但要注意,在實際使用中,并不一定要達到最小宙余。因為有時帶點冗余對于查詢處理是有好處的。關系模式的方法基本上可以分為分解與合成兩大類。分解型算法要求輸入一個初始模式集和依賴集,而結果滿足數據等價要求。對于合成型算法只要求輸入初始依賴集,結果滿足依賴等要求。但它們依據的基本思想是共同的,即獨立的聯系獨立表示。§2.2SQL語言介紹SQL(StructuredQueryLanguage)即“結構式查詢語言"。SQL雖然名為查詢語言,但實際上具有定義、查詢、更新和控制等多種功能。由于它使用方便、功能豐富、語言簡單易學,很快得到應用和推廣。SQL的組成SQL主要分成四個部分:1)數據定義:這一部分也稱為'SQLDDL”,用于定義SQL模式、基本表、視圖和索引。2)數據操縱:這一部分也稱為“SQLDML”。它分為數據查詢和數據更新兩類。其中數據更新又分成插入、刪除、和修改三種操作。3)數據控制:這一部分包括對基本表和視圖的授權,完整性規則的描述,事務控制等內容。4)嵌入式SQL的使用規定:這一部分內容涉及到SQL語句嵌入在宿主語言程序中使用的規則。SQL的數據查詢nSELECT語句的語法SELECT目標表的列名或列表達式序列FROM基本表和(或)視圖序列[WHERE行條件表達式][GROUPBY列名序列[HAVING組條件表達式]][ORDERBY列名[ASC|DESC]...]句法中□表示該成分可有,也可無。整個語句的執行過程如下:a)讀取FROM子句中基本表、視圖的數據,執行笛卡爾積操作。b)讀取滿足WHERE子句中給出的條件表達式的元組。c)按GROUP子句中指定列的值分組,同時提取滿足HAVING子句中組條件表達式的那些組。d)按SELECT子句中給出的列名或列表達式求值輸出。e)ORDER子句對輸出的目標表進行排序,按附加說明ASC升序排列,或按DESC降序排列。SELECT語句中,WHERE子句稱為“行條件子句”,GROUP子句稱為“分組子句”,HAVING子句稱為“組條件子句”,ORDER子句稱為“排序子句”。2.2.3SQL的數據更新SQL的數據更新包括數據插入、刪除和修改等三種操作1)數據插入a)元組值的插入INSERTINTO基本表名(列名表)VALUES(元組值)或者INSERTINTO基本表名(列名表)(TABLE(元組值),(元組值),……)前一種格式只能插入一個元組,后一種格式可以插入多個元組。2)數據刪除SQL的刪除操作是指從基本表刪除元組,其語法如下:DELETEFROM基本表名[WHERE條件表達式]其語義是從基本表中刪除滿足條件表達式的元組。3)數據修改當需要修改基本表中元組的某些列值時,可以用UPDATE語句實現,其句法如下:UPDATE基本表名SET列名=值表達式[,列名=值表達式…][WHERE條件表達式]其語義是:修改基本表中滿足條件表達式的那些元組中的列值,需修改的列值在SET子句中指出。第三章技術介紹§3.1JSP技術介紹在Sun正式發布JSP(JavaServerPages)之后,這種新的Web應用開發技術很快引起了人們的關注oJSP為創建高度動態的Web應用提供了一個獨特的開發環境。按照Sun的說法,JSP能夠適應市場上包括ApacheWebServer、IIS4.0在內的85%的服務器產品。3.1.1JSP運行環境Sun公司的JSP主頁上可以下載JSP規范,這些規范定義了供應商在創建JSP引擎時所必須遵從的一些規則。在運行JSP示例頁面之前,要注意安裝JSWDK的目錄,特別是Work”子目錄下的內容。執行示例頁面時,可以在這里看到JSP頁面如何被轉換成Java源文件,然后又被編譯成class文件(即Servlet)。JSWDK軟件包中的示例頁面分為兩類,它們或者是JSP文件,或者是包含一個表單的HTML文件,這些表單均由JSP代碼處理。與ASP一樣,JSP中的Java代碼均在服務器端執行。因此,在瀏覽器中使用“查看源文件”菜單是無法看到JSP源代碼的,只能看到結果HTML代碼。所有示例的源代碼均通過一個單獨的“examples”頁面提供。3.1.2JSP頁面示例下面分析一個簡單的JSP頁面??梢栽贘SWDK的examples目錄下創建另外一個目錄存放此文件,文件名字可以任意,但擴展名必須為.jsp。從下面的代碼清單中可以看到,JSP頁面除了比普通HTML頁面多一些Java代碼外,兩者具有基本相同的結構。Java代碼是通過<%和%>符號加入到HTML代碼中間的,它的主要功能是生成并顯示一個從0到9的字符串。在這個字符串的前面和后面都是一些通過HTML代碼輸出的文本。HTML>HEADxTITLE>JSP頁面</TITLEx/HEAD><BODY>%@pagelanguage="java"%>%!Stringstr="O";%>%for(inti=1;i<10;i++){str=str+i;}%>JSP輸出之前。P>%=str%>P>JSP輸出之后。/BODY>/HTML>這個JSP頁面可以分成幾個部分來分析。首先是JSP指令。它描述的是頁面的基本信息,如所使用的語言、是否維持會話狀態、是否使用緩沖等。JSP指令由<%@開始,%>結束。在本例中,指令,<%@pagelanguage="java"%>”只簡單地定義了本例使用的是Java語言(當前,在JSP規范中Java是唯一被支持的語言)。接下來的是JSP聲明。JSP聲明可以看成是定義類這一層次的變量和方法的地方。JSP聲明由<%!開始,%>結束。如本例中的“<%!Stringstr="O";%>”定義了一個字符串變量。在每一項聲明的后面都必須有一個分號,就象在普通Java類中聲明成員變量一樣。位于<%和%>之間的代碼塊是描述JSP頁面處理邏輯的Java代碼,如本例中的for循環所示。最后,位于<%=和%>之間的代碼稱為JSP表達式,如本例中的“<%=str%>”所示。JSP表達式提供了一種將JSP生成的數值嵌入HTML頁面的簡單方法。會話狀態維持是Web應用開發者必須面對的問題。有多種方法可以用來解決這個問題,如使用Cookies、隱藏的表單輸入域,或直接將狀態信息附加到URL中。JavaServlet提供了一個在多個請求之間持續有效的會話對象,該對象允許用戶存儲和提取會話狀態信息。JSP也同樣支持Servlet中的這個概念。在Sun的JSP指南中可以看到許多有關隱含對象的說明(隱含的含義是,這些對象可以直接引用,不需要顯式地聲明,也不需要專門的代碼創建其實例)。例如request對象,它是HttpServletRequest的一個子類。該對象包含了所有有關當前瀏覽器請求的信息,包括Cookies,HTML表單變量等等。session對象也是這樣一個隱含對象。這個對象在第一個JSP頁面被裝載時自動創建,并被關聯到request對象上。與ASP中的會話對象相似,JSP中的session對象對于那些希望通過多個頁面完成一個事務的應用是非常有用的。為說明session對象的具體應用,接下來我們用三個頁面模擬一個多頁面的Web應用。第一個頁面(q1.html)僅包含一個要求輸入用戶名字的HTML表單,代碼如下:HTML><BODY>FORMMETHOD=POSTACTION="q2.jsp">請輸入您的姓名:INPUTTYPE=TEXTNAME="thename">INPUTTYPE=SUBMITVALUE="SUBMIT">/FORM></BODY></HTML>第二個頁面是一個JSP頁面(q2.jsp),它通過request對象提取ql.html表單中的thename值,將它存儲為name變量,然后將這個name值保存到session對象中。session對象是一個名字/值對的集合,在這里,名字/值對中的名字為“thename值即為name變量的值。由于session對象在會話期間是一直有效的,因此這里保存的變量對后繼的頁面也有效。q2.jsp的另外一個任務是詢問第二個問題。下面是它的代碼:HTML><BODY>%@pagelanguage="java"%>%!Stringname="";%>%name=request.getParameter("thename");session.putValue("thename",name);%>您的姓名是:<%=name%>p>FORMMETHOD=POSTACTION="q3.jsp">您喜歡吃什么?INPUTTYPE=TEXTNAME="food">P>INPUTTYPE=SUBMITVALUE="SUBMIT">/FORM>/BODY></HTML>第三個頁面也是一個JSP頁面(q3.jsp),王要任務是顯示問答結果。匕從session對象提取thename的值并顯示它,以此證明雖然該值在第一個頁面輸入,但通過session對象得以保留。q3jsp的另外一個任務是提取在第二個頁面中的用戶輸入并顯示它:HTML><BODY>%@pagelanguage="java"%>%!Stringfood="";%>%food=request.getParameter("food");Stringname=(String)session.getValue("thename");%>您的姓名是:<%=name%>P>您喜歡吃:<%=food%>/BODY>/HTML>§3.2B/S系統介紹傳統的C/S架構(客戶機/服務器,Client/Server)方式中,業務邏輯位于客戶端,每完成一項事務,都要頻繁地訪問數據庫,使得網絡上數據流量非常大,對于慢速連接的用戶,甚至無法使用。為彌補上述c/s架構的缺陷,人們發展出了三層或多層架構:客戶機一中間件(應用服務器)一數據庫服務器(Client—Middleware—DatabaseServer)。在這種架構中,業務邏輯放置于中間件服務器上,大量的數據流也位于中間件和數據庫之間,而客戶機只是簡單地發出請求,中間件接受請求后進行事務處理并將處理的結果返回給客戶機,這一類型的客戶機也稱之為“廋客戶”。B/S架構實際上是三層架構的一種,所不同的是客戶端就是目前幾乎每臺電腦中都有的網絡瀏覽器,而中間件則是Web應用服務器。注意到主要的業務邏輯均由位于Web應用服務器上的Servlet和JSP程序或EJB來處理。3.2.1B/S架構具備極大的優越性1、面向電子商務時代的技術將來所有的應用系統幾乎都在互聯網或企業內部廣域網上運行,發展電子商務成為企業不可避免的信息化道路。B/S架構的軟件正是電子商務的基石,正是這類軟件使得移動辦公和分布式協同工作真正成為現實。無論在世界的那個角落,只需要一臺可以聯網的設備(計算機、PDA甚至手機)都可以方便地與客戶聯系和與他人協同工作。2、軟件操作、維護和升級方式的革命軟件系統的改進和升級越來越頻繁,B/S架構的產品在維護和升級方面具備顯著的優勢。無論用戶的規模有多大,有多少分支機構都不會增加任何維護升級的工作量,所有的操作只對服務器進行,通過遠程連接服務器,異地的運維人員甚至于可以做到遠程維護和升級,這對人力、時間、費用的節省是相當驚人的。所有的客戶端只是瀏覽器,所有的操作都和上網瀏覽網頁類似,使用者接受的培訓也僅限于業務邏輯而無需將大量精力浪費學習軟件操作上。3、系統整合無論是辦公自動化(OA)系統,人力資源(HR)系統,客戶關系管理(CRM)系統,ERP等等,發展的趨勢是不斷融合。而采用統一的B/S結構開發的產品無論是現在還是將來都是最好的選擇,它提供了真正意義上無縫地與其它系統進行整合的方案。3.2.2采用JAVA語言實現1、跨越平臺的限制盡管目前Windows桌面系統一統天下,但是服務器系統采用的操作系統卻具有多樣性,包括Linux、Unix、WindowsNT/2000Server等系統都可以實現企業級應用。即便是桌面系統,中國政府出于安全和國家戰略的考慮,希望有自己的操作系統,Linux的出現使這種想法變成了現實。傳統的C/S架構的軟件需要針對不同的操作系統開發不同版本的軟件,面對眾多的操作系統和軟件快速的升級換代,采用這一架構開發軟件,對于企業的IT投資無疑是一種巨大的風險。而采用Java語言實現的B/S架構的軟件產品真正做到了“一次編寫處處運行(WriteOnce,RunAnywhere)”,對企業而言,可以規避將來更換操作系統所帶來的風險。2、健壯的系統Java語言實現的軟件具有天然的健壯性。這是Java語言自身的特性保證的。利用Java寫成的軟件幾乎不可能造成系統崩潰,這正是安全性要求很高的企業級應用所不可或缺的特性。第四章公交查詢系統設計分析根據數據庫系統生存期的設計方法,從數據庫應用系統和開發的全過程來考慮,將數據庫應用系統設計分為以下幾個階段:1)規劃;2)需求分析;3)概念設計;4)邏輯設計5)物理設計§4.1應用需求分析要設計一個良好的公交查詢系統,就必須首先明確該應用環境對系統的要求。公交查詢系統的應用背景為:方便市民搭乘公交車出行;手動(目前)、自動(將來)、及時更新查詢數據。因此,該系統需滿足以下幾方面需求:1、查詢功能:系統需要提供幾種不同方式的查詢手段,以實現靈活方便地管理整個系統。2、數據的更新修改:更新:系統允許管理員級別的用戶對數據進行更新、修改并且存盤操作;編輯:系統允許管理員級別的用戶對數據進行編輯、刪除的操作,保證現庫的真實性與實時性。3、打印輸出(暫未實現):系統可以將用戶查詢到的內容動態地生成報表,并打印輸出?!?.2系統功能模塊劃分公交查詢系統功能劃分模塊如下:查詢系統模塊該模塊實現公交查詢功能??蓪崿F按起點一中轉站一終點查詢查詢和按線路查詢兩種查詢方式。錄入系統模塊該模塊實現數據的錄入、修改、刪除功能?!?.3系統數據庫設計4.3.1概念設計概念設計的目標是產生反映城市公交查詢系統需求的數據庫概念結構,即概念模式。概念模式是獨立于數據庫邏輯結構,獨立于支持數據庫的DBMS,不依賴于計算機系統的。1、ER模型ER模型是對現實世界的一種抽象。它的主要成分是實體、聯系和屬性。使用這三種成分,我們可以建立許多應用環境的ER模型。2、ER模型的操作在利用ER模型進行數據庫概念設計的過程中,常常需要對ER圖進行種種變換。這些變換又稱為ER模型的操作,包括實體類型、聯系類型和屬性的分裂、合并和增刪等等。3、利用ER方法的數據庫概念設計利用ER方法進行數據庫的概念設計,可以分成三步進行:首先設計局部ER模式,然后把各局部ER模式綜合成一個全局ER模式,最后對全局ER模式進行優化,得到最終的ER模式,即概念模式。設計局部的ER模式通常,一個數據庫系統都是為多個不同用戶服務的。各個用戶對數據的觀點可能不一樣,信息處理需求也可能不同。在設計數據庫概念結構時,為了更好地模擬現實世界,一個有效的策略是“分而治之”,即先分別考慮各個用戶的信息需求,形成局部概念結構,然后再綜合成全局結構。在ER方法中,局部概念結構又稱為局部ER模式,其圖形表示稱為ER圖。實體和屬性的定義如下:站點(站點編號,站點名稱,站點類別)

線路(線路編號,始發時間,終發時間,備注)線路站點對應(線路編號,站點名稱)SHAPE\*MERGEFORMATE/E圖表示E/R圖表示4、聯系定義ER模型的“聯系”用于刻畫實體之間的關聯。一種完整的方式是對局部結構中任意兩個實體類型,依據需求分析的結果,考察局部結構中任意兩個實體類型之間是否存在聯系。若有聯系,進一步確定是1:N,M:N,還是1:1等。還要考察一個實體類型內部是否存在聯系,兩個實體類型之間是否存在聯系,多個實體類型之間是否存在聯系,等等。5、設計全局ER模式所有局部ER模式都設計好了后,接下來就是把它們綜合成單一的全局概念結構。全局概念結構不僅要支持所有局部ER模式,而且必須合理地表示一個完整、一致的數據庫概念結構。1)確定公共實體類型為了給多個局部ER模式的合并提供開始合并的基礎,首先要確定各局部結構中的公共實體類型。在這一步中我們僅根據實體類型名和鍵枕認定公共實體類型。一般把同名實體類型作為公共實體類型的一類候選,把具有相同鍵的實體類型作為公共實體類型的另一類候選。2)局部ER模式的合并合并的原則是:首先進行兩兩合并;先和合并那些現實

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論