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