系統(tǒng)設(shè)計(jì)類畢業(yè)論文_第1頁
系統(tǒng)設(shè)計(jì)類畢業(yè)論文_第2頁
系統(tǒng)設(shè)計(jì)類畢業(yè)論文_第3頁
系統(tǒng)設(shè)計(jì)類畢業(yè)論文_第4頁
系統(tǒng)設(shè)計(jì)類畢業(yè)論文_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、智能跟蹤技術(shù)在網(wǎng)絡(luò)教學(xué)中的應(yīng)用作 者 姓 名 王旭東 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師姓名 鄭玉東 專業(yè)技術(shù)職務(wù) 講師 山東輕工業(yè)學(xué)院本科畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)(論文),是本人在指導(dǎo)教師的指導(dǎo)下獨(dú)立研究、撰寫的成果。設(shè)計(jì)中引用他人的文獻(xiàn)、數(shù)據(jù)、圖件、資料,均已在設(shè)計(jì)中加以說明,除此之外,本設(shè)計(jì)不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中作了明確說明并表示了謝意。本聲明的法律結(jié)果由本人承擔(dān)。 畢業(yè)設(shè)計(jì)作者簽名: 年 月 日山東輕工業(yè)學(xué)院關(guān)于畢業(yè)設(shè)計(jì)(論文)使用授權(quán)的說明本畢業(yè)設(shè)計(jì)(論文)作者完全了解學(xué)校有關(guān)保留

2、、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:學(xué)校有權(quán)保留、送交設(shè)計(jì)的復(fù)印件,允許設(shè)計(jì)被查閱和借閱,學(xué)校可以公布設(shè)計(jì)(論文)的全部或部分內(nèi)容,可以采用影印、掃描等復(fù)制手段保存本設(shè)計(jì)。指導(dǎo)教師簽名: 畢業(yè)設(shè)計(jì)作者簽名: 年 月 日 年 月 日目 錄摘要IIIABSTRACTIV第一章前言11.1網(wǎng)絡(luò)教學(xué)意義和發(fā)展?fàn)顩r11.1.1網(wǎng)絡(luò)教學(xué)的意義11.1.2國內(nèi)外網(wǎng)絡(luò)教學(xué)的發(fā)展?fàn)顩r11.2網(wǎng)絡(luò)教學(xué)平臺系統(tǒng)建設(shè)21.2.1 系統(tǒng)建設(shè)原則21.2.2系統(tǒng)建設(shè)目標(biāo)2第二章網(wǎng)絡(luò)教學(xué)平臺的相關(guān)技術(shù)介紹和分析32.1網(wǎng)站制作環(huán)境ASP32.1.1ASP概述32.1.2ASP簡介32.1.3ASP技術(shù)與傳統(tǒng)靜態(tài)主頁的區(qū)別32

3、.1.4ASP的工作原理32.1.5ASP頁面的結(jié)構(gòu)42.1.6ASP的特點(diǎn)42.1.7ASP技術(shù)的應(yīng)用前景52.2系統(tǒng)數(shù)據(jù)庫SQL Server62.1.1SQL Server概述62.2.2SQL Server簡介62.2.3SQL Server 數(shù)據(jù)平臺包括以下工具:62.2.4影響SQL Server數(shù)據(jù)庫性能的因素72.2.5數(shù)據(jù)庫的設(shè)計(jì)72.2.6索引的設(shè)計(jì)92.2.7查詢語句優(yōu)化102.2.8操作環(huán)境優(yōu)化112.3基于ADO的SQL Server數(shù)據(jù)庫訪問技術(shù)112.3.1ADO簡介112.3.2創(chuàng)建ADO與SQL Server數(shù)據(jù)庫的連接122.3.3使用Recordset 對

4、象遍歷SQL Server數(shù)據(jù)庫132.3.4使用Recordset 對象更新SQL Server 數(shù)據(jù)庫142.4系統(tǒng)編程語言:VBScript15第三章 需求分析173.1需求分析的目的173.2本系統(tǒng)的需求分析173.2.1軟件操作平臺173.2.2系統(tǒng)設(shè)計(jì)目標(biāo)173.3系統(tǒng)結(jié)構(gòu)框圖183.4系統(tǒng)各個(gè)模塊功能概述及流程圖183.5數(shù)據(jù)庫設(shè)計(jì)20第四章系統(tǒng)各個(gè)功能介紹224.1登陸界面224.2主頁面224.3短消息功能234.4管理員的功能244.4.1學(xué)生管理244.4.2開課管理274.5教師和學(xué)生的功能284.5.1公告284.5.2網(wǎng)絡(luò)答疑294.5.3課程學(xué)習(xí)31結(jié)束語33參考

5、文獻(xiàn)34附 錄35致 謝48IV山東輕工業(yè)學(xué)院2007屆本科生畢業(yè)設(shè)計(jì)(論文)摘要網(wǎng)絡(luò)教學(xué)平臺是針對目前社會高度發(fā)展,對教育的需求超過了人們的想象,而傳統(tǒng)的教育資源有限并會受到時(shí)間空間等多方面的限制,從而研制和開發(fā)的一種基于網(wǎng)絡(luò)的Browser/Server模式并可在Internet網(wǎng)絡(luò)環(huán)境下運(yùn)行的應(yīng)用軟件。以實(shí)現(xiàn)這種方便性與互動性、開放性集于一身的教育體制,以對當(dāng)前傳統(tǒng)的教育模式提供必要的補(bǔ)充。網(wǎng)絡(luò)教學(xué)對傳統(tǒng)教學(xué)模式發(fā)出了挑戰(zhàn),網(wǎng)絡(luò)教學(xué)在教育領(lǐng)域不斷深入、擴(kuò)展以及普及的速度與程度都顯示了網(wǎng)絡(luò)教學(xué)巨大生命力和無限潛力。智能跟蹤技術(shù)應(yīng)用到網(wǎng)絡(luò)教學(xué)中,實(shí)現(xiàn)對個(gè)別學(xué)生成績的動態(tài)記錄和跟蹤,達(dá)到學(xué)生網(wǎng)

6、絡(luò)教學(xué)管理信息化,統(tǒng)計(jì)分析后針對學(xué)生特點(diǎn)實(shí)行智能化管理。本系統(tǒng)選用ASP作為腳本環(huán)境,使用SQL Server數(shù)據(jù)庫。運(yùn)用ASP和SQL Server2003數(shù)據(jù)庫管理軟件相結(jié)合,能夠在網(wǎng)絡(luò)教學(xué)平臺中方便的實(shí)現(xiàn)智能跟蹤技術(shù),跟蹤記錄學(xué)生網(wǎng)絡(luò)教學(xué)中各時(shí)期的學(xué)習(xí)情況,最后得到線性報(bào)表分析,達(dá)到輔助教學(xué)管理的目的。本文主要介紹了網(wǎng)絡(luò)教學(xué)的意義和發(fā)展?fàn)顩r,設(shè)計(jì)用到的相關(guān)的技術(shù)(ASP、SQL Server等),系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)以及系統(tǒng)的功能說明。關(guān)鍵字:網(wǎng)絡(luò)教學(xué) 智能跟蹤技術(shù) ASP SQL ServerABSTRACTOnline teaching system, developed in allu

7、sion to supply the traditional teaching system in the school. There is too much deficiency in traditional teaching system to adapt the developing of the society. So we developed Internet applications based on Browser/Server model and we will use this system in the Internet. Realizes this kind of con

8、venience and the interaction, the open collection to a body education system, by provide the essential supplement to the current traditional education pattern. The network teaching sent out the challenge to the tradition educational model, the network teaching has been unceasingly thorough in the ed

9、ucation do main, the expansion as well as the popularization speed and the degree has all demonstrated the network teaching huge vitality and the infinite potential. The intelligent track technology applies in the network teaching realizes to the individual student result dynamic recording and the t

10、rack, achieves the student network teaching management information after statistical analysis in view of student characteristic implementation intellectualization management. System selects and uses ASP being the script environment, uses the SQL Server database. Apply ASP and the SQL Server2003 data

11、 base management software to be tied in wedlock each other, be able to realize intelligence conveniently in network teaching platform tracking a technology, track the condition recording every student network teaching middle period studying, get linearity form for report analysis finally, reach the

12、purpose assisting teaching to manage.Key words:Network teaching ; Intelligence track a technology ; ASP ; SQL Server第一章前言1.1網(wǎng)絡(luò)教學(xué)意義和發(fā)展?fàn)顩r1.1.1網(wǎng)絡(luò)教學(xué)的意義現(xiàn)代信息技術(shù)的發(fā)展和遠(yuǎn)程教育信息化進(jìn)程的迅速推進(jìn),給高等教育的學(xué)習(xí)環(huán)境帶來了巨大的影響,每個(gè)高等學(xué)校都面臨著如何利用先進(jìn)的多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)來改進(jìn)傳統(tǒng)單一的教育、教學(xué)方法,創(chuàng)建適合學(xué)生學(xué)習(xí)特點(diǎn)的多樣化教育方法,建立新型的教學(xué)模式這一普遍問題。特別是普通高等學(xué)校充分、有效地利用網(wǎng)絡(luò)教育,改變師資力量不足、

13、水平不高、教學(xué)結(jié)構(gòu)有待于進(jìn)一步改革的現(xiàn)狀,培養(yǎng)具有創(chuàng)新精神和實(shí)踐能力的高素質(zhì)人才,逐步形成自己的辦學(xué)特色,提高辦學(xué)質(zhì)量和效益,具有十分重要的意義。1.1.2國內(nèi)外網(wǎng)絡(luò)教學(xué)的發(fā)展?fàn)顩r在美國,越來越多的人選擇半工半讀或在職學(xué)習(xí)的方式,他們中的許多人工作不定時(shí),經(jīng)常外出。而網(wǎng)絡(luò)教學(xué)突破了時(shí)間、地點(diǎn)的限制,滿足了這些人的學(xué)習(xí)要求。特別是因特網(wǎng)和多媒體兩大技術(shù)的結(jié)合使?jié)M足網(wǎng)絡(luò)教育的需求成為可能。而政府也十分重視現(xiàn)代信息技術(shù)在教育中的應(yīng)用,利用因特網(wǎng)的非同步教學(xué)、雙向交互式的視頻教學(xué)和單向式預(yù)錄視頻教學(xué)等技術(shù),積極推進(jìn)網(wǎng)絡(luò)教育的發(fā)展?,F(xiàn)有三百五十多所大學(xué)和學(xué)院提供函授和因特網(wǎng)教育的遠(yuǎn)程學(xué)習(xí)學(xué)位,基本覆蓋了

14、美國高校的所有專業(yè)和學(xué)科。目前美國通過網(wǎng)絡(luò)教學(xué)獲得高等教育學(xué)位的學(xué)生大約占全國高等學(xué)校在校生人數(shù)的8%。而據(jù)有關(guān)機(jī)構(gòu)預(yù)測到2002 年美國接受網(wǎng)絡(luò)高等教育的人數(shù)將達(dá)到223萬人。英國也是較早開展網(wǎng)絡(luò)教育的國家,而且英國利物浦大學(xué)等大學(xué)正積極開拓中國的教育市場,它們提供的信息技術(shù)理學(xué)碩士學(xué)位和工商管理碩士學(xué)位課程,使學(xué)生可以通過在線方式獲得學(xué)位。網(wǎng)絡(luò)教學(xué)已成為經(jīng)濟(jì)合作與發(fā)展組織(OECD)國家高等教育體系的重要組成部分。根據(jù)OECD的研究,19952004年,全世界網(wǎng)絡(luò)教學(xué)的市場規(guī)模將以45%的增幅擴(kuò)大。因此他們不僅在本國積極開展網(wǎng)絡(luò)教學(xué),而且正準(zhǔn)備通過互聯(lián)網(wǎng)占領(lǐng)更多的國際高等教育市場份額。我國

15、政府十分重視網(wǎng)絡(luò)教育。國務(wù)院1999年1月轉(zhuǎn)發(fā)教育部制訂的“面向21 世紀(jì)教育振興行動計(jì)劃”中,明確提出了實(shí)施現(xiàn)代遠(yuǎn)程教育工程,并在第三次全國教育工作會議上,提出在2010年初步實(shí)現(xiàn)高等教育大眾化的目標(biāo),建立現(xiàn)代遠(yuǎn)程教育網(wǎng)絡(luò),構(gòu)建終身教育體系。為此,國家對教育信息基礎(chǔ)設(shè)施投入很大的人力物力,建成中國教育科研網(wǎng)(CER-NET),并開展地區(qū)性區(qū)域教育信息網(wǎng)絡(luò)建設(shè)和校園網(wǎng)絡(luò)建設(shè)。隨著清華大學(xué)等38所試點(diǎn)大學(xué)網(wǎng)絡(luò)教育的快速發(fā)展,遠(yuǎn)程教育也逐步成為一個(gè)倍受人們關(guān)注的領(lǐng)域。目前我國各試點(diǎn)學(xué)校初步摸索出一套網(wǎng)上辦學(xué)的模式,開發(fā)出一批網(wǎng)上課程和教學(xué)資源,初步形成了校內(nèi)基于校園網(wǎng)的多媒體教學(xué)與校外遠(yuǎn)程教學(xué)同時(shí)

16、進(jìn)行并相互融合的開放式辦學(xué)格局。1.2網(wǎng)絡(luò)教學(xué)平臺系統(tǒng)建設(shè)1.2.1 系統(tǒng)建設(shè)原則為了實(shí)施遠(yuǎn)程教學(xué)的要求,該系統(tǒng)必須遵循如下設(shè)計(jì)原則:(1)規(guī)范、通用性。與同類軟件或常用應(yīng)用軟件具有同樣的規(guī)范,做到大眾化。(2)適用性、易操作性。教案資料錄入應(yīng)做到規(guī)范、易操作,通常的方法是教師按照網(wǎng)頁的方式提交,這就要求他必須具有較強(qiáng)的網(wǎng)頁制作和設(shè)計(jì)技能,一般難以達(dá)到,還會消費(fèi)過多的時(shí)間去考慮版面的美觀,實(shí)在是有點(diǎn)舍珠求魚,得不償失。這部分工作應(yīng)由系統(tǒng)開發(fā)工程師去完成。(3)模板化、導(dǎo)航幫助。在設(shè)計(jì)上,應(yīng)重點(diǎn)考慮其應(yīng)用的廣泛性,適合于不同學(xué)科的教師。既要考慮不同課程的特點(diǎn),又要在宏觀上考慮它們的共性。(4)安

17、全性。系統(tǒng)對不同類型的用戶提供不同的權(quán)限,嚴(yán)格控制低權(quán)限用戶的操作行為。1.2.2系統(tǒng)建設(shè)目標(biāo)(1)實(shí)現(xiàn)智能跟蹤技術(shù)??梢詫W(xué)生各個(gè)時(shí)期的學(xué)習(xí)情況進(jìn)行實(shí)時(shí)的跟蹤記錄,對其進(jìn)行分析,然后指定下一步教學(xué)計(jì)劃。達(dá)到學(xué)生網(wǎng)絡(luò)教學(xué)管理信息化。(2)實(shí)現(xiàn)在線交流。在課后,教師和學(xué)生無法面對面的時(shí)候,教師和學(xué)生也可以實(shí)時(shí)地進(jìn)行交流,教師在線布置、批改作業(yè),網(wǎng)絡(luò)答疑。使教師和學(xué)生的交流突破時(shí)間與空間的限制。(3)實(shí)現(xiàn)上傳下載。教師可以上傳相關(guān)課程的課件,由學(xué)生或其他教師下載。方便了學(xué)生對功課做提前預(yù)習(xí)和課后的復(fù)習(xí),也方便了教師的備課。第二章網(wǎng)絡(luò)教學(xué)平臺的相關(guān)技術(shù)介紹和分析2.1網(wǎng)站制作環(huán)境ASP2.1.1AS

18、P概述ASP是Active Server Pages body的簡稱,它是在微軟公司的WEB服務(wù)器IIS(Internet Infomation Server)上開發(fā)交互網(wǎng)頁的新技術(shù)1。微軟公司最初在IIS3.0版上使用它以取代CGI。隨著WindowsNT在WWW上的使用日益增多,ASP已經(jīng)成為了開發(fā)動態(tài)網(wǎng)站、構(gòu)筑Internet和Intranet應(yīng)用的最佳選擇。2.1.2ASP簡介隨著Internet/Intranet和Web技術(shù)的出現(xiàn)和發(fā)展,為信息的交換和共享提供了快捷有效的方法,但I(xiàn)nternet/Intranet上提供的信息多以靜態(tài)網(wǎng)頁為主,遠(yuǎn)遠(yuǎn)不能滿足人們的需要,及時(shí)更新數(shù)據(jù)才可獲

19、得較高的訪問率,對于一個(gè)Web應(yīng)用開發(fā)者來說,最關(guān)心的是如何增強(qiáng)網(wǎng)頁的動態(tài)性和交互性了。 技術(shù)是目前最流行的交互式動態(tài)網(wǎng)頁建構(gòu)ASP技術(shù),它是Microsoft公司開發(fā)的一套全新的服務(wù)器端的腳本程序環(huán)境2。用戶可以創(chuàng)建和運(yùn)行動態(tài)的交互式Web服務(wù)器應(yīng)用程序,在站點(diǎn)的Web服務(wù)器上解釋腳本,可產(chǎn)生并執(zhí)行動態(tài)、交互式、高效率的站點(diǎn)服務(wù)器應(yīng)用程序,如交互式的動態(tài)網(wǎng)頁,包括使用HTML表單收集和處理信息、上傳與下載等, ASP可以勝任基于MicrosoftWeb服務(wù)器的各種動態(tài)數(shù)據(jù)發(fā)布,根據(jù)客戶端的不同請求,在服務(wù)器端經(jīng)過相應(yīng)的ASP程序處理生成不同的靜態(tài)HTML頁面?zhèn)鬏敾貫g覽器。腳本在Web服務(wù)器中

20、運(yùn)行,而瀏覽器并不處理腳本,它所面對的僅僅是一個(gè)完全符合HTML格式的網(wǎng)頁,這為更多的、不同類型的瀏覽器訪問Web服務(wù)器提供了可能。2.1.3ASP技術(shù)與傳統(tǒng)靜態(tài)主頁的區(qū)別把信息系統(tǒng)納入Internet/Intranet的框架之后,首先要解決的問題是通過網(wǎng)頁訪問后臺數(shù)據(jù)庫信息。所有應(yīng)用程序都被分割為頁面的形式,用戶的交互操作是以提交表單等方式來實(shí)現(xiàn)的,這就要求Web站點(diǎn)具有很強(qiáng)的動態(tài)數(shù)據(jù)發(fā)布能力。ASP技術(shù)所設(shè)計(jì)出的是動態(tài)主頁,可接收用戶提交的信息并做出反應(yīng), 其中的數(shù)據(jù)可隨實(shí)際情況而改變,無需人工對網(wǎng)頁文件進(jìn)行更新即可滿足應(yīng)用需要。例如:當(dāng)在瀏覽器上填好表單并提交HTTP請求時(shí),可以要求在站

21、點(diǎn)服務(wù)器上執(zhí)行一個(gè)表單所設(shè)定的應(yīng)用程序,而不只是一個(gè)簡單的HTML文件。該應(yīng)用程序分析表單的輸入數(shù)據(jù),根據(jù)不同的數(shù)據(jù)內(nèi)容將相應(yīng)地執(zhí)行結(jié)果并以HTML 的格式傳送給瀏覽器。數(shù)據(jù)庫的數(shù)據(jù)可以隨時(shí)變化,而服務(wù)器上執(zhí)行的應(yīng)用程序卻不必更改,客戶端得到的網(wǎng)頁信息會始終保持新鮮的魅力3。2.1.4ASP的工作原理當(dāng)用戶申請一個(gè)*.asp主頁時(shí), Web服務(wù)器響應(yīng)HTTP請求,調(diào)用ASP引擎, 解釋被申請文件。當(dāng)遇到任何與ActiveX Script兼容的腳本如VBScript和JavaScript時(shí),ASP引擎會調(diào)用相應(yīng)的腳本引擎進(jìn)行處理。若ASP文件含有訪問數(shù)據(jù)庫的請求,ASP內(nèi)置組件ADO通過ODBC

22、與數(shù)據(jù)庫連接,對數(shù)據(jù)庫進(jìn)行訪問,并將訪問結(jié)果返回Web服務(wù)器。ASP引擎將腳本和組件的運(yùn)行結(jié)果生成相應(yīng)的HTML語法成分,與文件中原有的文本和HTML 標(biāo)記一起組成標(biāo)準(zhǔn)HTML頁面送至客戶端瀏覽器。ASP腳本是在服務(wù)器端解釋執(zhí)行的,它根據(jù)訪問數(shù)據(jù)庫的結(jié)果集自動生成符合HTML語言的主頁,去響應(yīng)用戶的請求。訪問ASP頁面工作原理,如圖21所示4。圖21ASP頁面工作原理圖2.1.5ASP頁面的結(jié)構(gòu)ASP的程序代碼簡單、通用,文件名由.asp結(jié)尾ASP文件通常由4部分構(gòu)成: 一是標(biāo)準(zhǔn)的HTML標(biāo)記,所有的HTML 標(biāo)記均可使用。二是ASP語法命令, 位于 標(biāo)簽內(nèi)的ASP代碼。三是服務(wù)器端的incl

23、ude語句,可用#include語句調(diào)入其他ASP 代碼,增強(qiáng)了編程的靈活性。四是腳本語言,ASP自帶JavaScript和VBScript兩種腳本語言,增加了ASP的編程功能。2.1.6ASP的特點(diǎn)(1)無需編譯:ASP腳本集成于HTML當(dāng)中,容易生成,無需編譯或連接即可直接解釋執(zhí)行。(2)易于生成:使用常規(guī)文本編輯器(如Windows下的記事本),即可進(jìn)行*.asp頁面的設(shè)計(jì)。(3)獨(dú)立于瀏覽器:ASP腳本在服務(wù)器端解釋執(zhí)行,用戶端只要使用可解釋常規(guī)HTML碼的瀏覽器,即可瀏覽ASP所設(shè)計(jì)的主頁。(4)面向?qū)ο螅涸贏SP腳本中可以方便地引用系統(tǒng)組件和ASP的內(nèi)置組件,還可由ActiveX服

24、務(wù)器組件來擴(kuò)充功能。(5)與任何ActiveX Script語言兼容: 除了可使用VBScript和JavaScript語言進(jìn)行設(shè)計(jì)外,還可通過Plug- in的方式,使用由第三方所提供的其他Script語言進(jìn)行設(shè)計(jì)。(6)源程序碼不會泄漏: ASP腳本在服務(wù)器上執(zhí)行,傳到用戶瀏覽器的只是ASP 執(zhí)行結(jié)果所生成的常規(guī)HTML碼,這樣可保證編寫出來的程序代碼不會被他人盜取。2.1.7ASP技術(shù)的應(yīng)用前景ASP采用ADO(ActiveX Data Objects)技術(shù)訪問后臺數(shù)據(jù)庫。其中內(nèi)置的數(shù)據(jù)庫訪問組件ADODB屬于數(shù)據(jù)庫應(yīng)用的COM構(gòu)件,可以在多種環(huán)境下使用。各種腳本和語言均可調(diào)用ADO組件

25、訪問數(shù)據(jù)庫,并利用相應(yīng)的數(shù)據(jù)接口顯示查詢結(jié)果。ADO擁有強(qiáng)大的活力,它是位于ODBC和OLEDB之上的高性能數(shù)據(jù)操作接口,提供了開放的數(shù)據(jù)操作對象模型,允許開發(fā)人員使用任何語言和統(tǒng)一的編程模式訪問各種與ODBC和OLEDB兼容的數(shù)據(jù)庫。通過ADO,開發(fā)人員可以用較少的時(shí)間操作比以前更為復(fù)雜的數(shù)據(jù)類型,成為支持新一代數(shù)據(jù)訪問與連接標(biāo)準(zhǔn)UDA(統(tǒng)一數(shù)據(jù)訪問)模型的核心技術(shù)。與傳統(tǒng)的CGI和ISAPI等訪庫方式相比,ADO方案簡單易行、應(yīng)用廣泛,將成為站點(diǎn)訪問后臺數(shù)據(jù)庫的最佳選擇,其具體內(nèi)容將在2.3節(jié)介紹。作為IIS 的一個(gè)組成部分,ASP提供了一個(gè)無需編譯的集成開發(fā)環(huán)境,開發(fā)人員可以把HTML,

26、VBScript,JavaScript,ASP腳本和ActiveX構(gòu)件等結(jié)合在一起,從而建立一個(gè)動態(tài)的、功能強(qiáng)大的Web應(yīng)用系統(tǒng)。此外,使用ASP開發(fā)的Web應(yīng)用程序,返回到前端是純HTML語言,不依賴于瀏覽器和操作系統(tǒng),且具有較好的保密性。使用ASP在先進(jìn)的協(xié)同應(yīng)用程序開發(fā)模型中設(shè)計(jì)應(yīng)用程序,可以實(shí)現(xiàn)最佳的性能、更好的安全性以及更方便的維護(hù)。從基于數(shù)據(jù)庫的管理信息系統(tǒng)的角度來看,局域網(wǎng)環(huán)境的MIS系統(tǒng)大都可以遷移到Web環(huán)境中,瀏覽器、Web服務(wù)器、數(shù)據(jù)庫服務(wù)器三層分布式結(jié)構(gòu)已勢不可擋。ASP作為配套的站點(diǎn)設(shè)計(jì)技術(shù),可以根據(jù)瀏覽器端提出的不同申請動態(tài)地生成相應(yīng)的HTML 頁面,從而可根據(jù)用戶

27、的需要方便地獲取數(shù)據(jù)。同時(shí),由于ASP在服務(wù)器端執(zhí)行,很好地保證了瀏覽器、服務(wù)器結(jié)構(gòu)中數(shù)據(jù)的一致性。ASP支持ActiveX服務(wù)器組件,并可與任何ActiveX Script語言兼容。ActiveX以微軟的COM(Component Object Model)為基礎(chǔ),可以由任何編程語言來編寫,諸如COBOL,VB,VC,Delphi,PowerBuilder,Java 等,并可在任何Windows平臺上運(yùn)行。使用ActiveX可建立獨(dú)立的業(yè)務(wù)邏輯處理單元,將其嵌入到所需的ASP主頁中,不僅功能靈活,而且具有很高的可重用性,比較容易開發(fā)出具有Internet通信能力和具有傳統(tǒng)商業(yè)計(jì)算能力的混合應(yīng)

28、用??梢钥隙?,隨著ActiveX市場占有率的不斷提高,組件對象與ASP結(jié)合將成為構(gòu)造Web應(yīng)用系統(tǒng)的最常用方式。ASP是微軟為IIS3.0以上服務(wù)器及單機(jī)開發(fā)的動態(tài)站點(diǎn)設(shè)計(jì)技術(shù),可以與常規(guī)HTML集成,簡單而有效,適于一般的程序設(shè)計(jì)人員。后臺可與NT系統(tǒng)上配套的SQL等數(shù)據(jù)庫相連,只需編寫少量的代碼,即可在頁面上執(zhí)行一系列的訪庫操作,特別適合企業(yè)經(jīng)營活動的需要3。使用ASP所提供的內(nèi)置組件對象配合HTML,VBScript和JavaScript,可實(shí)現(xiàn)各種復(fù)雜功能,并使主頁呈現(xiàn)豐富多變的風(fēng)格。利用ASP進(jìn)行Web設(shè)計(jì),具有開發(fā)容易、功能完備、形式完美等特點(diǎn),隨著Internet應(yīng)用領(lǐng)域的覆蓋面

29、不斷擴(kuò)大,ASP技術(shù)將成為建構(gòu)交互式動態(tài)網(wǎng)頁不可缺少的技術(shù)。2.2系統(tǒng)數(shù)據(jù)庫SQL Server本系統(tǒng)利用SQL Server作為后臺數(shù)據(jù)庫的開發(fā)。本節(jié)將介紹一下SQL Server。2.1.1SQL Server概述SQL是英文Structured Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。按照ANSI(美國國家標(biāo)準(zhǔn)協(xié)會)的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言6。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle,Syb

30、ase,Microsoft SQL Server,Access等都采用了SQL語言標(biāo)準(zhǔn)。雖然很多數(shù)據(jù)庫都對SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括Select,Insert,Update,Delete,Create,以及Drop在內(nèi)的標(biāo)準(zhǔn)的SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫操作。2.2.2SQL Server簡介SQL Server 2003是一個(gè)全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個(gè)安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用。2005版的發(fā)布為IT專家和信息工作者帶來了強(qiáng)大的、熟悉的工具,同時(shí)減少了在從移動設(shè)備到企業(yè)數(shù)據(jù)系統(tǒng)的多平臺上創(chuàng)建、部署、管

31、理及使用企業(yè)數(shù)據(jù)和分析應(yīng)用程序的復(fù)雜度。通過全面的功能集、和現(xiàn)有系統(tǒng)的集成性、以及對日常任務(wù)的自動化管理能力,SQL Server 2003為不同規(guī)模的企業(yè)提供了一個(gè)完整的數(shù)據(jù)解決方案7。2.2.3SQL Server 數(shù)據(jù)平臺包括以下工具:(1)Replication Services。數(shù)據(jù)復(fù)制功能可用于數(shù)據(jù)分發(fā)或移動數(shù)據(jù)處理應(yīng)用程序、系統(tǒng)高可用性、企業(yè)報(bào)表解決方案的后備數(shù)據(jù)存儲的可伸縮并發(fā)性、與異構(gòu)系統(tǒng)(包括已有的 Oracle 數(shù)據(jù)庫)的集成等。 (2)Notification Services。用于開發(fā)和部署可伸縮應(yīng)用程序的高級通知功能可以向不同的已連接設(shè)備和移動設(shè)備發(fā)布個(gè)性化的、及時(shí)

32、的信息更新。 (3)Integration Services。用于數(shù)據(jù)倉庫和企業(yè)范圍數(shù)據(jù)集成的數(shù)據(jù)提取、轉(zhuǎn)換和加載(ETL)功能。 (4)Analysis Services。聯(lián)機(jī)分析處理(OLAP)功能可用于對使用多維存儲的大型和復(fù)雜數(shù)據(jù)集進(jìn)行快速高級分析。 (5)Reporting Services。全面的報(bào)表解決方案,可創(chuàng)建、管理和發(fā)布傳統(tǒng)的、可打印的報(bào)表和交互的、基于 Web 的報(bào)表。 (6)管理工具。SQL Server 包含的集成管理工具可用于高級數(shù)據(jù)庫管理和優(yōu)化,它也與其他工具(如 Microsoft Operations Manager (MOM) 和 Microsoft Sys

33、tems Management Server (SMS))緊密集成在一起。標(biāo)準(zhǔn)數(shù)據(jù)訪問協(xié)議大大減少了將 SQL Server 中的數(shù)據(jù)和現(xiàn)有系統(tǒng)進(jìn)行集成所花費(fèi)的時(shí)間。此外,SQL Server 中內(nèi)建了本機(jī) Web 服務(wù)支持,確保了與其他應(yīng)用程序及平臺的互操作能力。 (7)開發(fā)工具。SQL Server 為數(shù)據(jù)庫引擎、數(shù)據(jù)提取、轉(zhuǎn)換和加載(ETL)、數(shù)據(jù)挖掘、OLAP 和報(bào)表提供了和 Microsoft Visual Studio 緊密集成的開發(fā)工具,以實(shí)現(xiàn)端到端的應(yīng)用程序開發(fā)能力。SQL Server 中每個(gè)主要的子系統(tǒng)都有自己的對象模型和應(yīng)用程序接口(API),能夠?qū)?shù)據(jù)系統(tǒng)擴(kuò)展到任何獨(dú)特

34、的商業(yè)環(huán)境中。2.2.4影響SQL Server數(shù)據(jù)庫性能的因素對于SQL Server數(shù)據(jù)庫來說,影響其性能的,主要有以下一些因素和方面:(1)數(shù)據(jù)庫設(shè)計(jì)方面。這包括表的設(shè)計(jì)、表的數(shù)量和大小、表的設(shè)計(jì)規(guī)范化程度、事務(wù)的設(shè)計(jì)、游標(biāo)的使用等等。(2)索引的設(shè)計(jì)方面。包括索引的數(shù)目及其在表上的分布和類型、鍵的使用、填充因子的利用、唯一性、約束的使用、索引頁面利用率、分布和密度統(tǒng)計(jì)的精確度以及對查詢的適用性。(3)查詢構(gòu)造方面。包括選擇標(biāo)準(zhǔn)、操作符、函數(shù)、表達(dá)式和子查詢、聚集函數(shù)、排序和分組等。(4)操作環(huán)境方面。包括內(nèi)存的利用、磁盤的使用、CPU 的使用、網(wǎng)絡(luò)的使用等。一般來說,對上述這些不同的方

35、面進(jìn)行SQL Server 的性能優(yōu)化,會產(chǎn)生不同的效果。下面將分別介紹優(yōu)化SQL Server 性能的一些技術(shù)和方法。2.2.5數(shù)據(jù)庫的設(shè)計(jì)實(shí)現(xiàn)SQL Server 數(shù)據(jù)庫的優(yōu)化,首先要有一個(gè)好的數(shù)據(jù)庫設(shè)計(jì)方案。在實(shí)際工作中,許多SQL Server 方案往往是由于數(shù)據(jù)庫設(shè)計(jì)得不好導(dǎo)致性能很差。實(shí)現(xiàn)良好的數(shù)據(jù)庫設(shè)計(jì)必須考慮這些問題:(1)邏輯數(shù)據(jù)庫規(guī)范化問題一般來說,邏輯數(shù)據(jù)庫設(shè)計(jì)會滿足規(guī)范化的前3 級標(biāo)準(zhǔn):第1規(guī)范:沒有重復(fù)的組或多值的列;第2規(guī)范:每個(gè)非關(guān)鍵字段必須依賴于主關(guān)鍵字,不能依賴于一個(gè)組合式主關(guān)鍵字的某些組成部分;第3規(guī)范:一個(gè)非關(guān)鍵字段不能依賴于另一個(gè)非關(guān)鍵字段。遵守這些規(guī)則

36、的數(shù)據(jù)庫設(shè)計(jì)會產(chǎn)生較少的列和更多的表,因而也就減少了數(shù)據(jù)冗余,也減少了用于存儲數(shù)據(jù)的頁。但表關(guān)系也許需要通過復(fù)雜的合并來處理,這樣會降低系統(tǒng)的性能。某種程度上的非規(guī)范化可以改善系統(tǒng)的性能,非規(guī)范化過程可以根據(jù)性能方面不同的考慮用多種不同的方法進(jìn)行,但以下方法經(jīng)實(shí)踐驗(yàn)證往往能提高性能。1、規(guī)范化設(shè)計(jì)產(chǎn)生了許多4路或更多路合并關(guān)系,而且這些表被頻繁的訪問,就可以考慮在數(shù)據(jù)庫實(shí)體(表)中加入重復(fù)屬性(列)。例如在某高校選課系統(tǒng)中,學(xué)生修課表被頻繁的訪問,由于規(guī)范化設(shè)計(jì),一個(gè)學(xué)生得到完整的修課信息就要與其他的許多的表進(jìn)行連接,這樣勢必造成系統(tǒng)速度變慢。為了解決這個(gè)問題我們可以在學(xué)生修課表上加入一些重復(fù)

37、的列,這樣就會減少表與表之間的聯(lián)結(jié)運(yùn)算,提高整個(gè)數(shù)據(jù)庫系統(tǒng)的性能。2、常用的計(jì)算字段(如總計(jì)、最大值等)可以考慮存儲到數(shù)據(jù)庫實(shí)體中。比如在教務(wù)管理系統(tǒng)中的班級表中可以加入班級的男生人數(shù)、女生人數(shù)等計(jì)算字段。用戶以后再瀏覽班級信息時(shí),系統(tǒng)就不需要到其他的表中統(tǒng)計(jì)學(xué)生的人數(shù)了,這是一種典型的用空間(數(shù)據(jù)庫中引入了冗余字段) 來換取時(shí)間(減少了計(jì)算節(jié)省了時(shí)間) 的作法,事實(shí)證明這也是一種很有效的方法。但是這里應(yīng)當(dāng)采用觸發(fā)器以保持?jǐn)?shù)據(jù)庫數(shù)據(jù)的一致性。3、重新定義實(shí)體以減少外部屬性數(shù)據(jù)或行數(shù)據(jù)的開支。相應(yīng)的非規(guī)范化類型是:一、把1 個(gè)實(shí)體(表)分割成2 個(gè)表(把所有的屬性分成2 組)。這樣就把頻繁被訪問

38、的數(shù)據(jù)同較少被訪問的數(shù)據(jù)分開了。這種方法要求在每個(gè)表中復(fù)制首要關(guān)鍵字。這樣產(chǎn)生的設(shè)計(jì)有利于并行處理,并將產(chǎn)生列數(shù)較少的表。二、把1 個(gè)實(shí)體(表)分割成2 個(gè)表(把所有的行分成2 組)。這種方法適用于那些將包含大量數(shù)據(jù)的實(shí)體(表)。在應(yīng)用中常要保留歷史記錄,但是歷史記錄很少用到。因此可以把頻繁被訪問的數(shù)據(jù)同較少被訪問的歷史數(shù)據(jù)分開。而且如果數(shù)據(jù)行是作為子集被邏輯工作組(部門、銷售分區(qū)、地理區(qū)域等)訪問的,那么這種方法也是很有好處的。(2)生成物理數(shù)據(jù)庫要想正確選擇基本物理實(shí)現(xiàn)策略,必須懂得數(shù)據(jù)庫訪問格式和硬件資源的操作特點(diǎn),主要是內(nèi)存和磁盤子系統(tǒng)I/O。這是一個(gè)范圍廣泛的話題,但以下的準(zhǔn)則可能會

39、有所幫助。1、與每個(gè)表列相關(guān)的數(shù)據(jù)類型應(yīng)該反映數(shù)據(jù)所需的最小存儲空間,特別是對于被索引的列更是如此。比如能使用smallint類型就不要用integer 類型,這樣索引字段可以被更快地讀取,而且可以在1 個(gè)數(shù)據(jù)頁上放置更多的數(shù)據(jù)行,因而也就減少了I/O 操作。2、把1 個(gè)表放在某個(gè)物理設(shè)備上,再通過SQL Server 段把它的不分簇索引放在1 個(gè)不同的物理設(shè)備上,這樣能提高性能。尤其是系統(tǒng)采用了多個(gè)智能型磁盤控制器和數(shù)據(jù)分離技術(shù)的情況下,這樣做的好處更加明顯。3、用SQL Server 段把一個(gè)頻繁使用的大表分割開,并放在2 個(gè)單獨(dú)的智能型磁盤控制器的數(shù)據(jù)庫設(shè)備上,這樣也可以提高性能。因?yàn)橛?/p>

40、多個(gè)磁頭在查找,所以數(shù)據(jù)分離也能提高性能。4、用SQL Server 段把文本或圖像列的數(shù)據(jù)存放在1 個(gè)單獨(dú)的物理設(shè)備上可以提高性能。1 個(gè)專用的智能型的控制器能進(jìn)一步提高性能。2.2.6索引的設(shè)計(jì)根據(jù)某個(gè)特定數(shù)據(jù)項(xiàng)的取值,索引的目的是讓SQL Server的優(yōu)化器能有一條到達(dá)該數(shù)據(jù)項(xiàng)的最有效的途徑。在適當(dāng)?shù)牡胤讲捎们‘?dāng)類型的索引對SQL Server 性能的優(yōu)化是很有幫助的。(1)更新統(tǒng)計(jì)每個(gè)索引均具有一個(gè)維護(hù)其統(tǒng)計(jì)信息的分布項(xiàng)。優(yōu)化器利用這個(gè)項(xiàng)來判斷該索引對某個(gè)特定的查詢是否有用。但這個(gè)統(tǒng)計(jì)信息并不動態(tài)地重新計(jì)算。這意味著,當(dāng)表的數(shù)據(jù)改變了之后,統(tǒng)計(jì)信息有可能是過時(shí)的,從而影響優(yōu)化器追求最

41、優(yōu)工作的目標(biāo)。因此,對于更新比較頻繁的表,應(yīng)定時(shí)運(yùn)行其更新統(tǒng)計(jì)。(2)采用唯一索引第一鍵列值為條件的查詢將通過最少次數(shù)的I/O,就可找到期望的行。相反,若用于索引鍵的列有大量的重復(fù)值,則查詢在找到期望的行之前,也許需要訪問若干頁面。因此,如果確信索引鍵的所有值都是唯一的話,則將索引定義成唯一的,以便優(yōu)化器能利用這種高選擇性。(3)選擇索引鍵應(yīng)選擇那些采用小數(shù)據(jù)類型的列作為鍵,以便每個(gè)索引頁能夠容納盡可能多的索引鍵和指針。通過這種方式,可使一個(gè)查詢所必須遍歷的索引頁面降到最小。同時(shí)設(shè)法使索引的第一個(gè)列具有最大的選擇性,因?yàn)楫?dāng)查詢說明的搜索參數(shù)與索引的第一個(gè)列匹配時(shí),該索引成為有用的。(4)利用聚

42、簇索引聚簇索引的最低級葉級,就是表頁本身。不象非聚簇索引那樣是指向表頁的索引層。因?yàn)槿~級的鍵值是數(shù)據(jù)行,所以數(shù)據(jù)行在物理上是順序的。那些包含范圍檢查(Between,等)或使用了Group By、Order By 的查詢可以很好的利用這些預(yù)排序的數(shù)據(jù),達(dá)到減少或避免排序的代價(jià)。(5)利用覆蓋索引覆蓋索引是指那些包含了多個(gè)列的非聚簇索引,以便能覆蓋一個(gè)或多個(gè)典型的查詢。覆蓋查詢是指涉及的值存在于一個(gè)覆蓋索引的鍵值中的查詢。覆蓋索引可以提高覆蓋查詢的性能,這種查詢僅僅通過讀取頁面就可解決,節(jié)省大量的I/O 開銷。2.2.7查詢語句優(yōu)化對于一條復(fù)雜的查詢語句來說,對相同查詢條件的實(shí)現(xiàn)一般總可以有多種

43、不同的表達(dá)方法,而不同的表達(dá)會使數(shù)據(jù)庫的響應(yīng)速度大相徑庭。據(jù)統(tǒng)計(jì),約有90%的性能問題是由于使用了不恰當(dāng)?shù)牟樵冋Z句造成的,因此SQL 語句的質(zhì)量對整個(gè)系統(tǒng)效率有重大關(guān)系。下面介紹查詢語句優(yōu)化方面的一些技巧。(1) 避免使用不兼容的數(shù)據(jù)類型查詢最微妙的問題之一是在Where子句中對具有不同類型的列的比較企圖,例如float 和int,char和varchar,binary 和varbinary是不兼容的。因此要求Where子句中表達(dá)式的數(shù)據(jù)類型是兼容的,數(shù)據(jù)類型的不兼容無法使用預(yù)先定義好的索引。例如:Select name From employee Where salary45000在這條SQ

44、L 語句的Where 子句中由于salary字段是money型,而45000 是整型數(shù),因此就無法使用定義在salary上的索引。(2) 避免LEFT JOIN 和NULLSQL 的一個(gè)有價(jià)值的常用功能是LEFT JOIN。它可以用于檢索第一個(gè)表中的所有行、第二個(gè)表中所有匹配的行、以及第二個(gè)表中與第一個(gè)表中不匹配的所有行。例如,如果希望返回每個(gè)客戶及其定單,使用LEFT JOIN 則可以顯示有定單和沒有定單的客戶。LEFT JOIN 消耗的資源非常之多,因?yàn)樗鼈儼cNULL( 不存在) 數(shù)據(jù)匹配的數(shù)據(jù)。因此在構(gòu)造查詢語句時(shí)盡量避免使用LEFT JOIN 和NULL。(3)避免對WHERE 子

45、句中的條件參數(shù)使用數(shù)學(xué)操作符因?yàn)槿鬢HERE 子句中存在一個(gè)代數(shù)表達(dá)式,優(yōu)化器就不能使用分布統(tǒng)計(jì)信息。如應(yīng)該避免: SELECT name FROM employeeWHERE salary*1040000而應(yīng)該寫為: SELECT name FROM employee WHERE salary40000/10(4)盡量避免在Where 條件里使用非聚合表達(dá)式非聚合表達(dá)式很難利用到索引,通常SQL Server 不得不進(jìn)行大規(guī)模的掃描。像“IS NULL”,“ ”,“! = ”,“! ”,“! ”,“NOT ”,“NOT EXISTS ”,“NOT IN ”,“NOT LIKE ”和“LIKE

46、 %500 ”這樣的表達(dá)都是非聚合表達(dá)式,此外函數(shù)也是。使用以上表達(dá)時(shí)不會用到索引,其查詢速度大大下降,應(yīng)避免在Where 條件中使用非聚合表達(dá)式。2.2.8操作環(huán)境優(yōu)化(1)設(shè)置SQL Server 的優(yōu)先級許多操作環(huán)境根據(jù)CPU的使用狀況來動態(tài)地調(diào)整進(jìn)程的優(yōu)先級,如果SQL Server的優(yōu)先級降低,其性能將會降低。如果你想將SQL Server進(jìn)程的優(yōu)先級改變?yōu)檩^高的值,應(yīng)確保沒有置的過高,以至影響操作系統(tǒng)的性能,因?yàn)镾QL Server的運(yùn)行首先得依賴于操作系統(tǒng)的很好運(yùn)行。(2)減少網(wǎng)絡(luò)流量經(jīng)常,全面提高網(wǎng)絡(luò)的最佳方案是減少你傳送的網(wǎng)絡(luò)包數(shù)。有時(shí)某些查詢沒有很好地優(yōu)化排列,從而返回多于

47、用戶需要的數(shù)據(jù)。通過認(rèn)真設(shè)計(jì)你的應(yīng)用,你可允許客戶應(yīng)用只把數(shù)量的行返回作為預(yù)覽,在需要的情況下再返回全部的結(jié)果。(3)網(wǎng)絡(luò)配置網(wǎng)絡(luò)協(xié)議的選擇,必須通過的路由器、網(wǎng)關(guān)和網(wǎng)橋的數(shù)量,以及諸如網(wǎng)絡(luò)緩沖區(qū)等配置參數(shù),都會對SQL Server的客戶/服務(wù)器的通信性能產(chǎn)生很大影響。應(yīng)確保網(wǎng)絡(luò)已為SQL Server的傳輸進(jìn)行了最優(yōu)化的設(shè)置。2.3基于ADO的SQL Server數(shù)據(jù)庫訪問技術(shù)2.3.1ADO簡介ADO(ActiveX Data Object)是Microsoft數(shù)據(jù)庫應(yīng)用程序開發(fā)的新接口,它是建立在OL E DB之上的高層數(shù)據(jù)庫訪問技術(shù)。與OL E DB提供者相比,ADO的接口可以使程序

48、員在更高級別上同數(shù)據(jù)交互,并且它保留了MFCODBC和DAO 的特性。ADO技術(shù)基于COM ,具有COM組件的諸多優(yōu)點(diǎn),可以用來構(gòu)造可復(fù)用的應(yīng)用框架。ADO技術(shù)不僅可以應(yīng)用于關(guān)系數(shù)據(jù)庫,也可以應(yīng)用于非關(guān)系數(shù)據(jù)庫,以及可以用統(tǒng)一的方法對不同的文件系統(tǒng)進(jìn)行訪問,大大簡化了程序的編制,增加了程序的可移植性。此外,ADO具有遠(yuǎn)程數(shù)據(jù)服務(wù)的特性,支持各種客戶/ 服務(wù)器模型與基于Web的應(yīng)用程序8。ADO技術(shù)用對象封裝了OL E DB所提供的接口。這些接口分別被OL E DB數(shù)據(jù)提供程序、OL E DB數(shù)據(jù)應(yīng)用程序和OL E DB服務(wù)提供程序所使用。而ADO中所提供的對象只適用于數(shù)據(jù)應(yīng)用程序員,這些對象包

49、括Connec2tion 對象、Command 對象、Parameter 對象、Recordset對象、Field對象、Property對象、Error對象等七個(gè)。ADO的其他關(guān)鍵結(jié)構(gòu)還包括集合和事件。這兩種結(jié)構(gòu)用于調(diào)整和組合對象結(jié)構(gòu)中的其他對象。使用ADO技術(shù)開發(fā)應(yīng)用程序有兩種方法。其中最簡單的一種是在應(yīng)用程序中使用ActiveX控件;另一種方法是使用Visual C+ 6.0中為開發(fā)ADO應(yīng)用程序而提供的動態(tài)鏈接庫,即用ADO對象開發(fā)應(yīng)用程序。前一種方法可以最大限度地簡化數(shù)據(jù)庫應(yīng)用程序的訪問,但它不能完全發(fā)揮ADO訪問數(shù)據(jù)庫的優(yōu)良性質(zhì);而后一種方法可以靈活地控制應(yīng)用程序。使用ADO對象開發(fā)

50、應(yīng)用程序需要創(chuàng)建與數(shù)據(jù)源的連接、創(chuàng)建記錄等步驟,但與其他訪問技術(shù)不同的是,ADO技術(shù)對對象之間的層次和順序關(guān)系要求不是太嚴(yán)格。在大多數(shù)情況下,人們可以只關(guān)心所要創(chuàng)建和使用的對象,而無須了解其父對象。在程序開發(fā)的過程中,可以直接打開一個(gè)記錄集對象,而無須先建立與數(shù)據(jù)源的連接。這種模型有力地簡化了程序設(shè)計(jì),增強(qiáng)了程序的靈活性9。2.3.2創(chuàng)建ADO與SQL Server數(shù)據(jù)庫的連接使用ADO,應(yīng)用程序執(zhí)行的第一步操作是使用Connection ,Command或者Recordset 對象創(chuàng)建一個(gè)連接。ADO可以使用ODBC 的OL E DB 提供者M(jìn)SDASQL 或者SQL Server的OL E

51、 DB提供者連接到SQL Server數(shù)據(jù)庫。MSDASQL提供者允許ADO對象框架用于已有的ODBC驅(qū)動程序,SQL OL EDB提供者直接連接到SQL Server。這兩個(gè)OL E DB提供者都可以用于ADO的Connection ,Command和Recordset對象。(1)使用ODBC的OLE DB提供者M(jìn)SDASQL創(chuàng)建一個(gè)連接可以使用ADO Connection對象和MSDASQL創(chuàng)建一個(gè)對SQL Server數(shù)據(jù)庫的連接,這也許是創(chuàng)建ADO應(yīng)用程序的起點(diǎn)。像DAO和RDO一樣,MSDASQL使用一個(gè)ODBC驅(qū)動程序訪問SQL Server。這也就意味著運(yùn)行應(yīng)用程序的系統(tǒng)必須有一

52、個(gè)用于SQL Server的ODBC驅(qū)動程序和一個(gè)在ODBC Administrator中用于SQL Server的Data Source Name(DSN)。像正常的ODBC 連接字符串一樣,用在ADO中的連接字符串必須包含一組預(yù)定義的關(guān)鍵字,這些預(yù)定義的關(guān)鍵字如表21所示。表21預(yù)定義的關(guān)鍵字關(guān)鍵字描述Provider用來指定將要使用的OL E DB提供者的名稱,缺省情況下使用MSDASQL提供者DSN用來指定將要連接的由ODBC Administrator創(chuàng)建的已經(jīng)存在的數(shù)據(jù)源名稱Driver用來指定將要使用的一個(gè)已經(jīng)存在的ODBC驅(qū)動程序的名稱Server用來指定將要使用的一個(gè)已經(jīng)存在

53、的SQL Server系統(tǒng)的名稱UID用來指定將要使用的用于登錄數(shù)據(jù)源的帳號IDPWD用來指定將要使用的與登錄帳號ID相關(guān)的口令Database用來指定將要使用的目標(biāo)數(shù)據(jù)庫名稱(2)使用MSDASQL創(chuàng)建一個(gè)無DSN連接在一些情況下,應(yīng)用程序需要建立一個(gè)基于ODBC的連接,并且它不能依靠一個(gè)預(yù)配置的DSN。MSDASQLOL E DB提供者也支持使用無DSN連接,使用無DSN連接不需要已有的數(shù)據(jù)源。對于一個(gè)無DSN的ODBC連接,必須指定將要使用的ODBC驅(qū)動程序、服務(wù)器和數(shù)據(jù)庫。有時(shí)也可能需要用UID和PWD關(guān)鍵字提供登錄SQL Server數(shù)據(jù)庫的必要信息。(3)使用SQL Server

54、的OLE DB提供者創(chuàng)建一個(gè)連接使用SQL Server的OL E DB提供者非常類似于ODBC的OL E DB提供者。因?yàn)镾QL Server的OL E DB不使用ODBC ,所以沒有必要使用一個(gè)數(shù)據(jù)源或者一個(gè)已經(jīng)存在的ODBC驅(qū)動程序。然而,必須指定OL E DB提供者的名稱。2.3.3使用Recordset 對象遍歷SQL Server數(shù)據(jù)庫ADO允許使用Recordset或者Command對象檢索數(shù)據(jù)。這兩種對象都可以用于一個(gè)活動的Connection對象,或者打開它們自己的連接。Recordset分類:(1)只向前光標(biāo)在缺省情況下,ADO使用只向前光標(biāo)。該光標(biāo)提供了最好的性能和最低的

55、開支,然而,它的功能也是最低的。使用只向前光標(biāo)的Recordset對象是可修改的,但是只能修改當(dāng)前行。其他用戶在基表中所做的任何變化都不反映在Recordset對象中。(2)靜態(tài)光標(biāo)靜態(tài)光標(biāo)提供了光標(biāo)打開時(shí)數(shù)據(jù)的快照。使用靜態(tài)光標(biāo)的Recordset對象是不可修改的,并且它們不反映基表中的任何變化,除非該光標(biāo)關(guān)閉并重新打開。由于其靜態(tài)性質(zhì),所以由靜態(tài)光標(biāo)創(chuàng)建的Recordset對象一般比使用鍵集或者動態(tài)光標(biāo)的Recordset對象的資源強(qiáng)度低。然而,由于靜態(tài)光標(biāo)制作了數(shù)據(jù)的本地拷貝,所以對于大規(guī)模的結(jié)果集,在使用這種光標(biāo)時(shí)要小心。(3)鍵集光標(biāo)鍵集光標(biāo)創(chuàng)建了一組本地鍵,其中每一個(gè)鍵是結(jié)果集內(nèi)一

56、行的一個(gè)索引。當(dāng)應(yīng)用程序訪問使用鍵集光標(biāo)的Recordset對象時(shí),來自本地鍵集的鍵值從基表中檢索相應(yīng)的行。使用鍵集光標(biāo)的Recordset對象是可修改的,但是當(dāng)它們完全填滿之后,就不能動態(tài)地反映其他用戶在基表中所作的變化。鍵集光標(biāo)有很強(qiáng)大的功能,但是它們相對來說資源也是緊張的,因?yàn)榭蛻魴C(jī)系統(tǒng)必須維護(hù)整個(gè)結(jié)果集的關(guān)鍵值以及包含實(shí)際數(shù)據(jù)值的緩存區(qū)。(4)動態(tài)光標(biāo)動態(tài)光標(biāo)是功能最強(qiáng)大的一種ADO光標(biāo),但是它們的資源也是最緊張的。動態(tài)光標(biāo)非常類似于鍵集光標(biāo),它們都使用與結(jié)果集中每一行相對應(yīng)的一組本地鍵,并且都是可以修改的。然而,不像使用鍵集光標(biāo)的Recordset對象,使用動態(tài)光標(biāo)的Recordset對象可以自動反映其他應(yīng)用程序在基表中所作的變化。為了動態(tài)地維護(hù)結(jié)果集,使用動態(tài)光標(biāo)的Recordset對象必須連續(xù)地刷新結(jié)果集,使用任何變化自動修改本地的結(jié)果集。2.3.4使用Recordset對象更新SQL Server數(shù)據(jù)庫可用多種方法使ADO修改數(shù)據(jù)。ADO支持可修改的Recordset對象,它可使用AddNew ,Update和Delete函數(shù)修改包含在一個(gè)可修改的Recordset

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論