在线考试系统数据库概要设计说明书.docx
《在线考试系统数据库概要设计说明书.docx》由会员分享,可在线阅读,更多相关《在线考试系统数据库概要设计说明书.docx(14页珍藏版)》请在冰豆网上搜索。
在线考试系统数据库概要设计说明书
目录
1引言3
1.1编写目的3
1.2背景3
1.3定义3
2外部设计3
2.1标识符和状态1
2.2使用它的程序1
2.3约定1
2.4支持软件2
3数据库设计4
3.1系统物理结构设计4
3.2表设计4
3.2.1TableName(表名的解释)4
3.3表之间的关联设计4
3.4存储过程设计5
3.5触发器设计5
1引言
编写目的
在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生。
它包括试题管理、考生管理、在线组卷、试卷审批等功能,实现了传统考试过程中的出卷、考试、阅卷、试卷分析、公布成绩全过程。
本系统旨在提高教学效率,方便广大师生,提供了一种通过Web方式进行在线考试的方式。
系统基于大容量的题库,支持随机从题库中抽取一定量的题目,也可根据老师自行调整生成一份考卷,提供给参加考试的考生在线答题,完成后提交至服务器。
对于客观试题,由系统代为判阅,大大减少了教师的工作量,提高了工作效率。
背景
本系统为方便软件学院学生的考试管理,提高软件教学的质量,而开发在线考试系统以用于现在多媒体教学的需要,方便考生查询,也方便给予了老师随时了解学生学习状况。
简单在线考试系统面向的用户群有三种,一种是参加考试的考生,一种是老师,另外一种是系统管理员。
其中考生是本系统的最主要功能的使用者。
考生必须提供正确用户名和密码才能访问系统,可以进行在线考试,或者是查看历史成绩。
老师是本系统功能支持最关键的用户,老师可以参与组卷,参与阅卷,查看学生的成绩,对学生成绩进行统计,对考试进行管理等等。
系统管理员主要是负责数据库数据的录入,无效数据的清空,开放关闭系统。
定义
本系统即方便考生考试和减轻教师的工作量,要求能够实现考生以及教师的登录,并能完成考生的答题及评分,教师登录能完成对考生信息的修改查看和增加信息进行数据库管理的目的。
外部设计
2.1标识符和状态
数据库标示符:
exam_online
用户名:
admin
密码:
admin
权限:
全部
有效时间:
开发阶段
说明:
系统正式发布后,可能更改数据库用户/密码,请在统一位置编写数据库连接字符串,在发行前请予以改正。
2.2使用它的程序
本系统主要利用MyEclipse6.0.1作前端的应用开发工具,利用MicrosoftSQLServer作为后台的数据库,利用WINDOWSxp作为系统平台
2.3约定
所有数据项都用中文对应的英文翻译表示。
字符集采用UTF-8,请注意字符的转换。
所有数据表第一个字段都是系统内部使用主键列,自增字段,不可空,名称为:
id,确保不把此字段暴露给最终用户。
除特别说明外,所有整形都采用int格式。
除特别说明外,所有字段默认都设置为null。
2.4支持软件
操作系统WindowsXP
数据库系统SQLSERVER2000
开发工具PowerDesignerTrial11
数据库设计
系统物理结构设计
根据硬件设备和数据库平台系统,对数据库系统的物理存储结构进行规划,估计数据库的大小,增长速度,各主要部分的访问频度。
确定数据文件的命名,日志文件的命名。
数据文件和日志文件的物理存放位置,如果有多个存储设备,需要规划数据文件的组织方式。
系统内存使用配置,一般来说,数据库系统会自动维护系统内存,但有时为了某些性能问题,可以根据需要对数据库的内存管理进行另行配置。
表设计
1.主要数据库表的介绍(主键(代表主键),外键(代表外键)):
根据系统需要和考试需要,设立了如下数据库表(主键(代表主键),外键(代表外键)):
一、试卷信息表(paperInfo)
(试卷代号,科目代号,试卷名称,考试时间,总题数,总分,考试用时,教工编号)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
paperId
Int
否
是
否
试卷代号
subId
int
否
否
否
科目代号
paperName
varchar(50)
否
否
否
试卷名称
testTime
Char(22)
否
否
否
考试时间
count
int
否
否
否
总题数
zongfen
Int
否
否
否
总分
testUseTime
Int
否
否
否
考试用时
teaId
varchar(7)
否
否
是
教工编号
二、试卷信息明细表(paperInfo)
(id,试卷代号,题型代号,题量,分值,大题,大题描述)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
Id
int
否
是
否
无意义标志
paperId
Int
否
否
是
试卷代号
quesTypeId
int
否
否
是
科目代号
amount
int
否
否
否
题量
Section_score
int
否
否
否
大题分值
section
int
否
否
否
大题
description
Int
否
否
否
大题描述
三、试题表(paperQuestion)
(testId,试卷明细表的id,答案,题目,分值,答案长度)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
testId
int
否
是
否
试题代号
paper_detail_id
Int
否
否
是
试卷信息明细表的id
answer
varchar(2000)
否
否
否
答案
question
varchar(1000)
否
否
否
题目
code
float
否
否
否
分值
answersize
int
否
否
否
答案长度
四、题型表(question_types)
(题型代号,题型)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
quesTypeId
int
否
是
否
题型代号
quesType
varchar(20)
否
否
否
题型
五、科目表(subject)
(科目代号,科目名称,所属学院id)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
subId
int
否
是
否
科目代号
subject
varchar(20)
否
否
否
科目名称
acadeid
int
否
否
是
所属学院id
六、题库表(questions)
(题目编号,题目,答案,题型编号,科目代号,备选答案长度,知识点代号)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
quesId
int
否
是
否
题目编号
question
varchar(1000)
否
否
否
题目
answer
varchar(2000)
否
否
否
答案
quesTypeId
int
否
否
是
题型编号
subId
int
否
否
是
科目代号
ansLength
int
否
否
否
备选答案长度
keyPointId
int
否
否
是
知识点代号
七、学生表(student)
(学号,姓名,密码,年级,性别,班级代号,专业代号,学院代号)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
stuId
char(10)
否
是
否
学号
stuName
varchar(20)
否
否
否
姓名
stuPwd
varchar(18)
否
否
否
密码
grade
char(4)
否
否
否
年级
stuSex
int
否
否
否
性别
myclassId
int
否
否
是
班级代号
professionId
int
否
否
是
专业代号
acadeId
int
否
否
是
学院代号
八、教师表(teacher)
(教工编号,姓名,密码,性别,考务人员类属,所在学院代号)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
teaId
varchar(7)
否
是
否
教工编号
teaName
varchar(20)
否
否
否
姓名
teaPwd
varchar(18)
否
否
否
密码
teaSex
int
否
否
否
性别
acadeId
int
否
否
是
所在学院代号
九、考生答题表(answer)
(id,学号,考生答案,所得分值,testId)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
id
int
否
是
否
id
stuId
char(10)
否
否
是
学号
stuAnswer
varchar(2000)
否
否
否
考生答案
defen
float
否
否
否
所得分值
testId
int
否
否
是
testId
十、考生成绩表(history_score)
(id,学号,试卷代号,科目代号,科目,成绩,考试时间)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
id
int
否
是
否
id
stuId
char(10)
否
否
是
学号
paperId
int
否
否
是
试卷代号
subId
int
否
否
否
科目代号
subject
varchar(30)
否
否
否
科目
score
float
否
否
否
成绩
testTime
char(22)
否
否
否
考试时间
十一、学院(Academy)
(学院代号,学院名称)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
acadeId
int
否
是
否
学院代号
Pwd
Varchar(18
111111
否
否
否
院级管理员角色登录密码
academy
varchar(20)
否
否
否
学院名称
十二、管理员(Admin)
(账号,密码)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
adminId
varchar(10)
否
是
否
账号
adminPwd
varchar(18)
否
否
否
密码
十三、章节表
(章节代号,章节名称,科目号)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
chaId
Int
否
是
否
章节代号
chapters
varchar(30
否
否
否
章节名称
subId
Int
否
否
是
科目号
十四、知识点表(keyPoints)
(知识点代号,章节代号,知识点内容)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
keyPointId
int
否
是
否
知识点代号
chaId
int
否
否
是
章节代号
keyPoint
varchar(30)
否
否
否
知识点内容
十五、专业表(profession)
(学院代号,专业代号,专业名称)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
acadeId
int
否
是
是
学院代号
professId
int
否
是
否
专业代号
profession
varchar(20)
否
否
否
专业名称
十六、考试关系表(exam_relation)
(id,试卷代号,考试状态,考试班级,科目代号)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
id
int
否
是
否
id
paperId
int
否
否
否
试卷代号
state
int
否
否
否
考试状态
logicClass
varchar(30)
否
否
否
考试班级
subId
int
否
否
是
科目代号
十七、选课表(selectSubject)
(id,学号,ST_id)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
id
int
否
是
否
id
stuId
char(10)
否
否
是
学号
ST_id
int
否
否
是
ST_id
十八、班级表(classInfo)
(班级代号,学院代号,专业代号,年级,班级名称)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
myclassId
int
否
是
否
班级代号
acadeId
int
否
否
是
学院代号
professId
int
否
否
是
专业代号
grade
char(4)
否
否
否
年级
myclass
varchar(20)
否
否
否
班级名称
十九、授课表(teachSubject)
(ST_id,教师编号,逻辑班级,科目代号,授课时间)
字段名
数据类型及长度
默认值
可否为空
主键
外键
说明
ST_id
int
否
是
否
ST_id
teaId
varchar(7)
否
否
是
教师编号
logicClass
varchar(40)
否
否
否
逻辑班级
subId
int
否
否
是
科目代号
teachTime
varchar(40)
否
否
否
授课时间
TableName(表名的解释)
试卷信息表(paperInfo):
用于保存试卷的试卷代号,试卷对应科目的名称,对应的考试时间,题型,数量,分值等信息。
试题表(paperQues):
用于保存学生的考试试卷内的题型,答案题目。
题型(question_types):
用于保存试卷上的题型代号和题型。
科目表(subject):
用于保存某一科目的科目代号,科目名称,知识点代号以及知识点信息。
题库表(questions):
用于存储题目的表,其中包含题目,答案,题型,知识点,科目名称等信息。
学生表(student):
用于保存学生的考试的学号,姓名,密码,年级,性别,班级,学院信息。
考务人员表(teacher):
用于保存考务人员编号,姓名,密码,性别,类属。
考生答题表(answer):
用于存储学生学号,试卷代号,试题代号,答案,所得分值。
考生成绩表(history_score):
用于存储学生学号,所考试卷的名称,所考科目的名称,考试的成绩以及考试的时间。
学院表(Academy):
用于保存学生所属学院的学员代号,学院名称,以及学生所在学院的班级和年级。
管理员(Admin):
用于保存管理员的账号和密码。
表之间的关联设计
为了保证数据的完整性,需要对表之间相互的数据进行约束,主要是通过外键来实现数据增删时的数据完备。
存储过程设计
存储过程是一组预先定义并编译好的SQL语句,可以接受参数、返回状态值和参数值,并可以嵌套调用。
使用存储过程可以改变SQL语句的运行性能,提高其执行效率。
存储过程还可用做一种安全机制,使用户通过它访问未授权的表或视图。
触发器设计
触发器是一种特殊的存储过程,当表中的数据被修改时,由系统自动执行。
使用触发器可以实施更为复杂的的数据完整性约束。