楊曉吟
摘 要:介紹了在線考試系統(tǒng)中組卷過程的相關(guān)技術(shù),分析了數(shù)據(jù)庫存儲過程在數(shù)據(jù)處理方面的優(yōu)勢與特點,在此基礎(chǔ)上建立了在線考試系統(tǒng)的數(shù)據(jù)庫設(shè)計方案,給出了考試中抽取的算法,應(yīng)用數(shù)據(jù)庫中的存儲過程實現(xiàn)了算法。
關(guān)鍵詞:考試系統(tǒng);存儲過程;組卷;數(shù)據(jù)庫;抽題
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2017)23-0010-02
隨著網(wǎng)絡(luò)與計算機(jī)技術(shù)的飛躍發(fā)展,網(wǎng)絡(luò)在線考試系統(tǒng)在各類校園中推廣。組卷功能模塊是整個在線考試系統(tǒng)的關(guān)鍵。編寫科學(xué)、合理、有效的組卷算法,對于保證考試的公平公正以及對教師教學(xué)方法的改進(jìn)、教學(xué)質(zhì)量的提高都有實質(zhì)性的作用。那么在線考試系統(tǒng)中如何具體實現(xiàn)組卷策略呢?大多數(shù)考試系統(tǒng)都是在客戶端中完成組卷策略從而完成抽題。但當(dāng)考生人數(shù)較多、數(shù)據(jù)交互量較大時會造成系統(tǒng)超負(fù)荷,嚴(yán)重時甚至?xí)?dǎo)致系統(tǒng)奔潰,如何才能避免此種現(xiàn)象發(fā)生呢?主要應(yīng)致力于減少客戶端與數(shù)據(jù)庫服務(wù)器之間的數(shù)據(jù)交互。解決方案是將組卷策略算法從客戶端改到數(shù)據(jù)庫服務(wù)器端,基于數(shù)據(jù)庫存儲過程的組卷策略算法正好符合需求。
1 關(guān)鍵技術(shù)與相關(guān)理論
1.1 網(wǎng)站三層構(gòu)架
隨著企業(yè)規(guī)模的日益擴(kuò)大,應(yīng)用程序的復(fù)雜程度不斷提高,由傳統(tǒng)的二層結(jié)構(gòu)模式過渡到三層結(jié)構(gòu)模式,三層結(jié)構(gòu)是將應(yīng)用功能分成表示層、功能層和數(shù)據(jù)層三部分。表示層主要對用戶請求給予應(yīng)答,它擔(dān)負(fù)著用戶與應(yīng)用程序之間的對話功能,用于檢查用戶從鍵盤輸入的數(shù)據(jù)、顯示應(yīng)用輸出的數(shù)據(jù)。在變更用戶接口時,只需改寫顯示控制和數(shù)據(jù)檢查程序,而不影響另外兩層。檢查的內(nèi)容也只限于數(shù)據(jù)的形式和值的范圍,不包括有關(guān)業(yè)務(wù)本身的處理邏輯。功能層又稱業(yè)務(wù)邏輯層,它位于數(shù)據(jù)訪問層與表示層的中間,是聯(lián)系表示層和數(shù)據(jù)層的“橋梁”,它響應(yīng)用戶發(fā)來的請求,執(zhí)行業(yè)務(wù)任務(wù),并對相應(yīng)的數(shù)據(jù)進(jìn)行處理,用戶不需要直接和數(shù)據(jù)庫打交道。數(shù)據(jù)層,就是DBMS,負(fù)責(zé)管理對數(shù)據(jù)庫數(shù)據(jù)的訪問。DBMS必須能迅速執(zhí)行大量數(shù)據(jù)的操作。一般從功能層傳送到數(shù)據(jù)層的要求大都使用SQL語言。
1.2 ADO.NET
ADO.NET技術(shù)是當(dāng)前一個標(biāo)準(zhǔn)化技術(shù),這種技術(shù)能夠創(chuàng)建一些分布式數(shù)據(jù),并且對相應(yīng)的程序進(jìn)行共享,提供一個功能強(qiáng)大的數(shù)據(jù)接口,是對原有ADO技術(shù)的進(jìn)一步發(fā)展,它在數(shù)據(jù)的互操作性、可維護(hù)性、可編程性方面 具有優(yōu)越的性能。
在ADO.NET中包含了許多子類,程序開發(fā)員可以通過使用這些子類來完成對數(shù)據(jù)的操作。在.NET框架下,只要是通過.NET技術(shù)進(jìn)行開發(fā)設(shè)計的應(yīng)用程序都可以使用ADO.NET技術(shù),上述技術(shù)能夠應(yīng)用在數(shù)據(jù)庫客戶端程序的前段與后段,并且還能夠應(yīng)用在瀏覽器的各大業(yè)務(wù)邏輯對象之中。
1.3 SQL Server 2005
SQL Server 2005是一個比較全年和全新的數(shù)據(jù)平臺,并且這種平臺能夠為企業(yè)提供一些較為全面的數(shù)據(jù)級的管理服務(wù)。SQL Server 2005的數(shù)據(jù)庫引擎還能夠?qū)Ω鞣N數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理,在某種程度上提高一種相對比較安全和可靠的服務(wù)功能,這樣可以使得當(dāng)前的業(yè)務(wù)能夠在更加高級的數(shù)據(jù)層面進(jìn)行使用?;赟QL Server2000以上這些優(yōu)良特性,綜合考慮本次開發(fā)的教務(wù)管理系統(tǒng)的數(shù)據(jù)流量和事務(wù)處理量,SQL 2005是本系統(tǒng)數(shù)據(jù)庫管理工具的合適選擇。
1.4 存儲過程
存儲過程是用SQL語言編寫的,完成指定的數(shù)據(jù)查詢、增加、修改、刪除等功能或提供一定的服務(wù)過程,預(yù)先在數(shù)據(jù)庫服務(wù)器中進(jìn)行編譯和優(yōu)化和存儲??蛻舳顺绦蚩梢赃h(yuǎn)程調(diào)用相應(yīng)的存儲過程。由于存儲過程已經(jīng)被編譯和優(yōu)化過了,所以在執(zhí)行的時候可以節(jié)省開銷,運行速度大大提升。而且,由于存儲過程是運行在服務(wù)器端,所以通過網(wǎng)絡(luò)傳輸?shù)膬H是一個遠(yuǎn)程調(diào)用和最終的運行結(jié)果,不需要傳送一系列的SQL語句和相應(yīng)的返回結(jié)果,從而減少了網(wǎng)絡(luò)的數(shù)據(jù)傳輸量,提高了系統(tǒng)的性能和穩(wěn)定性。
2 系統(tǒng)數(shù)據(jù)庫設(shè)計
2.1 數(shù)據(jù)庫概念結(jié)構(gòu)的設(shè)計
對整個系統(tǒng)的數(shù)據(jù)庫進(jìn)行詳細(xì)的分析與設(shè)計,得到了一些概念性的設(shè)計思路。現(xiàn)將在線考試系統(tǒng)的所有實體設(shè)計出來,然后將實體相關(guān)的信息抽象為數(shù)據(jù)庫的概念結(jié)構(gòu),然后用E-R圖描述出來,如圖1所示。圖1為試卷信息實體,包括答題時間、開始時間、結(jié)束時間、組卷方式、題目總數(shù)、顯示模式、是否自動評分、填空類試題是否自動評分、通過分?jǐn)?shù)、試卷總分、出題方式、試卷類型、試卷名稱、試卷編號、是否允許查看考試結(jié)果、是否允許多次參加考試等。
2.2 數(shù)據(jù)庫物理結(jié)構(gòu)的設(shè)計
在上面設(shè)計的基礎(chǔ)上,形成數(shù)據(jù)庫中的表格,以及表與表之間的關(guān)系。根據(jù)相應(yīng)的關(guān)系模型,對數(shù)據(jù)進(jìn)行物理設(shè)計,系統(tǒng)采用PowerDesigner進(jìn)行數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計。通過對所設(shè)出的實體關(guān)系模型E-R圖分析研究基礎(chǔ)上,完成數(shù)據(jù)庫中的表格和字段的設(shè)計。數(shù)據(jù)庫表分別如下:
PaperInfo表用于存放試卷信息,包括試卷編號、試卷名稱、試卷類型、出題方式、試卷顯示模式、答題時間、開始時間、結(jié)束時間、試卷總分、通過分?jǐn)?shù)、是否允許多次參加考試、是否允許填空類試題自動評卷、是否允許查看評卷結(jié)果、自動保存時間、參加考試人員、管理試卷人員、考試題目總數(shù)、是否自動評分、組卷的方式、創(chuàng)建試卷用戶ID、創(chuàng)建試卷時間。
PaperPolicy表用于存放試卷策略信息,包括試卷策略編號、試卷編號、科目編號、知識點編號、題型編號、易的題目數(shù)量、較易的題目數(shù)量、中等的題目數(shù)量、較難的題目數(shù)量、難的題目數(shù)量。
2.3 組卷存儲過程的實現(xiàn)
依據(jù)以上的數(shù)據(jù)庫設(shè)計用存儲過程完成相應(yīng)的組卷算法,具體思路是:考前教師預(yù)先設(shè)置好考試科目、試卷名稱、試卷的各種參數(shù),考生登錄之后,考生信息和試卷參數(shù)從客戶端傳送到存儲過程,存儲過程根據(jù)試卷設(shè)置參數(shù)組成相應(yīng)試卷,并將試卷結(jié)構(gòu)存儲到數(shù)據(jù)庫中的試卷表中,在SQL Server 2005中存儲過程的部分實現(xiàn)代碼如下:
3 結(jié)語
如果開發(fā)人員熟練掌握存儲過程,并在合適的時候合理的應(yīng)用,將提高應(yīng)用程序的運行效率。目前,我校使用的在線考試系統(tǒng)中的組卷模塊就是采用了這種方法,從實際使用情況來看,達(dá)到了預(yù)期的目標(biāo),在組卷上沒有出過錯誤,并且系統(tǒng)運行相當(dāng)穩(wěn)定。
參考文獻(xiàn)
[1]龍瓊芳.SQL考試隨機(jī)組卷改卷系統(tǒng)的設(shè)計和實現(xiàn)[J].信息技術(shù),2015,(4):14-16.
[2]肖洋.在線考試組卷算法研究[J].北京化工大學(xué)學(xué)報,2006,(4):44-47.
[3]詹開明.職業(yè)資格考試中組卷策略應(yīng)用研究[J].中國管理信息化,2012,(6):49-51.
[4]劉丹.在線考試系統(tǒng)中組卷的分類與實現(xiàn)[J].遼寧師專學(xué)報,2012,(12):67-68.
[5]謝曉廣.網(wǎng)絡(luò)化考試組卷算法及QTI標(biāo)準(zhǔn)應(yīng)用研究[J].現(xiàn)代電子技術(shù),2016,(13):112-116.endprint