2006年第8期 福建 电脑 119 基于JSP技术的网络考试系统数据库的设计 欧阳江林.罗桂銮 (浙江工贸职业技术学院浙江温州325003) 【摘要】:以考试系统数据库的设计为例,阐述了规范化数据库设计的步骤和方法,并对考试系统数据库进行了分析, 给出了基于JSP技术的网络考试系统的实现方案。 【关键词】:JSP;B/S;E—R图;数据库 1.引言 传统考试方式采用手工出卷,人工阅卷的方法,工作量大, 效率低,保密性差,也容易出差错。采用在线考试系统一方面可 以大量减少教师出卷、阅卷的工作量,另一方面,练习题库向学 生开放.也为学生自学和自我测试提供了方便,有利于提高学生 的自学能力。提高学生的技能水平。此外,自动阅卷系统快捷准 确.使工作效率大为提高。 2.考试系统的总体结构 考试系统采用B,S模式,所有的程序都运行在服务器端,客 果被传到服务器保存起来.然后启动阅卷模块.将考试成绩记人 学生档案库。 3-2数据库概念设计 根据需求分析,考试系统中包含以下实体:学生、课程、试题 库、试卷,学生考试时要选择考试课程,学生与课程之间是多对 多的关系。每一门课程要建立一个试题库。课程与试题库之间是 对一的关系。试题库与试卷间是多对多的关系,学生与试卷问 是多对多的关系。其对应的E—R图如图2所示.图中带下划线 的属性为该实体的主键。 一户端只要有浏览器即可完成对该系统的操作。基于Java语言的 JSP技术具有较好的平台无关性、安全性和强大的数据库支持, 适合开发网络考试系统。JavaBean是一种Java类,通过封装属 性和方法成为具有独立功能、可重复使用的并且可以与其他控 件通讯的组件对象.用JavaBean可以将某些复杂的处理分离出 来.成为独立的可重复利用的模块。Java Servlet是运行在Web 服务器端的Java程序.具有多线程、平台独立、运行效率高等特 点。采用JSP+JavaBeanS+Servlet结合的系统架构,可以借助于 Java Servlet和JSP的良好关系以及JavaBeanS的协助.将系统的 整个逻辑结构放在几个Java Servlet中.而将动态页面的输出放 在JSP中完成.Java Servlet负责响应客户请求,根据用户的权 限.决定将哪个JSP页面发送给用户。如图1所示。 图2 将以上E—R图转换成关系模式,根据转换规则,课程与试 题库存在产1:1联系。可转换成如下两个关系模式: 课程(课程号,课程名,任课教师,班级,题号) 试题库般图1 ,题型,堡垂呈,试题内容,难度,参考答案,分 考试系统可以按功能分为以下几个模块:用户管理模块、模 拟练习模块、在线考试模块。题库管理模块。用户管理模块主要 实现不同权限的用户管理.用户权限分系统管理员.教师、学生 三个层次。模拟练习模块对学生提供一个开放性的练习题库,从 练习题库中随机抽题组卷.练习结束后可以给出模拟练习的成 绩。在线考试模块具备考生信息核对、自动组卷、考试答卷上传 值,章节,命题人) 试题库与试卷问有M:N联系.根据转换规则可转换成如下 三个关系模式: 试题库(题号,题型,课程号,试题内容,难度,参考答案,分 值,章节,命题人) 试卷(试卷号,试卷内容,开考时问,结束时间) 出卷(试卷号,试题号,时间) 同理.学生和试卷间有M:N联系.可转换成如下三个关系 等功能。题库管理模块由系统管理员或教师组建试题库,教师可 模式: 从题库中组卷或出练习题.对题库进行维护和更新。 学生(学号,姓名,课程,成绩,交卷标志,考试时间) 试卷(试卷号,试卷内容,开考时间,结束时间) 3.数据库设计 答卷(学号,试卷号,试题号,考生答案,得分,阅卷标志) 规范的数据库设计是衡量一个数据库应用系统是否完善的 重要指标。数据库的设计一般可以分为以下几个阶段:规划与需 以上关系模式中。下划线为关系模式的主键.波浪线为外 求分析;概念设计;逻辑设计;物理设计;数据库实现;运行维护。 键.双波浪线为组合键。 下面以在线考试模块的数据库为例.说明数据库的设计过程。 3-3逻辑设计 分析E—R图中的关系模式.由于试题库中的题型包括选择 3.1需求分析 填空题等多种题型。因此不符合第一范式的要求。增 考试系统的在线考试模块主要完成考生登录、身份验证、试 题、判断题。卷抽取、答案上传、自动阅卷、成绩查询等功能。数据库由学生档 加一个题型表: 案库、试题库、试卷库、课程库等组成,放在服务器端。 题型(题型编号,题型名称) 在考试系统中.学生首先输入学号、姓名和考试课程,系统 为方便数据库的日常维护,还需要增加用户表: 对考生身份验证后.从试卷库中随机抽取一份试卷传给学生,学 用户(用户编号。姓名,密码,权限) 生答题时由系统自动计时,交卷或考试时间到时,学生的答题结 此外,为了对考试系统进行监控,实时了解客户机的信息及 维普资讯 http://www.cqvip.com
120 福建电脑 数据库查询方法: public int seleet ̄tifng sq1){ int k=-10; 2006年第8期 其与服务器的连接状态.增加考试控制关系模型: 考试监控(考号。试卷号。客户机名称,客户机IP地址,客户 机状态.登录时间,剩余时间,登录次数,允许登录,强制交卷) 3.4数据库实现 根据上面的数据库逻辑设计.在SQL Server2000上实例化。 可以用SQL Server2000的企业管理器(Enterprise Manager) ̄建 数据库。也可以用数据定义语言(Data Deifniiton Language,DDL) 创建数据库。如: CREATE DATABASE exam this.imt(Link_db.getCon0); tryI k= o: rs=state.exeeuteQuery(sq1); im .next0){ k--k+l: } lcinch(Exeeption e)I k=一l: ON PRIMARY(NAME=exam data, FILENAME='E:XSQL2OOOLMSSQLXDataXexam.mdf', SIZE=10MB, MAXSIZE=20MB, Sy ̄em.out.pfimln(”select”); System.out.pfimln(e.getMessage0); this.close0; } FILEGROWTH=10%) LOG ON(NAME=exam_log, F1LENAME ̄'E:XSQL2OOOLMSSQLXDataXexam.1df', SIZE=2MB, MAXSIZE MB. htis.eloseO; return k: } F1I正GR0WTH=IMB) 在已建好的数据库对象中建立数据表.如建立课程表 CRE I’E’I^BLE lCOURSE 从/sP页面中传递参数sql,该参数为SQL查询语句,通过 selectO方法获得结果集,并返回给调用页面。 数据库更新方法: public int update(Strlng sq1){ int k=一l0: (CNOINT PRIMARY KEY, CNAME CHAR(12)NOT NULL, EACHER TCHAR(1 21, CLASS CHAR(1 21, TNO INT hits.init(Link_db.setCon0); tryI k=0: ) 其余数据表的建立与此类似。 3.5数据库连接 数据库连接是考试系统中最重要的部分.Java中连接数据 库是用JDBC(Java DataBase Connectivity),JDBC实现了一个独 立于特定数据库管理系统DBMS的通用的SQL数据访问和存 储结构。使用JDBC,可以在不同的数据库功能模块层次上提供 统一的用户界面 k=state.exeeuteUpd砒e(sq1); }catch(Exception刮【 k=-l; System.out.println(”update”); Sy ̄em.out.println(e.getMessage0); J htis.close0; return k: } upaate0fJ' ̄的参数可以是插入、删除和更新语句.调用它 JSP页面通过JavaBeans连接数据库.实现对数据的增、删、 可以实现数据记录的增、删、改操作。 改等操作.为防止多用户同时连接数据库时发生冲突。用Java 4.结束语 的同步方法实现排它锁.考试系统中把数据库的查询、插入、修 随着互联网技术的迅速发展.网上教学和网上考试也越来 改、删除等操作封装在一个JavaBean中。实现数据库连接和操 越普及.本文采用Java Servlet和JavaBeans技术开发网络考试 作的JavaBean部分代码如下: 数据库连接方法: public static synchronized Connection s ̄tCon0{ tryI 系统。使系统的显示逻辑和业务逻辑分离.保证了系统的安全性 和平台无关性。考试系统中的数据库设计达到了设计的预期目 标。数据库设计是一个不断调整优化的过程.随着考试系统需求 的不断复杂化,在实际运行过程中。还要对数据库运行情况进行 调整和优化数据库设计。 参考文献: 1.杨冬青.徐其钧.唐世渭译.数据库系统实现,北京:机械工业出版社. 20o1_3 Class.forName(”sun.jdbc.odbejdbcOdbeDfive ̄’); eon=DriverManager.getConneetion("jdbe-.odbc:exam","8a”, ‘‘‘‘‘‘‘.¨); }catch(Exception刮【 Sy ̄em.out.pfinfln ̄.getMessage0); } ’ return con; } 考试系统采用JDBC—ODBC桥驱动程序与数据库连接.连 2.赛奎春.陈威.白伟明.李楠等jsP工程应用与项目实践.北京:机械工 接方法getCon0 ̄关键字synchronized修饰.保证数据库连接是 业出版社.2005.1avaBeam的web考试系统的设计与实现.电脑与信息技 原子操作,在需要连接数据库的JSP页面调用getC0nO方法可建 3.刘畅.基于I立连接。 术,2003(6) 4.王成.通用考试系统数据库设计与实现.黑河教育,2005(3) f上接第ll3页1 软件体系结构的研究已经成为当前的研究热点.软件体系 结构设计已经成为软件生命周期中的一个重要环节。在文中.论 项目开发实例说明了层次化软件构造方法可以使软件系统结构 1.Shaw M,Gartan D.Software architecture:perspectives on all emerging discipline.Parentice Hal1.1996.1 37. f Garland Richard Anthony Large—ScMe Software Architecture:A 述了层次式软件体系结构的基本思想和结构框架.后用具体的 2.jefPractical Guide Using UML,2003 Wills A CObject,Components and Frameworks with UML; 更加清晰,设计开发更加容易.可以大幅度减轻系统维护负担。 3.D Souza D,The Ca ysis Approach Addison Wesley,Reading,IvlA,1999 并且系统开发过程中产生的构件可以在后继项目开发中得到复 4.SHAWM,G^R I^N D.Software Architecture:Perspectiveson all E— 用,节省系统开发时间,确保向用户提供高质量的软件产品。实 merging Discipline 践证明。层次式软件体系结构具有便于增加新功能.使系统具有 【M】.Englewood a遽:PrenticeHal1.1996. 可扩展性.有利于软件重用等优点。 5.朱三元,钱乐秋。宿为民著软件工程技术概论北京科学出版社2003 177-195 参考文献:
因篇幅问题不能全部显示,请点此查看更多更全内容