姜 雷,施澤全,羅元成
摘 要:為了提高網(wǎng)絡(luò)無紙化考試系統(tǒng)的數(shù)據(jù)訪問速度,對考試流程進(jìn)行具體分析,提出集中存儲和分散存儲兩種部署的方案,在數(shù)據(jù)訪問量相當(dāng)?shù)那闆r下,對兩種方案的數(shù)據(jù)訪問時(shí)間進(jìn)行比較,得出分散存儲的效率高于集中存儲。根據(jù)分散存儲的特點(diǎn),給出使用Delphi編寫程序時(shí),在客戶端創(chuàng)建臨時(shí)表的方法。應(yīng)用結(jié)果表明,使用分散存儲,降低了網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)呢?fù)荷,提高了數(shù)據(jù)的訪問速度,增加了系統(tǒng)的整體性能。
關(guān)鍵詞:無紙化考試;數(shù)據(jù)存儲;臨時(shí)表;Delphi
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2009)20-113-03
Data Storage Processing Research of Network Paperless Examination System
JIANG Lei,SHI Zequan,LUO Yuancheng
(Chongqing Vocational Institute of Engineering,Chongqing,400037,China)
Abstract:To increase data access speed of the network paperless examination system,the examination process is analysed integrated storage and distributed storage are promoted.The data access time of the two designs with the same amount of data access are compared,and the result is that the distributed storage is more efficient than the integrated storage.According to the characteristics of the distributed storage,a way of creating the temperary table at the client computer with Delphi is shown.The research shows that the distributed storage can lower the data transportation load on the network,increase the data accessing speed,and improve the comprehensive system performance.
Keywords:paperless examination;data storage;temperary table;Delphi
0 引 言
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫技術(shù)的發(fā)展, 網(wǎng)絡(luò)無紙化考試系統(tǒng)以其公正性、安全性、準(zhǔn)確性、靈活性、隨機(jī)性、及時(shí)性、方便性等特點(diǎn)已成為目前國際上普遍采用的一種考試形式。例如,遍布全球的美國思爾文學(xué)習(xí)系統(tǒng)有限公司的計(jì)算機(jī)化考試系統(tǒng),包括計(jì)算機(jī)類的微軟專家認(rèn)證,外語的GRE,TOEFL等[1],都得到用戶的廣泛使用。
目前,計(jì)算機(jī)基礎(chǔ)課程已成為高等學(xué)校各個(gè)專業(yè)的一門公共必修課。該課程的教學(xué)目的是培養(yǎng)學(xué)生的計(jì)算機(jī)文化素養(yǎng),提高學(xué)生的計(jì)算機(jī)應(yīng)用能力,為學(xué)生從事各項(xiàng)實(shí)際工作打下一個(gè)良好的基礎(chǔ)。計(jì)算機(jī)基礎(chǔ)課程的實(shí)踐性很強(qiáng),學(xué)習(xí)效果主要體現(xiàn)在對計(jì)算機(jī)的實(shí)際操作能力上,因此實(shí)現(xiàn)對學(xué)生計(jì)算機(jī)實(shí)際操作能力的考核就顯得尤為重要。然而,傳統(tǒng)的考試方式從出題、考試、閱卷到成績統(tǒng)計(jì)分析,過程繁瑣,環(huán)節(jié)較多,教師閱卷工作量大,試卷分析工作難以開展,特別是無法真正實(shí)現(xiàn)對計(jì)算機(jī)應(yīng)用能力的考核[2]。網(wǎng)絡(luò)無紙化考試系統(tǒng)有效整合校園網(wǎng)的軟硬件資源,利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)化考試,與傳統(tǒng)考試方式相比,既體現(xiàn)考試的公正、公平,又能減輕考試組卷、評卷的工作量,特別是它能比較客觀地考核學(xué)生的計(jì)算機(jī)應(yīng)用能力,對于提高教學(xué)質(zhì)量具有十分積極的意義。
作為網(wǎng)絡(luò)無紙化考試系統(tǒng)開發(fā)的前期工作,考試過程中數(shù)據(jù)存儲處理的設(shè)計(jì)起著至關(guān)重要的作用,從一定程度上它決定了數(shù)據(jù)的存儲效率和訪問速度,決定了算法復(fù)雜度和程序執(zhí)行的效率,也從一定程度上決定著考試系統(tǒng)的優(yōu)劣和穩(wěn)定性。
在此基于自主開發(fā)的計(jì)算機(jī)等級考試系統(tǒng),從考試流程分析、系統(tǒng)存儲部署和臨時(shí)表的創(chuàng)建等方面,對利用客戶端文件臨時(shí)表來提高系統(tǒng)效率和穩(wěn)定性方面做了具體闡述。
1 考試流程分析
學(xué)生使用網(wǎng)絡(luò)無紙化考試系統(tǒng)進(jìn)行考試,大體上經(jīng)歷登錄系統(tǒng)、組卷、答題、交卷等幾個(gè)階段。在此期間,系統(tǒng)要進(jìn)行考生身份驗(yàn)證、考試考卷生成、考試情況記錄、考試結(jié)果評分等幾個(gè)階段。考生考試和系統(tǒng)處理流程如圖1所示。
圖1 考試流程圖
考題由系統(tǒng)從題庫中隨機(jī)抽題生成,每個(gè)考生的考卷不盡相同。由此,為每個(gè)考生單獨(dú)保存生成的試卷,并在考試過程中記錄考生的考試進(jìn)度,就成為考試中系統(tǒng)數(shù)據(jù)存儲和處理的關(guān)鍵??荚囘^程中遭遇突發(fā)情況,如斷電、死機(jī)等,是否能保存考生試卷和考試進(jìn)度,考生是否可以接著繼續(xù)考試,都將直接影響系統(tǒng)的穩(wěn)定性和決定系統(tǒng)的優(yōu)劣。
2 系統(tǒng)存儲部署
在設(shè)計(jì)系統(tǒng)的存儲部署時(shí),提出兩種部署方案:一種方案是集中存儲,即將考生試卷和考試進(jìn)度都集中保存到數(shù)據(jù)庫服務(wù)器上,遭遇突發(fā)情況后,考生可重啟計(jì)算機(jī)或換機(jī)進(jìn)行二次登錄續(xù)考;另外一種方案是分散存儲,即將考生試卷和考試進(jìn)度保存在考生機(jī)(客戶端)上,遭遇突發(fā)情況后,考生可重啟計(jì)算機(jī)續(xù)考或由管理人員遷移考試數(shù)據(jù)后換機(jī)續(xù)考。
對實(shí)現(xiàn)技術(shù)來說,兩者大同小異,都是采取生成臨時(shí)數(shù)據(jù)表的方式保存考生試卷和考試進(jìn)度的,前者是在數(shù)據(jù)庫服務(wù)器上生成臨時(shí)表;后者是在客戶端上生成臨時(shí)表??忌峤辉嚲斫o系統(tǒng)評分后,這些臨時(shí)表都會(huì)被清除。
系統(tǒng)中對數(shù)據(jù)的存取是最頻繁的操作,數(shù)據(jù)的訪問速度是衡量系統(tǒng)性能和程序執(zhí)行效率的重要指標(biāo),在兩種存儲部署方案下,數(shù)據(jù)訪問量相當(dāng),因而數(shù)據(jù)的訪問速度就直接取決于數(shù)據(jù)的訪問時(shí)間。可以歸結(jié)于以下計(jì)算公式:
T=N(++C)
式中:T是數(shù)據(jù)的訪問時(shí)間;N是訪問的數(shù)據(jù)量;是單位數(shù)據(jù)存取的平均時(shí)間;是單位數(shù)據(jù)存取的平均等待時(shí)間;C是單位數(shù)據(jù)的傳輸時(shí)間。
在兩種存儲部署方案下,N始終是相等的,即:
ND=NC
式中:ND是直接在數(shù)據(jù)庫服務(wù)器進(jìn)行存取時(shí)的數(shù)據(jù)量;NC是在客戶端進(jìn)行存取時(shí)的數(shù)據(jù)量。
取決于磁盤的讀寫速度,與存儲部署方案無關(guān),一般來講,服務(wù)器性能會(huì)比客戶端稍微高一些,兩種部署方案的近似相等,即:
D霤
當(dāng)計(jì)算機(jī)處理的數(shù)據(jù)量比較大時(shí),會(huì)建立一個(gè)等待隊(duì)列。顯而易見,由于數(shù)據(jù)庫服務(wù)器要處理考場內(nèi)全部考生的數(shù)據(jù),其數(shù)據(jù)量大,因此數(shù)據(jù)庫服務(wù)器處理數(shù)據(jù)時(shí)的等待時(shí)間會(huì)大于客戶端處理數(shù)據(jù)時(shí)的等待時(shí)間,即:
D>C
在數(shù)據(jù)庫服務(wù)器上存取處理數(shù)據(jù)時(shí),數(shù)據(jù)要在服務(wù)器和客戶端之間來回傳輸,耗時(shí)較多,而在客戶端直接存取處理數(shù)據(jù)時(shí),數(shù)據(jù)只在計(jì)算機(jī)內(nèi)部總線傳輸,耗時(shí)可以忽略不計(jì),即:
CC0,CD>CC
因此,可以得出如下結(jié)論:
D+D+CD>C+C+CC
即:
TD>TC
可以看出,在系統(tǒng)性能和程序執(zhí)行效率方面,在數(shù)據(jù)庫服務(wù)器上直接存取數(shù)據(jù)的部署方案遠(yuǎn)不如在客戶端存取數(shù)據(jù)的部署方案。因此,設(shè)計(jì)系統(tǒng)存儲部署方案如圖2所示。
圖2 系統(tǒng)存儲部署
3 臨時(shí)表的創(chuàng)建
使用Delphi創(chuàng)建的臨時(shí)表可分為兩類,即內(nèi)存臨時(shí)表和文件臨時(shí)表。內(nèi)存臨時(shí)表創(chuàng)建后駐留在本機(jī)內(nèi)存中,訪問速度較快,但遭遇斷電或死機(jī)等異常后,整個(gè)表和其中的數(shù)據(jù)都會(huì)丟失,無法實(shí)現(xiàn)考生二次登錄續(xù)考。文件臨時(shí)表創(chuàng)建后以文件形式存放在本機(jī)磁盤,訪問速度較內(nèi)存臨時(shí)表稍慢,但數(shù)據(jù)的存儲是永久性的,除非人為刪除,這有利于保存考生試卷和考試進(jìn)度,從而進(jìn)一步實(shí)現(xiàn)考生二次登錄續(xù)考。
創(chuàng)建文件臨時(shí)表的方法較為簡單,只要確定表的結(jié)構(gòu),即表中有哪些字段,每一個(gè)字段的字段名、類型、寬度等[3],就可以用一個(gè)過程來實(shí)現(xiàn)文件臨時(shí)表的創(chuàng)建。下面以創(chuàng)建保存單選題的文件臨時(shí)表為例,表結(jié)構(gòu)為題號(整型,流水號)、題干(字符串,255)、選項(xiàng)A(字符串,255)、選項(xiàng)B(字符串,255)、選項(xiàng)C(字符串,255)、選項(xiàng)D(字符串,255)、正確答案(字符串,1)、考生答案(字符串,1)。
設(shè)表文件的存儲路徑為“c:\test\data”,表文件名為“SingleSel.db”,表的類型為“ttParadox”,可以利用以下代碼實(shí)現(xiàn)該文件臨時(shí)表的創(chuàng)建:
var
tbl:TTable;//定義表對象tbl
begin
tbl:=TTable.Create(Application);//創(chuàng)建表對象
with tbl do begin
Active:=False;//定義表之前必須關(guān)閉表
DatabaseName:="c:\test\data";//設(shè)置表的存儲位置
TableName:="SingleSel.db";//設(shè)置表的名稱
TableType:=ttParadox;//設(shè)置表的類型
with FieldDefs do begin
Clear;//清除表中原有的字段
Add(′題號′,ftAutoInc,0,False);//增加一個(gè)流水號字段
Add(′題干′,ftString,255,False);
Add(′選項(xiàng)A′,ftString,255,False);
Add(′選項(xiàng)B′,ftString,255,False);
Add(′選項(xiàng)C′,ftString,255,False);
Add(′選項(xiàng)D′,ftString,255,False);
Add(′正確答案′,ftString,1,False);
Add(′考生答案′,ftString,1,true);
end;
With indexDefs do begin
Clear;//清除索引定義
Add(′FieldIndex′,′序號′,[ixPrimary,ixUnique]);//添加索引定義
end;
CreateTable;//創(chuàng)建上面定義格式的表
end;
end;
4 結(jié) 語
這里主要是在綜合考慮數(shù)據(jù)存儲處理的速度、程序執(zhí)行的效率和系統(tǒng)穩(wěn)定性等因素的基礎(chǔ)上,對網(wǎng)絡(luò)無紙化考試系統(tǒng)的數(shù)據(jù)存儲處理提供一個(gè)設(shè)計(jì)方案,并給出利用Delphi在客戶端創(chuàng)建文件臨時(shí)表的方法。該方案在后期系統(tǒng)使用過程中體現(xiàn)出很大的優(yōu)勢;大大減少了服務(wù)器在數(shù)據(jù)存儲上的開銷,提高了數(shù)據(jù)的訪問速度,降低了網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)呢?fù)荷,增加了系統(tǒng)的整體性能。
參考文獻(xiàn)
[1]郝瑩.網(wǎng)上無紙化考試系統(tǒng)的意義與實(shí)現(xiàn)[J].北京建筑工程學(xué)院學(xué)報(bào),2000,16(2):108-113.
[2]徐守萍.計(jì)算機(jī)基礎(chǔ)課程無紙化考試系統(tǒng)設(shè)計(jì)[J].廣東交通職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,6(3):62-64.
[3]李文華,楊奔全.數(shù)據(jù)表結(jié)構(gòu)的動(dòng)態(tài)創(chuàng)建與動(dòng)態(tài)更新[J].中國科技信息,2005(5):22,15.
[4]郭志,陳金良,郭書俊.臨時(shí)表在系統(tǒng)開發(fā)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2003,24(8):69-71,74.
[5]楊新鋒,劉平.Office無紙化考試自動(dòng)化評分研究[J].科技廣場,2007(3):153-154.
[6]劉作軍,任永峰.無紙化考試數(shù)據(jù)庫設(shè)計(jì)方案改進(jìn)研究[J].現(xiàn)代電子技術(shù),2007,30(20):64-65,68.
[7]殷大發(fā).無紙化考試系統(tǒng)的研究和開發(fā)[J].計(jì)算機(jī)與現(xiàn)代化,2004(3):82-85.
[8]丁亞濤.無紙化考試平臺構(gòu)建技術(shù)[J].巢湖學(xué)院學(xué)報(bào),2007,9(3):32-35.
[9]陳清利,劉琳.基于B/S結(jié)構(gòu)的網(wǎng)絡(luò)考試系統(tǒng)的分析與設(shè)計(jì)[J].信息技術(shù)與信息化,2008(2):30-32.
[10]胡楓.無紙化考試系統(tǒng)的設(shè)計(jì)與開發(fā)[J].湘南學(xué)院學(xué)報(bào),2008,29(2):90-93.