版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Web的畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:本系統(tǒng)是針對(duì)現(xiàn)代高校計(jì)算機(jī)技術(shù)的開(kāi)展,為了應(yīng)對(duì)以往畢業(yè)生畢業(yè)設(shè)計(jì)中遇到的工作效率低,交互性差等問(wèn)題而采用軟件工程的設(shè)計(jì)思想設(shè)計(jì)的。本文的根底就是利用ASP.net技術(shù)與Web數(shù)據(jù)庫(kù)的結(jié)合,開(kāi)發(fā)出的一個(gè)基于Web技術(shù)的B/S結(jié)構(gòu)的畢業(yè)設(shè)計(jì)管理系統(tǒng)。首先,本文探討了數(shù)據(jù)庫(kù)運(yùn)行的體系結(jié)構(gòu),介紹了瀏覽器/效勞器模式的工作方式及特點(diǎn);比擬了主機(jī)/終端、客戶機(jī)/效勞器和瀏覽器/效勞器等三種模式各自的優(yōu)缺點(diǎn)。比擬結(jié)果說(shuō)明,瀏覽器/效勞器模式繼承了客戶機(jī)/效勞器模式的優(yōu)點(diǎn)并克服了它的缺點(diǎn),不受操作系統(tǒng)和硬件的制約,而且能防止“胖客戶機(jī)〞現(xiàn)象的發(fā)生,比擬容易實(shí)現(xiàn)不同網(wǎng)絡(luò)間的連接。瀏覽器/效勞器模式是目前廣泛使用的主體結(jié)構(gòu)。因此,我們開(kāi)發(fā)的本系統(tǒng)也將采用了瀏覽器/效勞器模式。在此根底上,本文還探討了實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)的不同方法。本文重點(diǎn)還討論了如何利用ASP.net技術(shù)和ADO.net對(duì)象來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)方法,給出了設(shè)計(jì)細(xì)節(jié)和具體步驟及其方法。本次設(shè)計(jì)是應(yīng)用ASP.NET技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境下的畢業(yè)生畢業(yè)設(shè)計(jì)管理。利用MicrosoftVisualStudio.NET工具結(jié)合使用SQLServer數(shù)據(jù)庫(kù),ASP.NET、C#、ADO.NET等技術(shù)的工作原理及特點(diǎn),并以此為理論技術(shù)依據(jù)闡述了基于Web的畢業(yè)設(shè)計(jì)管理系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)和具體的實(shí)現(xiàn)過(guò)程。關(guān)鍵詞:B/S結(jié)構(gòu),C/S結(jié)構(gòu),Web數(shù)據(jù)庫(kù),三層式結(jié)構(gòu),畢業(yè)設(shè)計(jì)管理系統(tǒng),ATheDesignandRealizationofGraduationProjectManagementSystemBasedonWebAbstract:Thissystemisdesignedinallusiontothedevelopmentofmoderncomputertechnologyinuniversitiesandcolleges.Itadoptsthedesignideologyofsoftwareengineering,inordertoanswertheproblemsthathadbeenfacedbythegraduatesintheirgraduationprojects,suchaslowworkefficiency,andpoorinteraction.ThefoundationofthistextwascombiningtheskillofASP.netwithWebDatabase,andexploitingamanagementsystembasedontheskillofWebandthestructureofB/S.Firstly,thistextdiscussesthesystemandstructurerunbydatabase,introducestheworkingandcharacteristicoftheB/Spattern,andalsocompareswiththreekindofpatternsrespectiveadvantageanddisadvantageamongMainframe/Terminal,Client/ServerandBrowser/Server.TheresultindicatesthatthemodeofB/SinheritsthemeritofC/S,andconquersitsshortcoming.ThismodeisnotconditionedbyOSandhardware,andalsocanprevent"thefatclient"happening,evenitcaneasilyconnectdifferentnetworks.ThemodeofB/Sisthemainstructureusedwidelyatpresent.Thereforethissystemadoptsthemodeofbrowser/server.Onthisfoundation,thistextdiscussesthedifferentwaystoactualizeWebDatabase.ThediscussioncentreonhowtousetheASP.nettechnologyandtheobjectofADO.nettomakethevisitorialwaytodatabasecometrue,andshowsthedetailsofdesignanddetailedsteps.ThisdesignappliesASP.NETtechnologytosolvepracticeofgraduationprojectmanagementinthenetworkenvironment.UsingthetoolofMicrosoftVisualStudio.NETandcombiningwithSQLServerDatabase,theworkingelementsofASP.NET,C#,ADO.NET,etc.Ittakesthisforthefoundationofacademictechnique,andexpatiatesthestructuraldesignandthedetailedprocessofcarryingoutthegraduationprojectmanagementbasedonWeb.Keyword:B/S,C/S,WebDatabase,ThreeLayersStructure,GPMS,ASP.net目錄第一章緒論-1-1.1系統(tǒng)開(kāi)發(fā)背景及現(xiàn)狀-1-1.2系統(tǒng)開(kāi)發(fā)的目的-1-1.3系統(tǒng)開(kāi)發(fā)關(guān)鍵技術(shù)與開(kāi)發(fā)環(huán)境-1-1.3.1.Net技術(shù)簡(jiǎn)介-1-1.3.2MicrosoftSQLServer技術(shù)的簡(jiǎn)介-2-1.3.3ASP.NET的優(yōu)勢(shì)-2-系統(tǒng)運(yùn)行軟件平臺(tái)-3-1.4全文體系-3-第二章基于Web的數(shù)據(jù)庫(kù)技術(shù)分析-4-2.1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的層次體系-4-2.1.1終端/主機(jī)體系結(jié)構(gòu)-4-2.1.2客戶機(jī)/效勞器體系結(jié)構(gòu)-4-2.1.3瀏覽器/效勞器結(jié)構(gòu)-6-2.1.4C/S結(jié)構(gòu)與B/S結(jié)構(gòu)的比擬-7-2.2Web數(shù)據(jù)庫(kù)管理系統(tǒng)介紹-8-2.2.1Web數(shù)據(jù)庫(kù)管理系統(tǒng)的工作原理-8-2.2.2利用WWW訪問(wèn)數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)-8-訪問(wèn)Web數(shù)據(jù)庫(kù)的不同方法-9-2.2.4ASP.net與以上開(kāi)發(fā)Web數(shù)據(jù)庫(kù)方式相比的優(yōu)勢(shì)-10-2.3本章小結(jié)-10-第三章系統(tǒng)分析與設(shè)計(jì)-11-3.1系統(tǒng)的功能需求-11-3.2系統(tǒng)介紹-11-3.2.1總體框架-11-3.2.2系統(tǒng)功能特點(diǎn)-12-3.3系統(tǒng)設(shè)計(jì)-12-3.3.1系統(tǒng)的開(kāi)發(fā)原理-12-3.3.2系統(tǒng)的功能設(shè)計(jì)-13-3.3.3系統(tǒng)的總體設(shè)計(jì)-14-3.4系統(tǒng)的詳細(xì)設(shè)計(jì)-15-3.5本章小結(jié)-15-第四章系統(tǒng)功能的實(shí)現(xiàn)-16-4.1系統(tǒng)結(jié)構(gòu)和流程圖-16-4.1.1學(xué)生模塊的結(jié)構(gòu)-16-4.1.2教師模塊的結(jié)構(gòu)-16-4.1.3管理員模塊的結(jié)構(gòu)-17-4.2數(shù)據(jù)庫(kù)的設(shè)計(jì)和構(gòu)建-18-4.3與數(shù)據(jù)庫(kù)的連接-21-4.4主要功能分析與實(shí)現(xiàn)-23-4.4.1用戶登陸功能的實(shí)現(xiàn)-23-4.4.2文件上傳功能代碼-24-4.4.3數(shù)據(jù)庫(kù)備份的實(shí)現(xiàn)-24-4.4.4頁(yè)面顯示及操作的實(shí)現(xiàn)-25-4.5平安控制技術(shù)-25-4.6本章小結(jié)-26-第五章結(jié)束語(yǔ)-27-參考文獻(xiàn)-28-致謝-29-附錄-30-第一章緒論1.1系統(tǒng)開(kāi)發(fā)背景及現(xiàn)狀隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的開(kāi)展,給信息時(shí)代的人們帶來(lái)了很大的方便。如今在Internet上,你隨處都可以看到很多的各類(lèi)信息管理系統(tǒng),如企業(yè)信息管理系統(tǒng),電子商務(wù)系統(tǒng),學(xué)校教務(wù)管理系統(tǒng)等各類(lèi)信息管理系統(tǒng)的普及。而針對(duì)本科畢業(yè)設(shè)計(jì)的選題等相關(guān)事項(xiàng),涉及到導(dǎo)師給出課題或?qū)W生自選課題,以及在各個(gè)階段需要上交或是提交相關(guān)的文檔資料等問(wèn)題,目前主要還是由人為來(lái)處理操作,需要花費(fèi)一定人力,這給整個(gè)工作帶來(lái)了很多不便,而且容易出錯(cuò)。因此就需要一個(gè)對(duì)此流程進(jìn)行管理的電子系統(tǒng),使得此過(guò)程更加方便,更加透明,更加高效,以節(jié)省更多的人力和不必要的工作。而目前的此類(lèi)系統(tǒng)或多或少的存在以下的問(wèn)題:1、不清楚建立網(wǎng)站的目的或沒(méi)有根據(jù)自己的目的詳細(xì)籌劃網(wǎng)站的功能,只適應(yīng)一時(shí)之需;結(jié)果頁(yè)面的設(shè)計(jì),包括系統(tǒng)內(nèi)的鏈接和功能未能真正提供方便;2、缺少一個(gè)針對(duì)有效管理本科畢業(yè)設(shè)計(jì)〔論文〕工作的基于Web技術(shù)的B/S的管理系統(tǒng),所以很多的管理系統(tǒng)遠(yuǎn)遠(yuǎn)達(dá)不到標(biāo)準(zhǔn),沒(méi)能很好地發(fā)揮管理系統(tǒng)應(yīng)有的效果;3、現(xiàn)實(shí)還沒(méi)有一個(gè)適合我校關(guān)于畢業(yè)設(shè)計(jì)管理工作的管理系統(tǒng),或是直接針對(duì)我校的畢業(yè)設(shè)計(jì)管理工作而編寫(xiě)的管理系統(tǒng)。通過(guò)對(duì)畢業(yè)設(shè)計(jì)管理工作的初步了解,從系統(tǒng)結(jié)構(gòu)的組織,功能的實(shí)現(xiàn),技術(shù)的要求以及可行性等多方面進(jìn)行考慮,認(rèn)為本課題是一個(gè)適應(yīng)現(xiàn)今畢業(yè)設(shè)計(jì)管理工作需求的計(jì)算機(jī)信息管理系統(tǒng),具有一定的實(shí)際開(kāi)發(fā)價(jià)值和使用價(jià)值。1.2系統(tǒng)開(kāi)發(fā)的目的隨著計(jì)算機(jī)信息技術(shù)、網(wǎng)絡(luò)通訊等高新技術(shù)的開(kāi)展,對(duì)高校畢業(yè)設(shè)計(jì)管理提出了更高的要求。這樣不僅可以使教師從煩瑣的事務(wù)中解脫出來(lái),而且還能提供面向?qū)W生的快捷、靈活、方便的智能效勞。本課題旨在使目前校園內(nèi)畢業(yè)設(shè)計(jì)管理信息網(wǎng)絡(luò)化,解決已往信息傳遞不方便、不快捷等問(wèn)題,如假期學(xué)生因不在校而無(wú)法上交文檔,學(xué)院或?qū)煘榘才殴ぷ鞫仨毻ㄖ礁鱾€(gè)學(xué)生等繁瑣的操作,通過(guò)本系統(tǒng)可實(shí)現(xiàn)管理的網(wǎng)絡(luò)化,方便教師和學(xué)生,提高工作效率和效果,節(jié)省人力資源等,提高高校的管理水平,有利于推動(dòng)高校管理的“無(wú)紙化辦公〞進(jìn)程。1.3系統(tǒng)開(kāi)發(fā)關(guān)鍵技術(shù)與開(kāi)發(fā)環(huán)境.Net技術(shù)簡(jiǎn)介[14].Net首先是一個(gè)平臺(tái),它定義了一種公用語(yǔ)言子集〔CommonLanguageSubset,CLS〕,這是一種為符合其標(biāo)準(zhǔn)的語(yǔ)言與類(lèi)庫(kù)之間提供無(wú)縫集成的混合語(yǔ)[8]。.Net統(tǒng)一了編程類(lèi)庫(kù),提供了對(duì)下一代網(wǎng)絡(luò)通訊標(biāo)準(zhǔn),可擴(kuò)展標(biāo)記語(yǔ)言〔ExtensibleMarkupLanguage,XML〕的完全支持,使應(yīng)用程序的開(kāi)發(fā)變得更容易,更簡(jiǎn)單。Microsoft.Net方案還將實(shí)現(xiàn)人機(jī)交互方面的革命,微軟將在其軟件中添加手寫(xiě)和語(yǔ)音識(shí)別的功能,讓人們能夠與計(jì)算機(jī)進(jìn)行更好的交流,并在此根底上繼續(xù)擴(kuò)展功能,增加對(duì)各種用戶終端的支持能力。最為重要的是.Net將改變因特網(wǎng)的行為方式:軟件將變?yōu)樾?。與Microsoft的其他產(chǎn)品一樣,.Net與Windows平臺(tái)緊密集成,并且與其他微軟產(chǎn)品相比它更進(jìn)一步:由于其運(yùn)行庫(kù)已經(jīng)與操作系統(tǒng)融合在了一起,從廣義上把它稱為一個(gè)運(yùn)行庫(kù)也不為過(guò)。.Net框架是.Net平臺(tái)的根底架構(gòu)。其強(qiáng)大功能來(lái)自于公共語(yǔ)言運(yùn)行時(shí)〔CommonLanguageRuntime,CLR〕環(huán)境和類(lèi)庫(kù)。CLR和類(lèi)庫(kù)〔包括:WindowsForms,ADO.Net和ASP.Net〕緊密結(jié)合在一起,提供了不同系統(tǒng)之間交叉與綜合的解決方案和效勞。.Net框架創(chuàng)造了一個(gè)完全可操控的、平安的和特性豐富的應(yīng)用執(zhí)行環(huán)境。這不但使得應(yīng)用程序的開(kāi)發(fā)與發(fā)布更加簡(jiǎn)單,并且成就了眾多種類(lèi)語(yǔ)言間的無(wú)縫集成。.Net的核心組件包括:[14]●一組用于創(chuàng)立互聯(lián)網(wǎng)操作系統(tǒng)的構(gòu)件塊,其中包括Passport.Net〔用于用戶認(rèn)證〕以及用于文件存儲(chǔ)的效勞、用戶首選項(xiàng)管理、日歷管理以及眾多的其他任務(wù)?!駱?gòu)建和管理新一代效勞的根本結(jié)構(gòu)和工具,包括VisualStudio.Net、.Net企業(yè)效勞器、.NetFramework和Windows.Net。●能夠啟用新型智能互聯(lián)網(wǎng)設(shè)備的.Net設(shè)備軟件?!?Net用戶體驗(yàn)。.Net結(jié)構(gòu)包括:●虛擬對(duì)象系統(tǒng)〔VisualObjectSystem,VOS〕類(lèi)型系統(tǒng)●元數(shù)據(jù)●公用語(yǔ)言標(biāo)準(zhǔn)〔CommonLanguageSpecification,CLS〕●虛擬執(zhí)行系統(tǒng)〔VisualExecutionSystem,VES〕簡(jiǎn)而言之,.Net是一種面向網(wǎng)絡(luò)、支持各種用戶終端的開(kāi)發(fā)平臺(tái)環(huán)境。微軟的宏偉目標(biāo)是讓.Net徹底改變軟件的開(kāi)發(fā)方式、發(fā)行方式、使用方式等等,并且不止是針對(duì)微軟一家,而是面向所有開(kāi)發(fā)商與運(yùn)營(yíng)商!.Net的核心內(nèi)容之一就是搭建第三代因特網(wǎng)平臺(tái),這個(gè)網(wǎng)絡(luò)平臺(tái)將解決網(wǎng)站之間的協(xié)同合作問(wèn)題,從而最大限度地獲取信息。在.Net平臺(tái)上,不同網(wǎng)站之間通過(guò)相關(guān)的協(xié)定聯(lián)系在一起,網(wǎng)站之間形成自動(dòng)交流,協(xié)同工作,提供最全面的效勞。MicrosoftSQLServer技術(shù)的簡(jiǎn)介[9]MicrosoftSQLserver幫助初級(jí)數(shù)據(jù)庫(kù)用戶及資深程序員建立與Web及企業(yè)數(shù)據(jù)源輕松實(shí)現(xiàn)集成的強(qiáng)大自定義解決方案。檢索銷(xiāo)售記錄,跟蹤存貨信息,MicrosoftSQLserver將時(shí)刻準(zhǔn)備幫助您實(shí)現(xiàn)智能化工作方式。MicrosoftSQLserver大大簡(jiǎn)化了建立功能強(qiáng)大的數(shù)據(jù)庫(kù)解決方案以及訪問(wèn)并分析重要數(shù)據(jù)的任務(wù)。改變?cè)械臄?shù)據(jù)分析方式。輕松創(chuàng)立并發(fā)布交互式電子表格;借助MicrosoftPivotTable?及MicrosoftPivotChart?,在無(wú)需離開(kāi)MicrosoftSQLserver的前提下,以多種不同方式動(dòng)態(tài)查看現(xiàn)有的重要信息?,F(xiàn)在,為實(shí)現(xiàn)最大工作效率,當(dāng)創(chuàng)立窗體、報(bào)表、數(shù)據(jù)訪問(wèn)頁(yè)、宏或模塊時(shí),您可以撤消或恢復(fù)多個(gè)操作。使用您所了解的工具在Web上共享數(shù)據(jù)。將您的窗體或報(bào)表保存為數(shù)據(jù)訪問(wèn)頁(yè),以便使用戶能夠在他們的瀏覽器中即時(shí)查看與編輯數(shù)據(jù)。在Web站點(diǎn)上訪問(wèn)Office工具,以便下載幫助您提高工作速度的模板、工具、提示及更新。利用功能強(qiáng)大的新型發(fā)布工具。這些工具允許您通過(guò)諸如擴(kuò)展標(biāo)記語(yǔ)言〔XML〕這樣的Internet標(biāo)準(zhǔn)導(dǎo)出數(shù)據(jù)及相關(guān)格式,以供在Web上進(jìn)行顯示。1.3.3ASP.NET的優(yōu)勢(shì)傳統(tǒng)的網(wǎng)站管理方式有兩種,一是靜態(tài)HTML頁(yè)面,更新信息時(shí)需要重新制作頁(yè)面然后上傳頁(yè)面并修改相應(yīng)鏈接,這種方式因?yàn)樾侍鸵巡欢嘤谩6腔贏SP和腳本語(yǔ)言,將動(dòng)態(tài)網(wǎng)頁(yè)和數(shù)據(jù)庫(kù)結(jié)合,通過(guò)應(yīng)用程序來(lái)處理新聞,這是目前較為流行的做法。但是由于ASP本身的局限性使得系統(tǒng)有一些不可克服的缺陷,而采取了ASP.NET技術(shù)的系統(tǒng)性能上有了很大的改善,其主要表現(xiàn)在以下幾方面:1、由于ASP頁(yè)面每次翻開(kāi)都必須經(jīng)過(guò)先編譯后解釋的過(guò)程,所以頁(yè)面在反復(fù)翻開(kāi)時(shí)速度沒(méi)有任何提升,而ASP.NET頁(yè)面只需要一次編譯后不需要重新編譯,直到該頁(yè)面被修改或Web應(yīng)用程序重新啟動(dòng)。這使得在屢次訪問(wèn)時(shí)速度有了極大的提升。2、由于ASP沒(méi)有提供任何輸出數(shù)據(jù)為內(nèi)容的元件,所以在使用ASP撰寫(xiě)數(shù)據(jù)庫(kù)頁(yè)面時(shí)只能借助ADO的RecordSet對(duì)象逐筆讀取記錄,而ASP.NET通過(guò)ADO.NET提供的DataGrid等數(shù)據(jù)庫(kù)元件可以直接和數(shù)據(jù)庫(kù)聯(lián)系。3、ASP.NET支持應(yīng)用程序的實(shí)時(shí)更新。管理員不必關(guān)掉網(wǎng)絡(luò)效勞器或者甚至不用停止應(yīng)用程序的運(yùn)行就可以更新應(yīng)用文件。應(yīng)用程序文件永遠(yuǎn)不會(huì)被加鎖,因此甚至在程序運(yùn)行時(shí)文件就可以被覆蓋。當(dāng)文件更新后,系統(tǒng)會(huì)溫和地轉(zhuǎn)換到新的版本。4、ASP.NET采取"code-behind"方式編寫(xiě)代碼使得代碼更易于編寫(xiě),結(jié)構(gòu)更清晰,降低了系統(tǒng)的開(kāi)發(fā)與維護(hù)的復(fù)雜度和費(fèi)用。所以本系統(tǒng)將采用基于ASP.NET的C#語(yǔ)言進(jìn)行開(kāi)發(fā)。系統(tǒng)運(yùn)行軟件平臺(tái)1、效勞器端:操作系統(tǒng):Window2000〔或更高〕、Microsoft.NETFrameworkv1.1、1.0、SQLServer2000〔或更高〕。2、客戶端:瀏覽器:Netscape7.0,Opera7,InternetExplorer6.0sp1以及其它支持xhtml1.0標(biāo)準(zhǔn)的移動(dòng)設(shè)備。1.4全文體系第一章簡(jiǎn)述了系統(tǒng)的開(kāi)發(fā)背景、開(kāi)展現(xiàn)狀及目的,介紹.Net和SQLSverver的相關(guān)技術(shù)。第二章介紹了基于Web的數(shù)據(jù)庫(kù)技術(shù)的開(kāi)展情況,并詳細(xì)介紹了瀏覽器用及務(wù)器模式的工作方式及特點(diǎn),同時(shí)詳細(xì)還介紹了實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)的不同方法及ASP.net技術(shù)在性能方面的優(yōu)越性。第三章討論了運(yùn)用軟件工程的思想,做畢業(yè)設(shè)計(jì)管理的系統(tǒng)功能需求、以及整個(gè)系統(tǒng)的設(shè)計(jì)與分析。第四章主要介紹畢業(yè)設(shè)計(jì)管理系統(tǒng)的功能結(jié)構(gòu)和具體實(shí)現(xiàn),以及所采取的平安控制技術(shù)。第五章是結(jié)束語(yǔ)??偨Y(jié)了全文的主要思想,分析了今后繼續(xù)努力的方向。國(guó)際互聯(lián)網(wǎng)技術(shù)日新月異,極大地推動(dòng)了基于Internet的應(yīng)用技術(shù)的開(kāi)展。支持Web數(shù)據(jù)庫(kù)訪問(wèn)的新技術(shù)也層出不窮。隨著校園網(wǎng)的開(kāi)展,基于Internet的各種教學(xué)管理系統(tǒng)、學(xué)生管理系統(tǒng)也在不斷地深入和開(kāi)展。本文所介紹的“基于Web的畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)〞僅僅是高校管理信息系統(tǒng)的一個(gè)小模塊,今后我們將進(jìn)一步努力,不斷地學(xué)習(xí)新知識(shí),爭(zhēng)取將這個(gè)系統(tǒng)做到更加完善。第二章基于Web的數(shù)據(jù)庫(kù)技術(shù)分析當(dāng)計(jì)算機(jī)的應(yīng)用開(kāi)始從數(shù)值計(jì)算向數(shù)據(jù)庫(kù)方面開(kāi)展的時(shí)候,許多公司和機(jī)構(gòu)都致力于建立一種完美的數(shù)據(jù)庫(kù)運(yùn)行的體系結(jié)構(gòu)。網(wǎng)絡(luò)的出現(xiàn)給計(jì)算機(jī)帶來(lái)一次重大的改革,為了適應(yīng)網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫(kù)應(yīng)用,人們依據(jù)計(jì)算機(jī)的應(yīng)用特點(diǎn)和應(yīng)用功能的劃分方式,提出了一系列應(yīng)用框架—主機(jī)/終端模式、客戶機(jī)/效勞器模式以及隨后的瀏覽器/效勞器模式。在構(gòu)造一個(gè)應(yīng)用系統(tǒng)時(shí),我們首先要考慮的是系統(tǒng)的體系結(jié)構(gòu),采用哪種結(jié)構(gòu)取決于系統(tǒng)的網(wǎng)絡(luò)環(huán)境、應(yīng)用需求等因素。2.1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的層次體系終端/主機(jī)體系結(jié)構(gòu)這是一種早期處理數(shù)據(jù)所采用的模式,如圖2-1所示。這種體系結(jié)構(gòu)使得用戶能夠盡可能地使用共享資源,終端所要做的事只是輸入命令,顯示結(jié)果,而有關(guān)的一切數(shù)據(jù)處理都交給了主機(jī)去完成。在這樣的結(jié)構(gòu)中,由于終端不需要做什么處理工作,所以它可以很簡(jiǎn)單,也不必隨著信息業(yè)的開(kāi)展頻繁更新,因此也稱“啞〞終端,但主機(jī)就不一樣了,它幾乎包攬了有關(guān)數(shù)據(jù)的一切處理工作,這就要求它具有十分高的性能,并且能夠隨著信息量的增加不斷更新。[16]這種模式中,效勞器存儲(chǔ)所有數(shù)據(jù),進(jìn)行所有處理運(yùn)算,資源也得到了充分的共享。但是用戶界面不友好,主機(jī)負(fù)載過(guò)大??蛻魴C(jī)/效勞器體系結(jié)構(gòu)[16、17]傳統(tǒng)的C/S結(jié)構(gòu)是兩層的,根本思想是:效勞器提供數(shù)據(jù)的存取和管理等,客戶端運(yùn)行相應(yīng)的應(yīng)用,通過(guò)網(wǎng)絡(luò)獲得效勞器的效勞,使用效勞器上的數(shù)據(jù)庫(kù)資源。與主機(jī)/終端模式相比,C/S結(jié)構(gòu)更容易擴(kuò)充,更加靈活。當(dāng)信息系統(tǒng)的規(guī)模擴(kuò)大或需求改變時(shí),不必重新設(shè)計(jì)便可在原有根底上進(jìn)行擴(kuò)充和調(diào)整,從而保護(hù)了己有投資。為了應(yīng)用客戶機(jī)/效勞器這種體系結(jié)構(gòu),原來(lái)完全放在主機(jī)上的應(yīng)用程序被分成了兩局部:客戶機(jī)端的應(yīng)用程序和效勞器端的應(yīng)用程序,如圖2.2所示。由于兩層結(jié)構(gòu)的C/S系統(tǒng)本身固有的缺陷,使得它不能應(yīng)用于一些大型的、結(jié)構(gòu)復(fù)雜的系統(tǒng)中,由此出現(xiàn)了三層結(jié)構(gòu)的C/S系統(tǒng),它把兩層結(jié)構(gòu)中效勞器局部和客戶端局部的應(yīng)用單獨(dú)劃分出來(lái),從而滿足了大型應(yīng)用系統(tǒng)的需求。典型的數(shù)據(jù)庫(kù)應(yīng)用可分成三局部:即表示局部、應(yīng)用邏輯局部和數(shù)據(jù)訪問(wèn)局部。由此,三層C/S結(jié)構(gòu)將應(yīng)用的三局部明確地進(jìn)行分割,使其在邏輯上各自獨(dú)立,并且單獨(dú)加以實(shí)現(xiàn),分別稱之為客戶效勞器、應(yīng)用效勞器和數(shù)據(jù)庫(kù)效勞器。與兩層C/S結(jié)構(gòu)相比,其應(yīng)用邏輯局部被明確地劃分出來(lái)。在硬件實(shí)現(xiàn)上,有兩種方式:1、客戶位于客戶機(jī)上,應(yīng)用效勞器和數(shù)據(jù)庫(kù)效勞器位于同一主機(jī)上。這種方式在主機(jī)具有良好性能的前提下,能保證應(yīng)用效勞器和數(shù)據(jù)庫(kù)效勞器之間的通信效率,減少客戶和應(yīng)用效勞器之間網(wǎng)絡(luò)上的數(shù)據(jù)傳輸,使系統(tǒng)具有好的性能。如圖2.3所示。2、客戶位于客戶機(jī)上,應(yīng)用效勞器和數(shù)據(jù)庫(kù)效勞器位于不同主機(jī)上。這種方式更加靈活,能夠適應(yīng)客戶機(jī)數(shù)目的增加和應(yīng)用處理負(fù)荷的變動(dòng)。在增加新的應(yīng)用邏輯時(shí),可以追加新的應(yīng)用效勞器。系統(tǒng)規(guī)模越大,這種方式的優(yōu)點(diǎn)表達(dá)得越明顯。如圖2.4所示。兩種方式在復(fù)雜應(yīng)用下,使整個(gè)系統(tǒng)到達(dá)高性能的關(guān)鍵是應(yīng)用效勞器和數(shù)據(jù)庫(kù)效勞器間的數(shù)據(jù)通信效率,它對(duì)于應(yīng)用效勞器和數(shù)據(jù)庫(kù)效勞器位于不同主機(jī)上的第二種方式來(lái)說(shuō)尤為重要。三層C/S模式的功能:1、客戶:是應(yīng)用的用戶接口局部,負(fù)責(zé)用戶與應(yīng)用程序的交互。它接受用戶的輸入請(qǐng)求,將結(jié)果以適當(dāng)?shù)男问椒祷赜脩簦R詧D形用戶界面(GUI)表現(xiàn)出來(lái)??蛻舻腉UI界面應(yīng)當(dāng)易于生成和修改,并盡量與其他兩層保持獨(dú)立,以適應(yīng)應(yīng)用的變化。2、應(yīng)用效勞器:是應(yīng)用邏輯處理的核心,是具體業(yè)務(wù)的實(shí)現(xiàn)。它與客戶間的數(shù)據(jù)交往應(yīng)盡量簡(jiǎn)潔,客戶將請(qǐng)求信息發(fā)送給應(yīng)用效勞器,應(yīng)用效勞器返回?cái)?shù)據(jù)和結(jié)果。應(yīng)用效勞器一般和數(shù)據(jù)庫(kù)效勞器有密切交往,應(yīng)用效勞器向數(shù)據(jù)庫(kù)效勞器發(fā)送SQL請(qǐng)求,數(shù)據(jù)庫(kù)效勞器將數(shù)據(jù)訪問(wèn)結(jié)果返回給應(yīng)用效勞器。此外,應(yīng)用效勞器也可能和數(shù)據(jù)庫(kù)效勞器沒(méi)有交換,而作為客戶的獨(dú)立效勞器使用。應(yīng)用邏輯變得復(fù)雜或增加新的應(yīng)用時(shí),可增加新的應(yīng)用效勞器,它可與原應(yīng)用效勞器駐留于同一主機(jī)或是不同主機(jī)上。3、數(shù)據(jù)庫(kù)效勞器:以傳統(tǒng)的基于SQL的DBMS實(shí)現(xiàn),它接收應(yīng)用效勞器提出的SQL請(qǐng)求,完成數(shù)據(jù)的存儲(chǔ)、訪問(wèn)和完整性約束等。瀏覽器/效勞器結(jié)構(gòu)[15、17、18]在典型的客戶機(jī)效勞器體系中,那種為客戶安裝前端應(yīng)用程序的方法已不再現(xiàn)實(shí),甚至限制客戶端的工作環(huán)境只能基于Windows、Macintosh或UNIX等亦不切實(shí)際。人們不能開(kāi)發(fā)那種只能用于特定計(jì)算環(huán)境的軟件,且在自己的WEB站點(diǎn)上同時(shí)保存某個(gè)應(yīng)用程序的多個(gè)特定平臺(tái)的版本是不可行的,因?yàn)檫@樣不但使軟件開(kāi)發(fā)本錢(qián)大幅度上漲,而且客戶端的計(jì)算環(huán)境可能是干變?nèi)f化的,無(wú)法預(yù)知客戶端的計(jì)算環(huán)境什么時(shí)候已經(jīng)或?qū)⒁骱畏N改變。不過(guò)可以要求在客戶機(jī)上安裝某種具有一定“翻譯〞功能的統(tǒng)一的構(gòu)件,這個(gè)構(gòu)件便是瀏覽器。它作為操作系統(tǒng)的一種擴(kuò)展,充當(dāng)?shù)氖怯脩粲?jì)算機(jī)與Internet之間的一個(gè)接口,隨著瀏覽器功能的不斷增強(qiáng),它有望成為將來(lái)大局部應(yīng)用程序運(yùn)行的主要環(huán)境外殼。于是基于瀏覽器/效勞器模式的系統(tǒng)應(yīng)運(yùn)而生,它繼承了客戶機(jī)/效勞器模式的所有優(yōu)點(diǎn)而克服了它的缺點(diǎn)。瀏覽器/效勞器模式不受具體操作系統(tǒng)和硬件的制約,可以很容易地構(gòu)筑大型實(shí)用的網(wǎng)絡(luò),不需要一個(gè)統(tǒng)一客戶機(jī)和效勞器的操作系統(tǒng)。防止了“胖客戶機(jī)〞現(xiàn)象的產(chǎn)生,非常容易實(shí)現(xiàn)不同網(wǎng)絡(luò)間的連接[15]。瀏覽器/效勞器的工作原理和過(guò)程:在瀏覽器/效勞器模式中,客戶端的標(biāo)準(zhǔn)配置是瀏覽器,如,IE:業(yè)務(wù)功能處理從C/S代碼中徹底別離出來(lái),由獨(dú)立的應(yīng)用效勞器處理,WEB效勞器成為應(yīng)用處理的標(biāo)準(zhǔn)配置:數(shù)據(jù)處理仍然由數(shù)據(jù)庫(kù)效勞器〔DBServer)完成。圖2.5為瀏覽器/效勞器模式構(gòu)成及數(shù)據(jù)處理方式。瀏覽器/效勞器模式是三層分布結(jié)構(gòu),即瀏覽器—Web效勞器—數(shù)據(jù)庫(kù)效勞器。一般情況下的工作流程為:1、用戶輸入所要啟動(dòng)的主頁(yè)URL(統(tǒng)一資源定位),瀏覽器將生成一個(gè)HTTP請(qǐng)求并把它發(fā)送到指定的web效勞器。2、效勞器把主頁(yè)發(fā)回給瀏覽器,瀏覽器將其顯示在屏幕上。3、用戶閱讀相關(guān)信息,可繼續(xù)查找有關(guān)信息,向?yàn)g覽器發(fā)出請(qǐng)求。4、瀏覽器發(fā)送一個(gè)請(qǐng)求給相應(yīng)的效勞器,并把由URL標(biāo)識(shí)的文檔/文件返回屏幕。5、效勞器收到請(qǐng)求后,查看本站點(diǎn)是否有該文檔:假設(shè)有,那么把該文檔放入響應(yīng)信息中返回瀏覽器。6、瀏覽器收到響應(yīng),查看頭文件格式,判斷是否能直接顯示。假設(shè)能就顯示出來(lái),否那么,調(diào)用對(duì)應(yīng)的幫助應(yīng)用程序或外掛程序處理。7、瀏覽器等待用戶的下一條指令,而效勞器準(zhǔn)備接受來(lái)自瀏覽器的下一條請(qǐng)求。2.1.4C與C/S相比,B/S在許多方面表達(dá)了很大的優(yōu)勢(shì),主要表達(dá)在以下幾個(gè)方面:1、開(kāi)發(fā)和維護(hù)本錢(qián)C/S開(kāi)發(fā)和維護(hù)本錢(qián)較高,對(duì)不同的客戶端要開(kāi)發(fā)不同程序,編程工作量大,對(duì)于B/S,只需在客戶端安裝通用的瀏覽器,所有的維護(hù)和升級(jí)工作都是在效勞器上執(zhí)行的,不需對(duì)客戶端進(jìn)行任何改變,故而大大降低了開(kāi)發(fā)和維護(hù)本錢(qián)。2、客戶端任務(wù)C/S的客戶端具有顯示和處理數(shù)據(jù)的功能,任務(wù)過(guò)重,B/S的客戶端把事務(wù)邏輯局部分給了效勞器,不再負(fù)責(zé)處理復(fù)雜計(jì)算和數(shù)據(jù)訪問(wèn)等關(guān)鍵事務(wù),只負(fù)責(zé)顯示局部,任務(wù)大大減輕。3、采用的標(biāo)準(zhǔn)C/S所采用的標(biāo)準(zhǔn)只在內(nèi)部統(tǒng)一,其應(yīng)用通常是專用的。B/S所采用的標(biāo)準(zhǔn)是開(kāi)放的、非專用的,保證了其應(yīng)用的通用性和跨平臺(tái)性。4、靈活性C/S系統(tǒng)模塊中每一局部的變動(dòng)均要影響到其它模塊的變動(dòng),系統(tǒng)升級(jí)困難,靈活性差。B/S各層之間相互獨(dú)立,任何一層的改變不影響其它層的功能,系統(tǒng)改良非常容易,靈活性好。5、平安性C/S系統(tǒng)中的客戶機(jī)直接與效勞器相連,非法用戶可以很容易地通過(guò)應(yīng)用程序侵入系統(tǒng),并對(duì)效勞器數(shù)據(jù)庫(kù)進(jìn)行操作,這給系統(tǒng)的平安性帶來(lái)極大的隱患。B/S系統(tǒng)在客戶機(jī)和效勞器之間增加了一層Web效勞器,是兩者不在相連,客戶機(jī)無(wú)法直接對(duì)數(shù)據(jù)庫(kù)操作,可有效地防止用戶的非法入侵。6、移植性C/S系統(tǒng)對(duì)不同工具開(kāi)發(fā)的應(yīng)用程序,一般來(lái)說(shuō)互不兼容,難以移植到其它平臺(tái)上運(yùn)行,移植性差。B/S系統(tǒng)在客戶端安裝的是通用瀏覽器,不存在移植性問(wèn)題。7、用戶界面風(fēng)格C/S用戶的界面由客戶端應(yīng)用程序決定,用戶界面各不相同。B/S只需在客戶端安裝通用的瀏覽器就可以訪問(wèn)應(yīng)用程序,瀏覽器的界面統(tǒng)一友好,易于使用。通過(guò)以上對(duì)C/S和B/S的介紹和比擬,B/S的優(yōu)點(diǎn)非常明顯,因此,本系統(tǒng)將采用B/S模式來(lái)開(kāi)發(fā)畢業(yè)設(shè)計(jì)管理系統(tǒng)。2.2Web數(shù)據(jù)庫(kù)管理系統(tǒng)介紹Web數(shù)據(jù)庫(kù)管理系統(tǒng)[16]是指基于Web模式的DBMS的信息效勞,充分發(fā)揮DBMS高效的數(shù)據(jù)存儲(chǔ)和管理能力,以Web這種瀏覽器用民務(wù)器(B/S)模式為平臺(tái),將客戶端融入統(tǒng)一的Web瀏覽器,為Internet用戶提供使用簡(jiǎn)便、內(nèi)容豐富的效勞。更好的實(shí)現(xiàn)不同地域的其他人使用這些信息。Web數(shù)據(jù)庫(kù)管理系統(tǒng)的工作原理[17、18]在WWW中,瀏覽器是用戶可見(jiàn)的存在界面,在該界面中,用戶輸入信息,瀏覽器將該輸入信息發(fā)送到效勞器端。由效勞器通過(guò)外部程序訪問(wèn)數(shù)據(jù)庫(kù),并將結(jié)果返回給瀏覽器。其工作原理如圖2-6所示。基于Web的數(shù)據(jù)庫(kù)采用3層的客戶端/效勞器結(jié)構(gòu):第一層是瀏覽器,第二層是Web效勞器,第三層包括一些應(yīng)用程序及相關(guān)的數(shù)據(jù)庫(kù)。瀏覽器作為用戶輸入查詢條件和顯示查詢結(jié)果的交互界面,用戶可以通過(guò)填寫(xiě)表單或輸入關(guān)鍵字的方式來(lái)與Web交互。當(dāng)用戶單擊表單上的按鈕時(shí),表單中的數(shù)據(jù)便被發(fā)送到Web效勞器。Web效勞器負(fù)責(zé)用戶輸入信息的接收,它將數(shù)據(jù)傳送至要被處理的腳本或應(yīng)用程序,并在數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)。最后,Web效勞器將返回結(jié)果插入到HTML頁(yè)面,傳送至瀏覽器以響應(yīng)用戶。利用WWW訪問(wèn)數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)與傳統(tǒng)方式相比,通過(guò)WWW訪問(wèn)數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)在于:1、借用瀏覽器軟件,無(wú)需開(kāi)發(fā)數(shù)據(jù)庫(kù)前端;如果能夠通過(guò)WWW來(lái)訪問(wèn)數(shù)據(jù)庫(kù),我們就不需要開(kāi)發(fā)客戶端的程序,使用的數(shù)據(jù)庫(kù)應(yīng)用都可以通過(guò)瀏覽器來(lái)實(shí)現(xiàn),界面統(tǒng)一,降低了本錢(qián),能使廣闊用戶很方便地訪問(wèn)數(shù)據(jù)庫(kù)信息.2、標(biāo)準(zhǔn)統(tǒng)一,開(kāi)發(fā)過(guò)程簡(jiǎn)單:HTML是WWW信息的組織方式,是一種國(guó)際標(biāo)準(zhǔn),使用的www效勞器與瀏覽器均遵循這個(gè)標(biāo)準(zhǔn)。使用HTML標(biāo)準(zhǔn),開(kāi)發(fā)者甚至只需學(xué)習(xí)HTML一種語(yǔ)言,使用者只需學(xué)習(xí)一種界面—瀏覽器界面。3、交叉平臺(tái)支持,幾乎在各種操作系統(tǒng)上都有現(xiàn)成的瀏覽器可供使用,為一個(gè)www效勞器書(shū)寫(xiě)的HTML文件,可以被所有平臺(tái)的瀏覽器所瀏覽,實(shí)現(xiàn)了跨平臺(tái)操作。實(shí)現(xiàn)www數(shù)據(jù)庫(kù)的方法有很多,如中間件技術(shù)、JAVA技術(shù)、下載到客戶端訪問(wèn)技術(shù)、ASP技術(shù)、ASP.NET技術(shù)、PHP技術(shù)等。訪問(wèn)Web數(shù)據(jù)庫(kù)的不同方法[9、17]實(shí)現(xiàn)www數(shù)據(jù)庫(kù)的方法很多,它不僅與操作系統(tǒng)有關(guān),而且與數(shù)據(jù)庫(kù)管理系統(tǒng)有關(guān)。主要方法有以下幾種:1、中間件技術(shù)數(shù)據(jù)庫(kù)中間件作為前端瀏覽器與后端效勞器間的一個(gè)橋梁,不僅可與數(shù)據(jù)庫(kù)相連接,也可以傳統(tǒng)的C/S環(huán)境下的的客戶端的應(yīng)用處理移植到中間層上,減輕客戶端的負(fù)擔(dān),這也是一種“瘦客戶端〞的技術(shù)。1.CGICGI(CommonGatewayInterface),即“通用網(wǎng)關(guān)接口〞,它是一個(gè)用于定義Web效勞器與外部程序之間通信方式的標(biāo)準(zhǔn),使得外部程序能夠生成HTML、圖像或者其它內(nèi)容。按照這種標(biāo)準(zhǔn)編制的CGI應(yīng)用程序由客戶端的Web頁(yè)面啟動(dòng),在Web效勞器的后臺(tái)執(zhí)行相應(yīng)的功能。CGI程序在開(kāi)發(fā)Web數(shù)據(jù)庫(kù)中的作用類(lèi)似于一個(gè)中介商,它在瀏覽器、Web效勞器和數(shù)據(jù)庫(kù)之間傳遞信息。CGI程序可以是效勞器上能運(yùn)行的任何文件,它可以是C、VB和JAVA等語(yǔ)言,甚至可以用一些描述性的語(yǔ)言編寫(xiě)。其應(yīng)用程序也較多,也比擬標(biāo)準(zhǔn)。但是CGI程序每次請(qǐng)求都必須重新啟動(dòng),效率低,速度慢。一般的CGI執(zhí)行必須先啟動(dòng)一個(gè)線程,當(dāng)多個(gè)用戶訪問(wèn)一個(gè)CGI程序時(shí),效勞器端為每個(gè)用戶產(chǎn)生一個(gè)線程,如果訪問(wèn)量很大的話,幾十萬(wàn)個(gè)用戶同時(shí)啟動(dòng)效勞器的CGI程序,將會(huì)消耗效勞器的大量資源,效勞器會(huì)因線程的增加而變慢,甚至導(dǎo)致效勞器崩潰。這是CGI的一個(gè)致命弱點(diǎn)。2.APIAPI(ApplicationProgrammingInterface),即“應(yīng)用程序接口〞。它由各種Web效勞器軟件提供,同數(shù)據(jù)庫(kù)系統(tǒng)的功能接口不盡相同。如Netscape和Microsoft公司推出的運(yùn)行于各自效勞器軟件的NSAPI和ISAPI,它們和webserver軟件處于相同的地址空間,效勞器進(jìn)程可直接調(diào)用這些API。所以,用API比用CGI的速度快得多,但NSAPI和ISAPI互不兼容,只能運(yùn)行于特定的效勞器與操作系統(tǒng)上.移植性差。2、JAVA技術(shù)用JAVA語(yǔ)言實(shí)現(xiàn)www數(shù)據(jù)庫(kù),該技術(shù)主要是作用于JDBC技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)。JDBC是一種標(biāo)準(zhǔn),其宗旨是讓各數(shù)據(jù)庫(kù)開(kāi)發(fā)商為JAVA程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)訪問(wèn)類(lèi)和接口。JDBC與JAVA的結(jié)合,使用戶可以很容易地把SQL語(yǔ)句傳送到任何關(guān)系數(shù)據(jù)庫(kù)中。JDBC才是實(shí)現(xiàn)與數(shù)據(jù)庫(kù)聯(lián)接和實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)操作的關(guān)鍵。但目前JDBC標(biāo)準(zhǔn)尚不完善,訪問(wèn)數(shù)據(jù)庫(kù)的速度慢,對(duì)硬件要求也高,在開(kāi)發(fā)大型復(fù)雜Web數(shù)據(jù)庫(kù)應(yīng)用時(shí),該方法顯得有點(diǎn)遜色。3、客戶端技術(shù)可以通過(guò)Web瀏覽器把應(yīng)用程序下載到客戶端運(yùn)行,在客戶端直接訪數(shù)據(jù)庫(kù),如Java,Applet,ActiveX等。客戶端用JavaScript語(yǔ)言來(lái)控制,但該技術(shù)功能有限,不能完全控制其過(guò)程,也無(wú)法勝任較復(fù)雜的www數(shù)據(jù)庫(kù)的開(kāi)發(fā)。4、PHP技術(shù)PHP(HypertextPreprocessor),類(lèi)似于IIS上的ASP,是一個(gè)HTML內(nèi)嵌式的語(yǔ)言,它幾乎支持所有的數(shù)據(jù)庫(kù),也可在多平臺(tái)上運(yùn)行,主要用在UNIX/Linux系統(tǒng)上,也支持WindowsNT版本。穩(wěn)定性能好,平安性高。但因它對(duì)不同數(shù)據(jù)庫(kù)操作所使用的函數(shù)不相同、故當(dāng)數(shù)據(jù)庫(kù)發(fā)生變化時(shí),改動(dòng)會(huì)非常大,并且PHP的安裝,尤其在IIS上的安裝很麻煩。5、ASP技術(shù)ASP是基于Web的一種編程技術(shù),可以輕松地實(shí)現(xiàn)對(duì)頁(yè)面內(nèi)容的動(dòng)態(tài)控制,根據(jù)不同的瀏覽者,顯示不同的頁(yè)面內(nèi)容。而瀏覽者一點(diǎn)覺(jué)察不出來(lái),就像為他專門(mén)制作的頁(yè)面一樣。有ADO(ActiveDatabaseObject,動(dòng)態(tài)數(shù)據(jù)庫(kù)對(duì)象)的支持,ASP對(duì)數(shù)據(jù)庫(kù)的操作非常得心應(yīng)手。你甚至可以像使用本地?cái)?shù)據(jù)庫(kù)那樣,管理遠(yuǎn)程主機(jī)上的數(shù)據(jù)庫(kù),對(duì)表格、記錄進(jìn)行各種操作。ASP著重于處理動(dòng)態(tài)網(wǎng)頁(yè)和Web數(shù)據(jù)庫(kù)的開(kāi)發(fā),編程靈活、簡(jiǎn)潔,具有較高的性能,是目前訪問(wèn)Web數(shù)據(jù)庫(kù)的最正確選擇。2.2.4ASP.net與以上開(kāi)發(fā)Web數(shù)據(jù)庫(kù)方式相比的優(yōu)勢(shì)ASP.net是一種建立在通用語(yǔ)言上的程序構(gòu)架,能被用于一臺(tái)Web效勞器來(lái)建立強(qiáng)大的Web應(yīng)用程序。ASP.net提供許多比現(xiàn)在的Web開(kāi)發(fā)模式強(qiáng)大的的優(yōu)勢(shì)。在性能和效率方面的優(yōu)越性源于它先進(jìn)的體系結(jié)構(gòu),ASP.net直接建立于Web效勞器中,并且是作為Web效勞器的一個(gè)效勞運(yùn)行,支持多用戶,多線程。其擁有強(qiáng)有力的會(huì)話管理機(jī)制,它可以實(shí)現(xiàn)各請(qǐng)求之間的信息共享,提高了效率。在平安性方面也作了細(xì)心的考慮,使得其更加平安可靠。ASP.NET與ASP無(wú)論在開(kāi)發(fā)語(yǔ)言、運(yùn)行機(jī)制還是開(kāi)發(fā)方式上都有很大的區(qū)別。ASP僅局限于使用腳本語(yǔ)言來(lái)開(kāi)發(fā),用戶給WEB頁(yè)中添加ASP代碼的方法與客戶端腳本中添加代碼的方法相同,導(dǎo)致代碼雜亂。而ASP.NET允許用戶選擇并使用功能完善的編程語(yǔ)言,也允許使用功能巨大的.NETFramework。ASP是解釋運(yùn)行的編程框架,所以執(zhí)行效率加較低。而ASP.NET是編譯性的編程框架,運(yùn)行是效勞器上的編譯好的公共語(yǔ)言運(yùn)行時(shí)庫(kù)代碼,可以利用早期綁定,實(shí)施編譯來(lái)提高效率。ASP把界面設(shè)計(jì)和程序設(shè)計(jì)混在一起,維護(hù)困難。ASP.NET把界面設(shè)計(jì)和程序設(shè)計(jì)以不同的文件別離開(kāi),復(fù)用性和維護(hù)性得到了提高。用微軟官員的話來(lái)說(shuō)就是:“……因特網(wǎng)的革命……從微軟的角度來(lái)講,我們就是要建設(shè)一個(gè)平臺(tái)來(lái)創(chuàng)立并且支持新一代的應(yīng)用?!覀儽仨氂幸惶淄ㄓ孟到y(tǒng)效勞來(lái)支持這樣的操作。這種觀點(diǎn)就說(shuō)明,我們還有下一個(gè)層次的開(kāi)展,也就是說(shuō)因特網(wǎng)下一步的開(kāi)展,它將使因特網(wǎng)的作用遠(yuǎn)遠(yuǎn)超越展現(xiàn)一個(gè)網(wǎng)站。[5、6]〞隨著Internet技術(shù)的開(kāi)展,開(kāi)發(fā)基于Web的應(yīng)用程序勢(shì)在必行,數(shù)據(jù)庫(kù)技術(shù)更是需要和Web技術(shù)相結(jié)合,才有更為廣闊的前景。ASP.net作為微軟推出的新興Web應(yīng)用程序開(kāi)發(fā)技術(shù),在數(shù)據(jù)庫(kù)應(yīng)用方面必將發(fā)揮越來(lái)越重要的作用,同時(shí)瀏覽器/效勞器模式的數(shù)據(jù)庫(kù)體系也將逐漸成為數(shù)據(jù)庫(kù)結(jié)構(gòu)的主流。故而本系統(tǒng)采用基于ASP.NET的以C#作為在該平臺(tái)開(kāi)發(fā)的主要實(shí)現(xiàn)語(yǔ)言進(jìn)行開(kāi)發(fā)。2.3本章小結(jié)本章首先介紹了數(shù)據(jù)庫(kù)運(yùn)行的三種不同的體系結(jié)構(gòu),即主機(jī)/終端結(jié)構(gòu)、客戶機(jī)/效勞器結(jié)構(gòu)、瀏覽器/效勞器結(jié)構(gòu),并詳細(xì)介紹了瀏覽器/效勞器的工作原理、工作流程及其在性能方面的優(yōu)勢(shì)。隨后,介紹了Web數(shù)據(jù)庫(kù)管理系統(tǒng)的概念,描述了其工作原理,并且討論了實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)的幾種不同方法,包括中間件技術(shù)(CGI和API)、JAVA技術(shù)、客戶端技術(shù)、ASP技術(shù)和PHP技術(shù)等。最后還分析、討論了ASP.net技術(shù)在性能方面的優(yōu)缺點(diǎn),通過(guò)分析比擬,得出了利用ASP.net技術(shù)來(lái)實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)的訪問(wèn)的優(yōu)勢(shì)。第三章系統(tǒng)分析與設(shè)計(jì)系統(tǒng)分析和設(shè)計(jì)是信息系統(tǒng)開(kāi)發(fā)的一個(gè)重要環(huán)節(jié)。本章將主要介紹一個(gè)基于WEB的B/S結(jié)構(gòu)的畢業(yè)設(shè)計(jì)管理系統(tǒng)的功能需求、總體框架、以及系統(tǒng)開(kāi)發(fā)原理等做系統(tǒng)的分析研究,并介紹系統(tǒng)所擁有的特點(diǎn)。3.1系統(tǒng)的功能需求該系統(tǒng)一般包括對(duì)選題的發(fā)布、更新、刪除,學(xué)生畢業(yè)設(shè)計(jì)文檔信息、導(dǎo)師文檔信息的上傳〔在指導(dǎo)時(shí)間前才可提交〕和相關(guān)信息的發(fā)布、查詢、更新、輸出等功能。如果人工直接操作的話,工作量將十分龐大,特別是,如果學(xué)生人數(shù)有幾千或上萬(wàn)時(shí),人工操作將變得相當(dāng)繁雜。用計(jì)算機(jī)可使人們從繁重而又單調(diào)的工作中解脫出來(lái),僅用一些簡(jiǎn)單的操作便可及時(shí)準(zhǔn)確地獲得需要的信息。畢業(yè)設(shè)計(jì)管理系統(tǒng)是一個(gè)為適應(yīng)當(dāng)前畢業(yè)設(shè)計(jì)管理工作的需求而設(shè)計(jì)開(kāi)發(fā)的軟件系統(tǒng)。該系統(tǒng)的前臺(tái)采用的是MSVisualStudio.NET2003開(kāi)發(fā)系統(tǒng),Dreamweaver做頁(yè)面設(shè)計(jì),后臺(tái)數(shù)據(jù)庫(kù)采用的是SQLServer2000數(shù)據(jù)庫(kù)。對(duì)系統(tǒng)功能的規(guī)定:該系統(tǒng)的角色是學(xué)生、教師〔導(dǎo)師〕和系統(tǒng)管理員。學(xué)生和教師是系統(tǒng)的用戶,而系統(tǒng)管理員是系統(tǒng)管理者,雖然系統(tǒng)管理者也是一個(gè)用戶,但并不影響本系統(tǒng)的功能。該系統(tǒng)的分析可以用UML來(lái)描述,如下列圖3.1所示。3.2系統(tǒng)介紹總體框架本系統(tǒng)采用的是根本的B/S結(jié)構(gòu)模式開(kāi)發(fā),其具體的框架如下列圖3.2所示:系統(tǒng)功能特點(diǎn)1、操作簡(jiǎn)單、界面友好:完全控件式的頁(yè)面布局,使得所有的錄入工作更簡(jiǎn)便;另外,跟蹤出現(xiàn)的提示信息也讓用戶隨時(shí)清楚自己的操作情況。2、即時(shí)可見(jiàn):對(duì)操作的處理〔包括上傳、修改、刪除等〕將立即在頁(yè)面的對(duì)應(yīng)欄目顯示出來(lái),到達(dá)"即時(shí)發(fā)布、即時(shí)見(jiàn)效"的功能。3、功能完善:包括常見(jiàn)網(wǎng)站的管理的各個(gè)方面:錄入、瀏覽、刪除、修改、檢索等各個(gè)方面,完整地實(shí)現(xiàn)了系統(tǒng)對(duì)各項(xiàng)工作的管理要求。4、方便移植:針對(duì)不同的學(xué)院,只需要稍作修改就可以開(kāi)發(fā)出適合本學(xué)院特點(diǎn)的畢業(yè)設(shè)計(jì)管理系統(tǒng)。3.3系統(tǒng)設(shè)計(jì)系統(tǒng)的開(kāi)發(fā)原理.1基于ASP.NET技術(shù)的系統(tǒng)結(jié)構(gòu)模型ASP.NET結(jié)構(gòu)是一個(gè)三層系統(tǒng):UI層、業(yè)務(wù)邏輯層和數(shù)據(jù)層,如圖3.3所示。UI層負(fù)責(zé)與用戶交互,接收用戶的輸入并將效勞器端傳來(lái)的數(shù)據(jù)呈現(xiàn)給客戶。業(yè)務(wù)邏輯層負(fù)責(zé)接收瀏覽器傳來(lái)的請(qǐng)求并將請(qǐng)求傳給數(shù)據(jù)層,同時(shí)將請(qǐng)求處理結(jié)果發(fā)給瀏覽器。它由Web表單、XMLWeb效勞和組件效勞組成。其中Web表單是ASP.NET應(yīng)用程序的核心所在,它是向客戶呈現(xiàn)數(shù)據(jù)和信息的根底,也是響應(yīng)和處理客戶與顯示的Web表單交互生成的信息和數(shù)據(jù)的根底。數(shù)據(jù)層是通過(guò)ADO.NET操縱數(shù)據(jù)為事務(wù)邏輯層提供數(shù)據(jù)效勞,如存儲(chǔ)數(shù)據(jù)操作結(jié)果、返回?cái)?shù)據(jù)檢索結(jié)果等。.2ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)的原理與數(shù)據(jù)庫(kù)相連,ADO.NET提供了如下3種方式:通過(guò)ODBC相連;通過(guò)OLEDB相連;直接與SQLServer相連。3種方式由于應(yīng)用層次的差異,使得效率由低到高,獨(dú)立性由高到低。對(duì)于相連數(shù)據(jù)庫(kù)的數(shù)據(jù)處理,也有2種方式,即一種是通過(guò)DataSet來(lái)隔離異構(gòu)的數(shù)據(jù)源,另一種是以流方式從數(shù)據(jù)源讀取(DataReader方式)。傳統(tǒng)的應(yīng)用程序是通過(guò)先建立到數(shù)據(jù)庫(kù)的連接,在程序的整個(gè)運(yùn)行過(guò)程中維護(hù)連接的方式來(lái)設(shè)計(jì)的。ASP.NET采取了斷開(kāi)連接方式的數(shù)據(jù)結(jié)構(gòu)。當(dāng)瀏覽器向Web效勞器請(qǐng)求網(wǎng)頁(yè)時(shí),效勞器處理這個(gè)請(qǐng)求,并將所請(qǐng)求的網(wǎng)頁(yè)發(fā)送給瀏覽器,然后連接就被斷開(kāi),直到瀏覽器發(fā)出下一個(gè)請(qǐng)求。ADO.NET的另一個(gè)創(chuàng)新是引入了數(shù)據(jù)集(Dataset)。一個(gè)數(shù)據(jù)集是內(nèi)存中提供數(shù)據(jù)關(guān)系圖的高速緩沖區(qū)。數(shù)據(jù)集對(duì)數(shù)據(jù)源一無(wú)所知,它們可以由程序或通過(guò)從數(shù)據(jù)倉(cāng)庫(kù)中調(diào)入數(shù)據(jù)而被生成、填充。不管數(shù)據(jù)從何處獲取,數(shù)據(jù)集都是通過(guò)使用同樣的程序模板而被操作的,并且它使用相同的潛在的數(shù)據(jù)緩沖區(qū)。系統(tǒng)的功能設(shè)計(jì)本系統(tǒng)的主要功能結(jié)構(gòu)如下:該畢業(yè)管理系統(tǒng)可以在Windows2000Server操作系統(tǒng)平臺(tái)上運(yùn)行,Web效勞器為IIS,數(shù)據(jù)庫(kù)效勞器為MicrosoftSQLServer2000,開(kāi)發(fā)工具采用的MicrosoftVisualStudio.NET和DreamWeaver。圖3.4給出系統(tǒng)的功能結(jié)構(gòu)圖。其工作流程為:用戶登錄通過(guò)權(quán)限判斷,游客只能瀏覽首頁(yè)內(nèi)容,注冊(cè)用戶除了可以完成游客的操作外,還可以閱讀和查詢新聞、下載相關(guān)資料、進(jìn)入學(xué)生〔或教師〕管理模塊進(jìn)行上傳、修改和刪除等操作。注冊(cè)用戶除系統(tǒng)管理員外只能對(duì)自己錄入的內(nèi)容進(jìn)行刪改操作。系統(tǒng)管理員具有最高權(quán)限,包括審核注冊(cè)用戶信息、發(fā)布信息等。系統(tǒng)的總體設(shè)計(jì)本系統(tǒng)的用戶通過(guò)首頁(yè),進(jìn)入登陸頁(yè)面,通過(guò)用戶身份驗(yàn)證〔系統(tǒng)根據(jù)用戶權(quán)限〕進(jìn)入不同的管理頁(yè)面,用戶通過(guò)管理頁(yè)面進(jìn)行具體的操作。如圖3.5所示:3.4系統(tǒng)的詳細(xì)設(shè)計(jì)系統(tǒng)的主要功能是通過(guò)幾個(gè)功能模塊來(lái)實(shí)現(xiàn)的。具體的設(shè)計(jì)過(guò)程如下:1、系統(tǒng)登錄:該模塊負(fù)責(zé)將用戶分為學(xué)生、教師和管理員來(lái)實(shí)現(xiàn)用戶權(quán)限的管理。2、信息發(fā)布模塊主要包括以下:〔1〕信息瀏覽〔這里的信息包括新聞公告、規(guī)章制度、設(shè)計(jì)安排、推薦范文、表格下載、優(yōu)秀論文、課題的發(fā)布等〕:該模塊負(fù)責(zé)分頁(yè)列出網(wǎng)站所有的信息,包括標(biāo)題、類(lèi)型、來(lái)源部門(mén)字段及發(fā)布日期,每條新聞的標(biāo)題被做成一個(gè)超鏈接,點(diǎn)擊它們就能跳轉(zhuǎn)頁(yè)面進(jìn)行信息閱讀。〔2〕信息閱讀:在其他頁(yè)面中點(diǎn)擊標(biāo)題鏈接即進(jìn)入信息閱讀頁(yè)面,此時(shí),每條信息的詳細(xì)信息將被取出,包括內(nèi)容、標(biāo)題、關(guān)鍵字等,并按照相對(duì)固定的格式放置在頁(yè)面的不同區(qū)域,所有信息使用大致相同的頁(yè)面布局,只是各字段對(duì)應(yīng)的內(nèi)容不同而已?!?〕信息查詢:該模塊提供了信息查詢功能,輸入待查找的內(nèi)容及選定分類(lèi)信息可以快速地找到符合條件的信息,并輸出查詢結(jié)果?!?〕信息管理:該模塊負(fù)責(zé)分頁(yè)羅列管理員曾發(fā)布過(guò)且未刪除的信息,并可以對(duì)該條信息進(jìn)行刪除、修改。此信息除系統(tǒng)管理員外其他用戶不具有對(duì)該信息的處理權(quán)限〔除教師有發(fā)布選題的權(quán)限外〕?!?〕信息錄入和修改:管理員錄入一條信息所需要的內(nèi)容,包含標(biāo)題、關(guān)鍵字、類(lèi)型、來(lái)源部門(mén)、發(fā)布日期等,同時(shí)從登錄模塊得到用戶名,這些信息將被寫(xiě)入數(shù)據(jù)庫(kù)中保存。該模塊還負(fù)責(zé)編輯狀態(tài)下的更新,這時(shí),它將根據(jù)取得的Info_ID字段值對(duì)頁(yè)面控件初始化。下面以系統(tǒng)登錄頁(yè)面的編寫(xiě)為例給出主要事件和函數(shù),說(shuō)明該系統(tǒng)的開(kāi)發(fā)過(guò)程。3、文檔上傳:該模塊負(fù)責(zé)所有用戶的文檔上交工作。每個(gè)用戶注冊(cè)后有自己?jiǎn)为?dú)的文件夾,登陸后上傳的文檔〔在指定時(shí)間前上傳〕將會(huì)被保存在此文件夾中。4、消息處理:主要負(fù)責(zé)各個(gè)用戶之間相互發(fā)送消息使用。用戶可輸入對(duì)方的用戶名發(fā)送消息給對(duì)方。5、用戶注冊(cè):包括學(xué)生和教師的注冊(cè)〔需在指定時(shí)間段內(nèi)注冊(cè)或是直接由管理員添加〕。3.5本章小結(jié)本章主要運(yùn)用軟件工程的根本方法,介紹了畢業(yè)設(shè)計(jì)管理系統(tǒng)的功能需求,并對(duì)系統(tǒng)進(jìn)行了詳細(xì)的介紹和分析,給出了系統(tǒng)各個(gè)功能模塊的主要功能和設(shè)計(jì)指標(biāo),使整個(gè)系統(tǒng)的設(shè)計(jì)思路更加清晰,使用戶和軟件測(cè)試等人員對(duì)系統(tǒng)有了更加深刻的理解。為系統(tǒng)的具體實(shí)現(xiàn)和代碼的編寫(xiě)工作做了很好的鋪墊。第四章系統(tǒng)功能的實(shí)現(xiàn)《基于WEB的畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》的任務(wù)是對(duì)學(xué)校畢業(yè)設(shè)計(jì)管理中的工作進(jìn)行集中處理,使教師與教師之間,教師與學(xué)生之間能更快、更方便的交流,取代原來(lái)的〔或Email〕通知和聯(lián)系,材料紙的發(fā)送等諸多不便,也使學(xué)院能更好、更快的發(fā)布最新的關(guān)于畢業(yè)設(shè)計(jì)〔論文〕的相關(guān)信息和通知,及監(jiān)督學(xué)生畢業(yè)設(shè)計(jì)〔論文〕的完成情況和文檔上交情況。該系統(tǒng)主要內(nèi)容包括:用戶注冊(cè)〔包括學(xué)生和教師〕、教師出題、學(xué)生選題、文檔上交、相互留言等。通過(guò)這個(gè)系統(tǒng),可以使廣闊師生從繁雜瑣碎的事情中解脫出來(lái),專心投入畢業(yè)設(shè)計(jì)〔論文〕的工作中去,提高整個(gè)畢業(yè)設(shè)計(jì)工作的工作效率。4.1系統(tǒng)結(jié)構(gòu)和流程圖學(xué)生模塊的結(jié)構(gòu)學(xué)生在注冊(cè)通過(guò)管理員審核后,登錄系統(tǒng)進(jìn)行相關(guān)操作,包括根據(jù)自己的導(dǎo)師進(jìn)行畢業(yè)設(shè)計(jì)〔論文〕的選題或是自選課題,也可以瀏覽本站的所有信息,包括公告、工作安排等、下載設(shè)計(jì)表格、往年優(yōu)秀論文范文以及系統(tǒng)本站提供的其它資料下載等。修改自己的根本資料和密碼,以及上傳和管理自己的文檔資料,還可以給自己的導(dǎo)師留言等。其具體結(jié)構(gòu)如下列圖4.1所示:教師模塊的結(jié)構(gòu)教師用戶同樣需要注冊(cè),并通過(guò)管理員審核前方可登錄本系統(tǒng)進(jìn)行操作。具體包括如下操作:1、可以給自己所帶的學(xué)生出畢業(yè)設(shè)計(jì)〔論文〕的課題,供學(xué)生選擇。以及審核學(xué)生的選題情況。2、可以瀏覽本站的所有信息,包括通知、工作安排、規(guī)章制度等信息。3、可以查看自己學(xué)生的信息,以及文檔上交情況。4、上交自己的文檔和修改本人的資料、密碼等。5、可以給自己的學(xué)生、其他教師和管理員進(jìn)行留言,并查閱自己的留言。其具體如下列圖4.2所示:管理員模塊的結(jié)構(gòu)管理員擁有系統(tǒng)的最高權(quán)限,其權(quán)限包括對(duì)注冊(cè)用戶進(jìn)行審核、查看所有用戶的資料信息、對(duì)總體選題情況進(jìn)行查詢〔包括總體選題情況、已選情況和未選情況〕、監(jiān)督學(xué)生和教師的各種文檔上交情況、審核學(xué)生申請(qǐng)、發(fā)布學(xué)院最新消息和其他信息的添加、刪除和更新,上傳相關(guān)表格等,還可以對(duì)“系統(tǒng)內(nèi)容進(jìn)行設(shè)置〞、和“數(shù)據(jù)庫(kù)備份〞等管理權(quán)限。其具體結(jié)構(gòu)如下列圖4.3所示:4.2數(shù)據(jù)庫(kù)的設(shè)計(jì)和構(gòu)建數(shù)據(jù)庫(kù)設(shè)計(jì)是工程開(kāi)發(fā)中的系統(tǒng)設(shè)計(jì)中非常重要的一個(gè)關(guān)鍵環(huán)節(jié),之所以強(qiáng)調(diào)數(shù)據(jù)庫(kù)的重要性,是因?yàn)閿?shù)據(jù)庫(kù)設(shè)計(jì)就像在建設(shè)高樓大廈的根基一樣,如果設(shè)計(jì)不好,在后來(lái)的系統(tǒng)維護(hù)、變更和功能擴(kuò)充時(shí),甚至在系統(tǒng)開(kāi)發(fā)過(guò)程中,將會(huì)引起比擬大的問(wèn)題,會(huì)遇到非常大的困難,大量工作將會(huì)重新進(jìn)行。在本系統(tǒng)中所需要設(shè)計(jì)的數(shù)據(jù)庫(kù)表如下表4.1所示。序號(hào)數(shù)據(jù)庫(kù)表數(shù)據(jù)庫(kù)表存儲(chǔ)內(nèi)容1User存儲(chǔ)用戶根本信息2User_info存儲(chǔ)用戶詳細(xì)信息3admin存儲(chǔ)管理員信息4Infomation存儲(chǔ)新聞通知等信息5Massage存儲(chǔ)用戶之間互發(fā)的消息6Xuanti存儲(chǔ)選題信息7up_docunment存儲(chǔ)用戶上傳的文檔8Config存儲(chǔ)系統(tǒng)的信息設(shè)置9Mark存儲(chǔ)學(xué)生的成績(jī)下面將主要介紹關(guān)鍵數(shù)據(jù)表的數(shù)據(jù)庫(kù)設(shè)計(jì)的詳細(xì)說(shuō)明。存儲(chǔ)后臺(tái)用戶根本信息的數(shù)據(jù)庫(kù)表User如4.1所示。表4.2用戶根本信息表User序號(hào)字段名字段類(lèi)型說(shuō)明備注1User_IDnumeric(9)ID主鍵,唯一,非空2UsernameVarchar(16)用戶名唯一,非空3passwordVarchar(32)用戶密碼非空4realnameVarchar(10)真實(shí)姓名非空5sexchar(2)性別非空6departmentVarchar(20)所屬學(xué)院7questionVarchar(50)密碼提示問(wèn)題8answerVarchar(50)密碼提示問(wèn)題答案9validateVarchar(2)審核默認(rèn)鎖定10regtimedatetime(8)注冊(cè)時(shí)間非空11timeoverDatetime(8)到期時(shí)間非空12usertypeVarchar(10)等級(jí)權(quán)限非空13lastloginDatetime(8)最后登陸時(shí)間表4.3用戶詳細(xì)信息表User_info序號(hào)字段名字段類(lèi)型說(shuō)明備注1User_idnumeric(9)ID主鍵2UsernameVarchar(16)用戶名外鍵3classVarchar(20)班級(jí)學(xué)生項(xiàng)4numbervarchar(10)學(xué)號(hào)學(xué)生項(xiàng)5telephoneVarchar(16)6mobilephonenumeric(16)7emailVarchar(20)電子郵件8teacherVarchar(16)導(dǎo)師學(xué)生項(xiàng)9titleVarchar(50)所選課題學(xué)生項(xiàng)10ZhichengVarchar(10)職稱教師項(xiàng)11specialtyVarchar(20)專業(yè)用戶根本信息表保存的是后臺(tái)用戶的根本信息。其中“用戶名〞和“用戶密碼〞是用于以后登陸,為了不引起混亂,要求“用戶名〞在表中唯一;姓名、、電子郵件等是用戶的根本信息。表4.4管理員信息表admin序號(hào)字段名字段類(lèi)型說(shuō)明備注1Admin_idnumeric(9)編號(hào)主鍵,唯一,非空2Admin_usernameVarchar(16)用戶名唯一,非空3Admin_passwordVarchar(32)管理密碼非空4Admin_realnameVarchar(10)真實(shí)姓名非空5Admin_departVarchar(20)部門(mén)6Admin_mailVarchar(50)郵箱非空7Admin_levelVarchar(10)權(quán)限非空8Admin_validateVarchar(2)驗(yàn)證默認(rèn)已審9Admin_regtimeDatetime(8)注冊(cè)時(shí)間非空該表是用于保存系統(tǒng)管理人員的根本信息的,其中“管理員用戶名〞和“管理密碼〞是管理人員登陸系統(tǒng)進(jìn)行管理的通行證,為了不引起混亂,“用戶名〞在表中是唯一的。本系統(tǒng)的管理員分為兩類(lèi):一是總管理員,擁有最高權(quán)限;二是教學(xué)秘書(shū),擁有一般權(quán)限,如信息的發(fā)布等等。表4.5公告信息表Infomation序號(hào)字段名字段類(lèi)型說(shuō)明備注1Info_idnumeric(9)編號(hào)主鍵,唯一,非空2Info_titleVarchar(50)文章標(biāo)題非空3Info_contentVarchar(2048)文章內(nèi)容非空4Info_fromVarchar(16)文章來(lái)源非空5Info_classVarchar(16)文章分類(lèi)非空6Info_timeDatetime(8)添加時(shí)間非空7Info_upfilenameVarchar(50)上傳文件名8Info_upfilepathVarchar(100)文件路徑公告信息主要包括以下幾個(gè)方面:學(xué)校關(guān)于畢業(yè)設(shè)計(jì)方面的規(guī)章制度、設(shè)計(jì)安排,以及推薦范文、表格下載和歷年的優(yōu)秀論文,和最新的公告和通知等方面內(nèi)容。該項(xiàng)只有管理員才有權(quán)限進(jìn)行添加。表4.6消息管理表Massage序號(hào)字段名字段類(lèi)型說(shuō)明備注1M_idnumeric(9)編號(hào)主鍵,唯一,非空2M_titleVarchar(50)消息標(biāo)題非空3M_contentVarchar(200)消息內(nèi)容非空4M_fromVarchar(16)發(fā)送人外鍵,非空5M_toVarchar(16)收信人外鍵,非空6M_readVarchar(2)是否已讀默認(rèn)“未讀〞7M_timeDatetime(8)發(fā)送時(shí)間非空8M_upfilenameVarchar(50)附件名9M_upfilepathVarchar(100)附件地址此表是用來(lái)紀(jì)錄用戶之間相互發(fā)送的消息等信息,便于用戶間的聯(lián)系。表4.7選題信息表Xuanti序號(hào)字段名字段類(lèi)型說(shuō)明備注1Xt_idnumeric(9)編號(hào)主鍵,唯一,非空2Xt_titleVarchar(50)選題標(biāo)題非空3Xt_intrVarchar(100)選題簡(jiǎn)介4Xt_fromVarchar(16)來(lái)源外鍵,非空5Xt_addtimeDatetime(8)添加時(shí)間非空該表是用于紀(jì)錄學(xué)院或教師所要求的論文的課題,供畢業(yè)生進(jìn)行選擇。表4.8上傳文檔表up_docunment序號(hào)字段名字段類(lèi)型說(shuō)明備注1file_idnumeric(9)編號(hào)主鍵,唯一,非空2file_titleVarchar(50)文檔標(biāo)題非空3file_urlVarchar(100)文檔存放路徑非空4file_fromVarchar(16)來(lái)源外鍵,非空5file_addtimeDatetime(8)添加時(shí)間非空該表是用于紀(jì)錄用戶上傳文檔的保存信息的。表4.9系統(tǒng)信息設(shè)置表Config序號(hào)字段名字段類(lèi)型說(shuō)明備注1sitenameVarchar(50)站點(diǎn)名稱非空2siteurlVarchar(50)站點(diǎn)路徑非空3FilepathVarchar(50)文件保存路徑默認(rèn)“upfile〞4ImgpathVarchar(50)圖片保存路徑默認(rèn)“upimg〞5T_openChar(10)教師是否開(kāi)放注冊(cè)6S_openChar(10)學(xué)生是否開(kāi)放注冊(cè)7S_endtimeDatetime(8)學(xué)生賬戶過(guò)期時(shí)間8T_endtimeDatetime(8)教師賬戶過(guò)期時(shí)間該表是用于紀(jì)錄系統(tǒng)的根底設(shè)置信息的。4.3與數(shù)據(jù)庫(kù)的連接數(shù)據(jù)訪問(wèn)涉及四個(gè)主要的組件:Web應(yīng)用程序(ASP.NET)、數(shù)據(jù)層(ADO.NET)、數(shù)據(jù)提供程序,以及真正的數(shù)據(jù)源。這些組件之間的關(guān)系構(gòu)成了所有數(shù)據(jù)識(shí)別Web應(yīng)用程序的根底結(jié)構(gòu)。ADO.NET是對(duì)傳統(tǒng)ADO的改良,可用于創(chuàng)立分布式的數(shù)據(jù)共享應(yīng)用程序。它是一種高級(jí)的應(yīng)用程序編程接口,面向支持對(duì)數(shù)據(jù)進(jìn)行斷開(kāi)連接訪問(wèn)的松耦合的、n層的、基于Internet的應(yīng)用程序。它是Microsoft.NETFramework的核心組件。數(shù)據(jù)存儲(chǔ)始于堆棧底部,提供了整個(gè)數(shù)據(jù)訪問(wèn)體系結(jié)構(gòu)的根底。通過(guò)ADO.NET、ASP.NET的新增控件,Web應(yīng)用程序能夠訪問(wèn)多種數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù),包括關(guān)系數(shù)據(jù)庫(kù)、XML文件、Web效勞、平面文件,或諸如MicrosoftExcel這樣的電子數(shù)據(jù)表程序中的數(shù)據(jù)。下表顯示組成ADO.NET數(shù)據(jù)提供程序的四個(gè)核心對(duì)象:表4.10一個(gè)ADO.NET數(shù)據(jù)提供程序的核心對(duì)象對(duì)象描述Connection建立到指定資源的連接Command對(duì)一個(gè)數(shù)據(jù)源執(zhí)行命令。公開(kāi)Parameters,在Connection的Transaction范圍內(nèi)執(zhí)行。DataReader從一個(gè)數(shù)據(jù)源讀取只進(jìn)的只讀數(shù)據(jù)流。DataAdapter填充一個(gè)DataSet,解析數(shù)據(jù)源的更新。本系統(tǒng)為方便數(shù)據(jù)庫(kù)的更改,主要通過(guò)使用SQLConnection對(duì)象連接一個(gè)數(shù)據(jù)庫(kù)〔建立一個(gè)類(lèi)DB〕,代碼如下://建立翻開(kāi)數(shù)據(jù)庫(kù)連接publicstaticSqlConnectiongetConnection(){ stringConnectionString=ConfigurationSettings.AppSettings.Get("DBPath"); SqlConnectionmyConn=newSqlConnection(ConnectionString); try { myConn.Open(); returnmyConn; } catch(Exceptionee) { throwee; }}在Web.Config文件中添加如下代碼,以方便用戶在不同計(jì)算機(jī)上運(yùn)行本軟件時(shí),對(duì)數(shù)據(jù)庫(kù)進(jìn)行必要的修改。<appSettings><!--SQL2000--><addkey="DBPath"value="server=.;uid=sa;pwd=;database=GpmsDB"/></appSettings>這里server=.表示系統(tǒng)運(yùn)行在本地SQLServer效勞器上,如果運(yùn)行在其他效勞器上運(yùn)行那么可將其相應(yīng)的效勞器名稱即可。Uid和pwd表示的是SQL效勞器的用戶名和密碼,而database那么表示系統(tǒng)所用數(shù)據(jù)庫(kù)的名稱,這里是以SQL2000數(shù)據(jù)庫(kù)為例。如果是SQL2005Express數(shù)據(jù)庫(kù)那么將其改為如下即可:<!--SQL2005Express--><!--<addkey="DBPath"value="DataSource=.\SQLExpress;IntegratedSecurity=True;UserInstance=True;AttachDBFilename=|DataDirectory|Gpms_Data.mdf"/>-->4.4主要功能分析與實(shí)現(xiàn)用戶登陸功能的實(shí)現(xiàn)在一個(gè)系統(tǒng)中,用戶登錄驗(yàn)證是非常重要的,要考慮的問(wèn)題也比擬多,比方該用戶是否存在、用戶名和密碼是否正確等等,在本系統(tǒng)中我們用如下代碼進(jìn)行用戶登錄的實(shí)現(xiàn)。//IsRegUserOk函數(shù):判斷用戶是否已經(jīng)注冊(cè)和密碼是否正確publicboolIsRegUserOk(){stringname=TextBoxName.Text.Trim();stringpwd=TextBoxPassword.Text.Trim();SqlConnectionconn=DB.getConnection();//建立/翻開(kāi)數(shù)據(jù)庫(kù)連接stringsql="select*fromuserswherename='"+username+"'";//建立sql字符串SqlDataReaderdr;SqlCommandcmd=newSqlCommand(sql,conn);dr=cmd.ExecuteReader();//保存用戶注冊(cè)與否信息boolisRegUserExist=dr.Read();dr.Close();//關(guān)閉DataReader//取得用戶名的密碼stringsqlBoth="select*fromuserwherename='"+username+"'";sqlBoth+="andpwd='"+pwd+"'";SqlCommandcmdBoth=newSqlCommand(sqlBoth,conn);SqlDataReaderdrBoth;drBoth=cmdBoth.ExecuteReader();//保存用戶名+密碼同時(shí)存在信息boolisBothExist=drBoth.Read();//關(guān)閉DataReaderdrBoth.Close();conn.Close();//判斷用戶是否注冊(cè)if(!isRegUserExist){Response.Write("<script>alert('此用戶尚未注冊(cè)!')");returnfalse;}//判斷用戶名與密碼是否一致elseif(!isBothExist){Response.Write("<script>alert('用戶名和密碼不一致,不能進(jìn)入!')");returnfalse;}elsereturntrue;}文件上傳功能代碼在開(kāi)發(fā)ASP.NET工程時(shí),經(jīng)常遇到要上傳文件的情況,出于平安考慮,我們不但要對(duì)上傳文件的擴(kuò)展名進(jìn)行判斷,同時(shí)還要防止上傳文件的重名現(xiàn)象等問(wèn)題,所以在本系統(tǒng)中采用如下代碼進(jìn)行實(shí)現(xiàn)。privatevoidBtnUpfile_Click(objectsender,System.EventArgse){stringfiletype=upload.PostedFile.FileName.Substring(upload.PostedFile.FileName.LastIndexOf(".")).ToLower();if(filetype==".doc"||filetype==".txt"||filetype==".rtf"||filetype==".rar"||filetype==".zip"||filetype==".xls"){ stringfilename=DateTime.Now.ToShortDateString().Trim()+DateTime.Now.ToShortTimeString().Replace(":","").Trim()+filetype; stringserverFilePath=Server.MapPath("UpFile")+"\\"+filename; upload.PostedFile.SaveAs(serverFilePath); Session["upfilename"]=upload.PostedFile.FileName.Substring(upload.PostedFile.FileName.LastIndexOf("\\")+1).ToString(); Session["upfilepath"]="UpFile\\"+filename; Response.Write("成功上傳到:"+serverFilePath); }else {Response.Write("<scriptlanguage=javascript>alert('您只能上傳:.doc,.txt,.rtf,.rar,.zip,.xls格式的文件!');</script>"); }}數(shù)據(jù)庫(kù)備份的實(shí)現(xiàn)對(duì)于一個(gè)系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)的平安和穩(wěn)定對(duì)整個(gè)系統(tǒng)的平安運(yùn)行是非常重要的。所以數(shù)據(jù)庫(kù)備份就非常有必要的,尤其是像這樣一個(gè)存儲(chǔ)了大量學(xué)生和教師畢業(yè)設(shè)計(jì)〔論文〕重要信息的系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)備份將是相當(dāng)有必要的。privatevoidbtnBackup_Click(objectsender,System.EventArgse){ try { SqlConnectionconn=DB.getConnection(); stringfilename=txtFileName.Text.Trim(); stringpath=Server.MapPath("DataBackup")+"\\"+filename; SqlCommandcmd=newSqlCommand(); cmd.Connection=conn; stringiSql="backupdatabase[Gpms]todisk='"+path+"'"; cmd.CommandText=iSql; cmd.ExecuteNonQuery(); Response.Write("<scriptlanguage=javascripttype=text/javascript>alert('數(shù)據(jù)庫(kù)備份成功!');</script>");}catch(SqlExceptionex) { Response.Write("<scriptlanguage=javascripttype=text/javascript>alert('"+ex.Message+"');</script>"); }}頁(yè)面顯示及操作的實(shí)現(xiàn)整個(gè)系統(tǒng)內(nèi)容的顯示和管理操作〔如新聞公告、表格下載等的頁(yè)面顯示和操作維護(hù)〕,在本系統(tǒng)中主要采用DataGrid、DataSet等控件來(lái)實(shí)現(xiàn)。DataGrid控件可以顯示表格數(shù)據(jù)而且還可以支持?jǐn)?shù)據(jù)的選擇、排序、分頁(yè)及編輯。默認(rèn)情況下,DataGrid為數(shù)據(jù)源(AutoGenerateColumns=true)中的每個(gè)字段生成一個(gè)BoundColumn。數(shù)據(jù)中的每個(gè)字段按照在數(shù)據(jù)中出現(xiàn)的順序呈現(xiàn)在單獨(dú)的列中。字段名稱顯示在網(wǎng)格的列標(biāo)題上,而值呈現(xiàn)在文本標(biāo)簽中。默認(rèn)格式應(yīng)用于非字符串值。我們可以直接綁定到SqlDataReader上來(lái)顯示數(shù)據(jù),我們可以先聲明SqlCommand,SqlCommand公開(kāi)返回SqlDataReader的ExecuteReader方法,當(dāng)使用SqlCommand時(shí),必須顯式翻開(kāi)和關(guān)閉SqlConnection。調(diào)用ExecuteReader后,SqlDataReader可以綁定到ASP.NET效勞器控件。也可以使用SqlDataAdapter對(duì)象執(zhí)行參數(shù)化選擇,其代碼如下例將一個(gè)用戶表綁定到名為DGuser的DataGrid上所示:privatevoidBindtoDG(){SqlConnectionconn=DB.getConnection();//翻開(kāi)一個(gè)數(shù)據(jù)庫(kù)對(duì)象stringsql="select*fromUsers";//定義一個(gè)SQL字符串SqlDataAdaptersda=newSqlDataAdapter();sda.SelectCommand=newSqlCommand(sql,conn);DataSetds=newDataSet();sda.Fill(ds,"Users");this.DGuser.DataKeyField="user_id";this.DGuser.DataSource=ds.Tables["Users"];this.DGuser.DataBind();//綁定對(duì)象conn.Close();//關(guān)閉數(shù)據(jù)庫(kù)}4.5平安控制技術(shù)Web窗體框架包含一組驗(yàn)證效勞器控件,這些控件提供易用但功能強(qiáng)大的方法檢查輸入窗體的錯(cuò)誤,并在必要時(shí)向用戶顯示消息,這樣可以提高用戶輸入數(shù)據(jù)的正確性和可靠性,防止因?yàn)檩斎脲e(cuò)誤數(shù)據(jù)而使系統(tǒng)出現(xiàn)不必要的錯(cuò)誤。同時(shí)Web效勞器不僅要為用戶設(shè)置登錄密碼,以限制用戶查看、運(yùn)行和操作ASP.NET頁(yè)面的方式,還應(yīng)對(duì)目錄有訪問(wèn)控制,可限制特定人對(duì)特定目錄的訪問(wèn)。如某特定學(xué)生只能訪問(wèn)存放有自己文檔的目錄。另外,系統(tǒng)還對(duì)用戶的登陸密碼全部采用了32位的MD5加密技術(shù)進(jìn)行加密。管理員或者超級(jí)管理員都看不到用戶的真實(shí)密碼。并且比起一般MD5加密算法更加平安可靠。采用Session和Cokies等技術(shù)對(duì)非登陸用戶進(jìn)行了相應(yīng)的處理。屏蔽了直接輸入地址訪問(wèn)系統(tǒng)的后臺(tái)管理頁(yè)面以及通過(guò)外部鏈接地址訪問(wèn)本系統(tǒng)的后臺(tái)管理頁(yè)面。尤其是非注冊(cè)用戶將只能瀏覽網(wǎng)站首頁(yè)內(nèi)容,而不能瀏覽其他內(nèi)容或下載相關(guān)資料。4.6本章小結(jié)本章主要介紹了畢業(yè)設(shè)計(jì)管理系統(tǒng)的學(xué)生模塊、教師模塊和管理員模塊的結(jié)構(gòu)設(shè)計(jì),以及討論了整個(gè)系統(tǒng)的主要數(shù)據(jù)庫(kù)結(jié)構(gòu)參數(shù)及其構(gòu)建和連接訪問(wèn)的實(shí)現(xiàn)。著重講述了該系統(tǒng)的主要功能模塊的代碼實(shí)現(xiàn),并介紹了系統(tǒng)主要采用的平安控制技術(shù)。第五章結(jié)束語(yǔ)基于Web的高校畢業(yè)設(shè)計(jì)管理系統(tǒng)有著廣闊的前景,必將對(duì)傳統(tǒng)管理模式產(chǎn)生深遠(yuǎn)影響。本文從計(jì)算機(jī)學(xué)科的兩個(gè)重要領(lǐng)域—計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)出發(fā),分析了Web數(shù)據(jù)庫(kù)及ASP技術(shù)在畢業(yè)設(shè)計(jì)管理系統(tǒng)中的應(yīng)用。本文的主要工作如下:1、探討了數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)所經(jīng)歷的主機(jī)/終端—客戶機(jī)/效勞器—瀏覽器/效勞器模式,重點(diǎn)討論了B/S結(jié)構(gòu)的工作原理及其特點(diǎn),分析了實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)的不同方法,其中有中間件技術(shù)(CGI和API),Java技術(shù)、客戶端下載、ASP技術(shù)、PHP技術(shù),客觀的分析了它們的優(yōu)缺點(diǎn)。經(jīng)討論分析可知,ASP.net技術(shù)無(wú)論是在操作的可行性和方便性方面,還是在性能上,都是一種實(shí)現(xiàn)Web數(shù)據(jù)庫(kù)的很好方法。2、探討了運(yùn)用軟件工程的根本原理去分析和設(shè)計(jì)實(shí)現(xiàn)畢業(yè)設(shè)計(jì)管理系統(tǒng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小班秋游活動(dòng)策劃方案(3篇)
- 2025年大學(xué)車(chē)輛工程(汽車(chē)法規(guī))試題及答案
- 2025年大學(xué)大三(酒店管理)酒店餐飲管理試題及答案
- 2025年中職(烹飪工藝與營(yíng)養(yǎng))冷菜制作綜合測(cè)試題及答案
- 2025年高職種子科學(xué)與工程(種子科學(xué)與工程)試題及答案
- 2025年大學(xué)短視頻應(yīng)用(應(yīng)用技術(shù))試題及答案
- 2025年大學(xué)醫(yī)學(xué)心理學(xué)(醫(yī)學(xué)心理基礎(chǔ))試題及答案
- 2025年中職(寵物養(yǎng)護(hù)與經(jīng)營(yíng))寵物護(hù)理技術(shù)試題及答案
- 2025年高職包裝工程(包裝技術(shù))試題及答案
- 2026年能源化學(xué)工程(能源化學(xué))考題及答案
- 戶外電源技術(shù)講解
- 立體停車(chē)設(shè)備質(zhì)量控制管理文件范例
- 教學(xué)能力大賽備賽講解
- 六年級(jí)語(yǔ)文閱讀理解之托物言志(知識(shí)梳理技法點(diǎn)撥例文分析)(含答案)
- 2025秋季學(xué)期國(guó)開(kāi)電大法律事務(wù)??啤秳趧?dòng)與社會(huì)保障法》期末紙質(zhì)考試總題庫(kù)
- DB31∕T 1564-2025 企業(yè)實(shí)驗(yàn)室危險(xiǎn)化學(xué)品安全管理規(guī)范
- 維修基金管理辦法新疆
- 企業(yè)安全生產(chǎn)培訓(xùn)檔案
- 工程機(jī)械安全操作規(guī)程
- 《移動(dòng)通信技術(shù)》考試題庫(kù)
- QGDW1168-2013輸變電設(shè)備狀態(tài)檢修試驗(yàn)規(guī)程
評(píng)論
0/150
提交評(píng)論