在线考试系统中基于数据库存储过程的组卷策略
2018-01-15杨晓吟
杨晓吟
摘 要:介绍了在线考试系统中组卷过程的相关技术,分析了数据库存储过程在数据处理方面的优势与特点,在此基础上建立了在线考试系统的数据库设计方案,给出了考试中抽取的算法,应用数据库中的存储过程实现了算法。
关键词:考试系统;存储过程;组卷;数据库;抽题
中图分类号: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