姜 雷,施泽全,罗元成
摘 要:为了提高网络无纸化考试系统的数据访问速度,对考试流程进行具体分析,提出集中存储和分散存储两种部署的方案,在数据访问量相当的情况下,对两种方案的数据访问时间进行比较,得出分散存储的效率高于集中存储。根据分散存储的特点,给出使用Delphi编写程序时,在客户端创建临时表的方法。应用结果表明,使用分散存储,降低了网络数据传输的负荷,提高了数据的访问速度,增加了系统的整体性能。
关键词:无纸化考试;数据存储;临时表;Delphi
中图分类号:TP311文献标识码: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 引 言
随着计算机网络技术和数据库技术的发展, 网络无纸化考试系统以其公正性、安全性、准确性、灵活性、随机性、及时性、方便性等特点已成为目前国际上普遍采用的一种考试形式。例如,遍布全球的美国思尔文学习系统有限公司的计算机化考试系统,包括计算机类的微软专家认证,外语的GRE,TOEFL等[1],都得到用户的广泛使用。
目前,计算机基础课程已成为高等学校各个专业的一门公共必修课。该课程的教学目的是培养学生的计算机文化素养,提高学生的计算机应用能力,为学生从事各项实际工作打下一个良好的基础。计算机基础课程的实践性很强,学习效果主要体现在对计算机的实际操作能力上,因此实现对学生计算机实际操作能力的考核就显得尤为重要。然而,传统的考试方式从出题、考试、阅卷到成绩统计分析,过程繁琐,环节较多,教师阅卷工作量大,试卷分析工作难以开展,特别是无法真正实现对计算机应用能力的考核[2]。网络无纸化考试系统有效整合校园网的软硬件资源,利用计算机网络技术和数据库技术,实现网络化考试,与传统考试方式相比,既体现考试的公正、公平,又能减轻考试组卷、评卷的工作量,特别是它能比较客观地考核学生的计算机应用能力,对于提高教学质量具有十分积极的意义。
作为网络无纸化考试系统开发的前期工作,考试过程中数据存储处理的设计起着至关重要的作用,从一定程度上它决定了数据的存储效率和访问速度,决定了算法复杂度和程序执行的效率,也从一定程度上决定着考试系统的优劣和稳定性。
在此基于自主开发的计算机等级考试系统,从考试流程分析、系统存储部署和临时表的创建等方面,对利用客户端文件临时表来提高系统效率和稳定性方面做了具体阐述。
1 考试流程分析
学生使用网络无纸化考试系统进行考试,大体上经历登录系统、组卷、答题、交卷等几个阶段。在此期间,系统要进行考生身份验证、考试考卷生成、考试情况记录、考试结果评分等几个阶段。考生考试和系统处理流程如图1所示。
图1 考试流程图
考题由系统从题库中随机抽题生成,每个考生的考卷不尽相同。由此,为每个考生单独保存生成的试卷,并在考试过程中记录考生的考试进度,就成为考试中系统数据存储和处理的关键。考试过程中遭遇突发情况,如断电、死机等,是否能保存考生试卷和考试进度,考生是否可以接着继续考试,都将直接影响系统的稳定性和决定系统的优劣。
2 系统存储部署
在设计系统的存储部署时,提出两种部署方案:一种方案是集中存储,即将考生试卷和考试进度都集中保存到数据库服务器上,遭遇突发情况后,考生可重启计算机或换机进行二次登录续考;另外一种方案是分散存储,即将考生试卷和考试进度保存在考生机(客户端)上,遭遇突发情况后,考生可重启计算机续考或由管理人员迁移考试数据后换机续考。
对实现技术来说,两者大同小异,都是采取生成临时数据表的方式保存考生试卷和考试进度的,前者是在数据库服务器上生成临时表;后者是在客户端上生成临时表。考生提交试卷给系统评分后,这些临时表都会被清除。
系统中对数据的存取是最频繁的操作,数据的访问速度是衡量系统性能和程序执行效率的重要指标,在两种存储部署方案下,数据访问量相当,因而数据的访问速度就直接取决于数据的访问时间。可以归结于以下计算公式:
T=N(++C)
式中:T是数据的访问时间;N是访问的数据量;是单位数据存取的平均时间;是单位数据存取的平均等待时间;C是单位数据的传输时间。
在两种存储部署方案下,N始终是相等的,即:
ND=NC
式中:ND是直接在数据库服务器进行存取时的数据量;NC是在客户端进行存取时的数据量。
取决于磁盘的读写速度,与存储部署方案无关,一般来讲,服务器性能会比客户端稍微高一些,两种部署方案的近似相等,即:
D霤
当计算机处理的数据量比较大时,会建立一个等待队列。显而易见,由于数据库服务器要处理考场内全部考生的数据,其数据量大,因此数据库服务器处理数据时的等待时间会大于客户端处理数据时的等待时间,即:
D>C
在数据库服务器上存取处理数据时,数据要在服务器和客户端之间来回传输,耗时较多,而在客户端直接存取处理数据时,数据只在计算机内部总线传输,耗时可以忽略不计,即:
CC0,CD>CC
因此,可以得出如下结论:
D+D+CD>C+C+CC
即:
TD>TC
可以看出,在系统性能和程序执行效率方面,在数据库服务器上直接存取数据的部署方案远不如在客户端存取数据的部署方案。因此,设计系统存储部署方案如图2所示。
图2 系统存储部署
3 临时表的创建
使用Delphi创建的临时表可分为两类,即内存临时表和文件临时表。内存临时表创建后驻留在本机内存中,访问速度较快,但遭遇断电或死机等异常后,整个表和其中的数据都会丢失,无法实现考生二次登录续考。文件临时表创建后以文件形式存放在本机磁盘,访问速度较内存临时表稍慢,但数据的存储是永久性的,除非人为删除,这有利于保存考生试卷和考试进度,从而进一步实现考生二次登录续考。
创建文件临时表的方法较为简单,只要确定表的结构,即表中有哪些字段,每一个字段的字段名、类型、宽度等[3],就可以用一个过程来实现文件临时表的创建。下面以创建保存单选题的文件临时表为例,表结构为题号(整型,流水号)、题干(字符串,255)、选项A(字符串,255)、选项B(字符串,255)、选项C(字符串,255)、选项D(字符串,255)、正确答案(字符串,1)、考生答案(字符串,1)。
设表文件的存储路径为“c:\test\data”,表文件名为“SingleSel.db”,表的类型为“ttParadox”,可以利用以下代码实现该文件临时表的创建:
var
tbl:TTable;//定义表对象tbl
begin
tbl:=TTable.Create(Application);//创建表对象
with tbl do begin
Active:=False;//定义表之前必须关闭表
DatabaseName:="c:\test\data";//设置表的存储位置
TableName:="SingleSel.db";//设置表的名称
TableType:=ttParadox;//设置表的类型
with FieldDefs do begin
Clear;//清除表中原有的字段
Add(′题号′,ftAutoInc,0,False);//增加一个流水号字段
Add(′题干′,ftString,255,False);
Add(′选项A′,ftString,255,False);
Add(′选项B′,ftString,255,False);
Add(′选项C′,ftString,255,False);
Add(′选项D′,ftString,255,False);
Add(′正确答案′,ftString,1,False);
Add(′考生答案′,ftString,1,true);
end;
With indexDefs do begin
Clear;//清除索引定义
Add(′FieldIndex′,′序号′,[ixPrimary,ixUnique]);//添加索引定义
end;
CreateTable;//创建上面定义格式的表
end;
end;
4 结 语
这里主要是在综合考虑数据存储处理的速度、程序执行的效率和系统稳定性等因素的基础上,对网络无纸化考试系统的数据存储处理提供一个设计方案,并给出利用Delphi在客户端创建文件临时表的方法。该方案在后期系统使用过程中体现出很大的优势;大大减少了服务器在数据存储上的开销,提高了数据的访问速度,降低了网络数据传输的负荷,增加了系统的整体性能。
参考文献
[1]郝莹.网上无纸化考试系统的意义与实现[J].北京建筑工程学院学报,2000,16(2):108-113.
[2]徐守萍.计算机基础课程无纸化考试系统设计[J].广东交通职业技术学院学报,2007,6(3):62-64.
[3]李文华,杨奔全.数据表结构的动态创建与动态更新[J].中国科技信息,2005(5):22,15.
[4]郭志,陈金良,郭书俊.临时表在系统开发中的应用[J].计算机工程与设计,2003,24(8):69-71,74.
[5]杨新锋,刘平.Office无纸化考试自动化评分研究[J].科技广场,2007(3):153-154.
[6]刘作军,任永峰.无纸化考试数据库设计方案改进研究[J].现代电子技术,2007,30(20):64-65,68.
[7]殷大发.无纸化考试系统的研究和开发[J].计算机与现代化,2004(3):82-85.
[8]丁亚涛.无纸化考试平台构建技术[J].巢湖学院学报,2007,9(3):32-35.
[9]陈清利,刘琳.基于B/S结构的网络考试系统的分析与设计[J].信息技术与信息化,2008(2):30-32.
[10]胡枫.无纸化考试系统的设计与开发[J].湘南学院学报,2008,29(2):90-93.