摘要 針對傳統考試中教師出題、組卷和改卷等繁重的工作量和受到時間、地點等諸多限制,利用網絡和數據庫技術,進行組卷、判卷和在線考試已成為發展趨勢。該系統是以JDK1.6和Netbeans6.9.1作為開發平臺,使用優秀的Web開源框架Struts2和對象持久化框架Hibernate,并采用AJAX來開發的B/S結構應用系統。
關鍵詞 在線考試系統;Hibernate;AJAX;B/S結構
中圖分類號:TP393 文獻標識碼:B 文章編號:1671-489X(2011)18-0120-02
在線考試是網上考試系統的核心模塊。該模塊的主要任務是:當考生正確登錄后,系統自動為考生分發試卷;學生答題完畢后提交試卷,系統把試卷及答案存入數據庫。但是現有的網上考試系統常常會出現一些性能問題。比如在大量考生同時提交試卷時,服務器卻無法承載過多用戶,常導致系統停止響應或出現頁面錯誤,甚至丟失試題、丟失成績等問題。Hibernate作為對象模型映射的框架,它對JDBC進行輕量級的對象封裝。不僅如此,Hibernate提供的二級緩存機制也使得性能優化成為可能。聯合使JDBC數據庫連接池技術和Hibernate二級緩存機制對在線考試進行優化,必將帶來系統性能的提升。
1 系統簡介
該系統是以JDK1.6和Netbeans6.9.1作為開發平臺,使用優秀的Web開源框架Struts2和對象持久化框架Hibernate,并采用AJAX來開發的B/S結構應用系統,利用Tomcat 6.0作為Web服務器和MYSQL作為數據庫服務器,其中采用AJAX,完全改變傳統的網絡傳輸模式,實現數據的異步傳輸。該系統的核心模塊是題庫、在線練習和在線自測,具體結構見圖1。
2 具體實現和關鍵性技術
2.1 表結構設計
數據庫設計中涉及的主要實體模型有學院、系部、教研室、教師、課程、題目以及其中的聯系。學院與系部是1:N,系部與教研室是1:N,教研室與教師是1:N,教研室與課程是1:N,課程與題目是1:N。經過不斷設計,該數據庫已經達到3NF的要求,是一套實用的數據庫系統。
2.2 表的完整性約束設計
約束是確保數據庫中的數據按所需的形式存在的一種方法。約束可用來定義數據格式的規則,在一個表中確保唯一性,保證數據能實際填入一列,保證多表間的列的完整性。MySQL中的集中常用約束:非空(NOT NULL)、檢查(CHECK)、唯一性(UNIQUE)、主鍵(PRIMARY KEY)、外鍵(FOREIGNKEY)。
2.3 存儲過程的設計
存儲過程(Stored Procedure)是一組為了完成特定功能的T-SQL語句集合,經過編譯后存儲在SQL Server服務器端數據庫中。可以利用存儲過程添加數據、修改數據、刪除數據。在試題管理模塊,當教師擁有試題添加、修改和刪除的權利,在做這些工作時,應用存儲過程速度要比在瀏覽器端執行SQL語句快得多。
2.4 觸發器的設計
觸發器是一種特殊的存儲過程,主要是通過事件觸發而被執行的,當對每一個表進行諸如UPDATE、INSERT和DELETE等數據記錄操作時,SQL Server就會自動執行事先定義好的語句。
2.5 異步局部刷新技術AJAX
在傳統的瀏覽器與服務器的交互方式中,當用戶觸發一個HTTP請求到服務器,服務器對其進行處理后,再返回一個新的Web頁到瀏覽器。每當服務器處理瀏覽器提交的請求時,用戶總是被強制進入“提交→等待→重新顯示”模式,不僅效率低,而且大大減弱用戶體驗。同時,刷新時造成的數據重復請求也加大服務器的負擔。AJAX提供與服務器異步通信的能力,可以在瀏覽器快速無刷新地顯示信息,使得系統響應更敏捷、交互性更強、用戶體驗更豐富。
3 結束語
在線考試系統通用試題庫的建設,是一項長期的、復雜的工作,同時也是一項細致的工作。該數據庫的設計充分考慮數據庫的安全性、完整性控制、較少的網絡傳輸性、較強的通用性,為在線考試系統的實現創造良好的數據環境。在線考試是未來考試發展的一種模式,也是種值得推廣的考試模式。
參考文獻
[1]謝忠紅.校園網環境下《VB程序設計》學習支撐系統的設計與實現[J].計算機工程與科學,2008,30(7):128-130
[2]馬婭婕,田翔川.校多媒體網絡教學系統在線考試題庫的設計[J].計算機應用研究,2005,22(1):182-183,186
[3]周解全.基于Web技術的醫學圖像在線考試系統的探討[J].中國醫學教育技術,2007,21(4):336-338
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文