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

下載本文檔

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

文檔簡(jiǎn)介

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ú)立研究、撰寫(xiě)的成果。設(shè)計(jì)中引用他人的文獻(xiàn)、數(shù)據(jù)、圖件、資料,均已在設(shè)計(jì)中加以說(shuō)明,除此之外,本設(shè)計(jì)不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)的成果作品。對(duì)本文研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中作了明確說(shuō)明并表示了謝意。本聲明的法律結(jié)果由本人承擔(dān)。 畢業(yè)設(shè)計(jì)作者簽名: 年 月 日山東輕工業(yè)學(xué)院關(guān)于畢業(yè)設(shè)計(jì)(論文)使用授權(quán)的說(shuō)明本畢業(yè)設(shè)計(jì)(論文)作者完全了解學(xué)校有關(guān)保留

2、、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:學(xué)校有權(quán)保留、送交設(shè)計(jì)的復(fù)印件,允許設(shè)計(jì)被查閱和借閱,學(xué)??梢怨荚O(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國(guó)內(nèi)外網(wǎng)絡(luò)教學(xué)的發(fā)展?fàn)顩r11.2網(wǎng)絡(luò)教學(xué)平臺(tái)系統(tǒng)建設(shè)21.2.1 系統(tǒng)建設(shè)原則21.2.2系統(tǒng)建設(shè)目標(biāo)2第二章網(wǎng)絡(luò)教學(xué)平臺(tái)的相關(guān)技術(shù)介紹和分析32.1網(wǎng)站制作環(huán)境ASP32.1.1ASP概述32.1.2ASP簡(jiǎn)介32.1.3ASP技術(shù)與傳統(tǒng)靜態(tài)主頁(yè)的區(qū)別32

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

4、象遍歷SQL Server數(shù)據(jù)庫(kù)132.3.4使用Recordset 對(duì)象更新SQL Server 數(shù)據(jù)庫(kù)142.4系統(tǒng)編程語(yǔ)言:VBScript15第三章 需求分析173.1需求分析的目的173.2本系統(tǒng)的需求分析173.2.1軟件操作平臺(tái)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ù)庫(kù)設(shè)計(jì)20第四章系統(tǒng)各個(gè)功能介紹224.1登陸界面224.2主頁(yè)面224.3短消息功能234.4管理員的功能244.4.1學(xué)生管理244.4.2開(kāi)課管理274.5教師和學(xué)生的功能284.5.1公告284.5.2網(wǎng)絡(luò)答疑294.5.3課程學(xué)習(xí)31結(jié)束語(yǔ)33參考

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

6、絡(luò)教學(xué)管理信息化,統(tǒng)計(jì)分析后針對(duì)學(xué)生特點(diǎn)實(shí)行智能化管理。本系統(tǒng)選用ASP作為腳本環(huán)境,使用SQL Server數(shù)據(jù)庫(kù)。運(yùn)用ASP和SQL Server2003數(shù)據(jù)庫(kù)管理軟件相結(jié)合,能夠在網(wǎng)絡(luò)教學(xué)平臺(tái)中方便的實(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)的功能說(shuō)明。關(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)境帶來(lái)了巨大的影響,每個(gè)高等學(xué)校都面臨著如何利用先進(jìn)的多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)來(lái)改進(jìn)傳統(tǒng)單一的教育、教學(xué)方法,創(chuàng)建適合學(xué)生學(xué)習(xí)特點(diǎn)的多樣化教育方法,建立新型的教學(xué)模式這一普遍問(wèn)題。特別是普通高等學(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國(guó)內(nèi)外網(wǎng)絡(luò)教學(xué)的發(fā)展?fàn)顩r在美國(guó),越來(lái)越多的人選擇半工半讀或在職學(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ā)展。現(xiàn)有三百五十多所大學(xué)和學(xué)院提供函授和因特網(wǎng)教育的遠(yuǎn)程學(xué)習(xí)學(xué)位,基本覆蓋了

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

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

16、進(jìn)行并相互融合的開(kāi)放式辦學(xué)格局。1.2網(wǎng)絡(luò)教學(xué)平臺(tái)系統(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)頁(yè)的方式提交,這就要求他必須具有較強(qiáng)的網(wǎng)頁(yè)制作和設(shè)計(jì)技能,一般難以達(dá)到,還會(huì)消費(fèi)過(guò)多的時(shí)間去考慮版面的美觀,實(shí)在是有點(diǎn)舍珠求魚(yú),得不償失。這部分工作應(yīng)由系統(tǒng)開(kāi)發(fā)工程師去完成。(3)模板化、導(dǎo)航幫助。在設(shè)計(jì)上,應(yīng)重點(diǎn)考慮其應(yīng)用的廣泛性,適合于不同學(xué)科的教師。既要考慮不同課程的特點(diǎn),又要在宏觀上考慮它們的共性。(4)安

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

39、有所幫助。1、與每個(gè)表列相關(guān)的數(shù)據(jù)類型應(yīng)該反映數(shù)據(jù)所需的最小存儲(chǔ)空間,特別是對(duì)于被索引的列更是如此。比如能使用smallint類型就不要用integer 類型,這樣索引字段可以被更快地讀取,而且可以在1 個(gè)數(shù)據(jù)頁(yè)上放置更多的數(shù)據(jù)行,因而也就減少了I/O 操作。2、把1 個(gè)表放在某個(gè)物理設(shè)備上,再通過(guò)SQL Server 段把它的不分簇索引放在1 個(gè)不同的物理設(shè)備上,這樣能提高性能。尤其是系統(tǒng)采用了多個(gè)智能型磁盤(pán)控制器和數(shù)據(jù)分離技術(shù)的情況下,這樣做的好處更加明顯。3、用SQL Server 段把一個(gè)頻繁使用的大表分割開(kāi),并放在2 個(gè)單獨(dú)的智能型磁盤(pán)控制器的數(shù)據(jù)庫(kù)設(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)類型的索引對(duì)SQL Server 性能的優(yōu)化是很有幫助的。(1)更新統(tǒng)計(jì)每個(gè)索引均具有一個(gè)維護(hù)其統(tǒng)計(jì)信息的分布項(xiàng)。優(yōu)化器利用這個(gè)項(xiàng)來(lái)判斷該索引對(duì)某個(gè)特定的查詢是否有用。但這個(gè)統(tǒng)計(jì)信息并不動(dòng)態(tài)地重新計(jì)算。這意味著,當(dāng)表的數(shù)據(jù)改變了之后,統(tǒng)計(jì)信息有可能是過(guò)時(shí)的,從而影響優(yōu)化器追求最

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

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

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

44、L 語(yǔ)句的Where 子句中由于salary字段是money型,而45000 是整型數(shù),因此就無(wú)法使用定義在salary上的索引。(2) 避免LEFT JOIN 和NULLSQL 的一個(gè)有價(jià)值的常用功能是LEFT JOIN。它可以用于檢索第一個(gè)表中的所有行、第二個(gè)表中所有匹配的行、以及第二個(gè)表中與第一個(gè)表中不匹配的所有行。例如,如果希望返回每個(gè)客戶及其定單,使用LEFT JOIN 則可以顯示有定單和沒(méi)有定單的客戶。LEFT JOIN 消耗的資源非常之多,因?yàn)樗鼈儼cNULL( 不存在) 數(shù)據(jù)匹配的數(shù)據(jù)。因此在構(gòu)造查詢語(yǔ)句時(shí)盡量避免使用LEFT JOIN 和NULL。(3)避免對(duì)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)該寫(xiě)為: 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í)不會(huì)用到索引,其查詢速度大大下降,應(yīng)避免在Where 條件中使用非聚合表達(dá)式。2.2.8操作環(huán)境優(yōu)化(1)設(shè)置SQL Server 的優(yōu)先級(jí)許多操作環(huán)境根據(jù)CPU的使用狀況來(lái)動(dòng)態(tài)地調(diào)整進(jìn)程的優(yōu)先級(jí),如果SQL Server的優(yōu)先級(jí)降低,其性能將會(huì)降低。如果你想將SQL Server進(jìn)程的優(yōu)先級(jí)改變?yōu)檩^高的值,應(yīng)確保沒(méi)有置的過(guò)高,以至影響操作系統(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í)某些查詢沒(méi)有很好地優(yōu)化排列,從而返回多于

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

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

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

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

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

52、個(gè)用于SQL Server的ODBC驅(qū)動(dòng)程序和一個(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用來(lái)指定將要使用的OL E DB提供者的名稱,缺省情況下使用MSDASQL提供者DSN用來(lái)指定將要連接的由ODBC Administrator創(chuàng)建的已經(jīng)存在的數(shù)據(jù)源名稱Driver用來(lái)指定將要使用的一個(gè)已經(jīng)存在的ODBC驅(qū)動(dòng)程序的名稱Server用來(lái)指定將要使用的一個(gè)已經(jīng)存在

53、的SQL Server系統(tǒng)的名稱UID用來(lái)指定將要使用的用于登錄數(shù)據(jù)源的帳號(hào)IDPWD用來(lái)指定將要使用的與登錄帳號(hào)ID相關(guān)的口令Database用來(lái)指定將要使用的目標(biāo)數(shù)據(jù)庫(kù)名稱(2)使用MSDASQL創(chuàng)建一個(gè)無(wú)DSN連接在一些情況下,應(yīng)用程序需要建立一個(gè)基于ODBC的連接,并且它不能依靠一個(gè)預(yù)配置的DSN。MSDASQLOL E DB提供者也支持使用無(wú)DSN連接,使用無(wú)DSN連接不需要已有的數(shù)據(jù)源。對(duì)于一個(gè)無(wú)DSN的ODBC連接,必須指定將要使用的ODBC驅(qū)動(dòng)程序、服務(wù)器和數(shù)據(jù)庫(kù)。有時(shí)也可能需要用UID和PWD關(guān)鍵字提供登錄SQL Server數(shù)據(jù)庫(kù)的必要信息。(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 ,所以沒(méi)有必要使用一個(gè)數(shù)據(jù)源或者一個(gè)已經(jīng)存在的ODBC驅(qū)動(dòng)程序。然而,必須指定OL E DB提供者的名稱。2.3.3使用Recordset 對(duì)象遍歷SQL Server數(shù)據(jù)庫(kù)ADO允許使用Recordset或者Command對(duì)象檢索數(shù)據(jù)。這兩種對(duì)象都可以用于一個(gè)活動(dòng)的Connection對(duì)象,或者打開(kāi)它們自己的連接。Recordset分類:(1)只向前光標(biāo)在缺省情況下,ADO使用只向前光標(biāo)。該光標(biāo)提供了最好的性能和最低的

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

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

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論