图1 系统模块功能结构
4.数据库设计
在线考试系统离不开数据库系统的支持,数据库的设计是系统实现的一个重要环节,在系统实现过程中,数据库的设计是核心和基础[8]。不论是试题、答案,还是考生信息等都需要存放在数据库中,而且数据库独立于程序而存在,具有较好的安全性。另外,把系统中大量的数据按一定的模型组织起来,可以使系统方便、及时、准确地从数据库中获得所需的信息。
4.1数据库概念设计
在数据库概念设计阶段,不仅需要满足用户所提出的各种要求,同时还要避免产生数据冗余。由于在在线考试系统中,需要收集大量的信息,包括考生信息,教师信息信息,试题信息等,如果没有合理地设计数据库中各个表的结构以及每张表所包含的字段,那么在后期进行数据管理及汇总时,将会变得非常复杂。根据管理员信息、教师信息、考生信息以及其他相关信息的特点,经过加工、过滤,得到如下E-R图:
图2 实体信息关系E-R图
4.2数据库逻辑结构设计
数据库逻辑设计就是将E-R图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。具体描述如下:
(1) 管理员信息表(账号、姓名、密码);
(2) 考生信息表(学号、姓名、密码、性别、密码问题、答案、专业);
(3) 教师信息表(账号、姓名、密码、所教课程);
(4) 考生成绩表(学号、姓名、科目、成绩、考试时间);
(5) 单选题信息表(试题编号、课程号、课程名、选项A、选项B、选项C、选项D、正确答案);
(6) 多选题信息表(试题编号、课程号、课程名、选项A、选项B、选项C、选项D、正确答案);
(7) 判断题信息表(试题编号、课程号、课程名、正确答案);
(8) 专业表(系别编号、专业名);
(9) 课程信息表(课程号、课程名);
(10) 套题信息表(试卷编号、课程号、试卷名、批改状态)。
4.3数据库物理结构设计
本系统采用SQL Server 2005作为数据库管理系统,数据库命名为“Examination”,数据库包含10个表,分别为管理员信息表(Admin)、教师信息表(Teacher)、考生信息表(Student)、系别表(Profession)、考试科目表(Course)、单选题信息表(SingleProblem)、多选题信息表(MultiProblem)、判断题信息表(JudgeProblem)、学生成绩表(Score)、套题信息表(TaoTi)等,其中几个主要表物理表结构如下图所示:
(1)系统管理员信息表(Admin),主要用于保存系统管理人员的编号、用户名和密码等信息,如表1所示:
表1 Admin管理员信息表
列名 数据类型 允许为空
ID varchar(50) 否
Name varchar(50) 否
PWD varchar(50) 否
(2)考生信息表(Student),主要用于保存考生的账号、姓名、密码、性别、专业和密保问题等信息,如表2所示:
表2 Student考生信息表
列名 数据类型 允许为空
ID varchar(50) 否
Name varchar(20) 否
PWD varchar(20) 否
Question varchar(50) 是
Answer varchar(50) 是
(3)教师信息表(Teacher),主要用于保存教师编号、姓名、密码和所教课程等信息,如表3所示:
表3 Teacher教师信息表
列名 数据类型 允许为空 ASP.net+sqlserver在线考试系统的设计与实现(3):http://www.youerw.com/jisuanji/lunwen_1906.html