【考试系统】第四章 数据库设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章 数据库设计与实现
系统设计是应用系统开发的重要环节,需要在总体上设计系统应用结构及系统功能。结合需求分析及系统的运行机制,同时针对数据库系统的设计特点和本系统的数据要求,数据库的设计是B/S架构程序中数据库server设计的重要内容,也是本章中重点阐述的内容。
4.1 考试系统的应用程序架构
基于WEB的题库及考试系统采用B/S与C/S相结合的运行机机制,数据库选用SQL Server平台,能够容纳大量的专业知识题库,为客户端提供更快和更稳定的运行环境。
面向众多考生的考试模块和查询模块采用WEB方式构建,无需安装客户端,便于维护和升级,并能够与学院的校园网集成。考试系统的架构如图4-1所示。
图4-1 考试系统架构
系统的所有用户均通过WEB方式通过IIS WEB服务器访问后台SQL SERVER服务器,在局域网范围内,可以保证安全性和性能需求。允许考生通过IE浏览器登录系统,参加考试、查询分数;管理员和课任教师老师通过IE浏览器登录系统,进行试卷录入,课程信息录入,学生考试名单导入,学生成绩查询和用户信息修改等操作。
25
4.2 考试系统的数据库设计
大多数网络应用系统都需要后台数据库的支持。在Windows操作系统中,Access和SQL Server是最常见的网络后台数据库。在互联网上,很多人出于价格的考虑选择Access数据库,但是要实现比较大的网络应用系统,还是应选择SQL Server。为实现在线考试系统,我们选择SQL server 数据库存储数据。
数据库的设计通常涉及三部分的设计即数据库的概念设计、数据库的逻辑设计和数据库的物理设计。
数据库的概念设计是在需求分析的基础上,用概念数据模型如常用的E-R数据模型表示数据及其相互间的联系,概念数据模型是与DBMS无关、面向现实世界的数据模型,是准确表达现实世界数据间关系的重要环节。
数据库的逻辑设计是分析概念设计所得到的概念数据模型,并根据所采用的DBMS的功能和限制,将其转变为逻辑模式,且用数据定义语言DDL或视图来表示。
数据库的物理设计将根据逻辑模式、DBMS及所用计算机系统平台设计数据库的内模式,即文件结构、各种存取路径、存储空间的分配、记录的存储格式等。
4.2.1数据库的概念模型设计(Conceptual Data Model)
概念数据库模型设计的目标是:准确描述应用领域的信息模式,支持用户的各种应用;既易于转换为逻辑数据库模式,又容易为用户理解。
在数据库的概念设计中,E-R数据模型是常用的概念设计表示模型,视图集成法是一种重要的设计方法。考试系统的数据库实体——联系模型(E-R图)如图4-2所示。
如图4-2所示,在线考试系统数据库examine共包含9个关系模式,分别如下:
学生信息表so_tbStu,其数据来自于学生管理系统;
学生考试成绩表student_course;该表的数据来自于选课表,学生只有选了某门课程,方可参加相应课程的考试;
题库信息表so_question,为各科目试题,其中的试题编号与课程编号相关,试题编号前3位为课程编号,后三位为题号;
教师授课信息表so_skb,授课教师只能向题库中添加所授课程的试题以
26
及为考试设置相应的试题难度等参数;
课程信息表,用于记录各门课程的课程名和学分等参数;
试题编码信息表Cno_quesID,记录试题号的编码规则,便于实现随机抽题;
教师信息表so_tbTeacher,记录教师信息;
考务信息表so_tbKaowu,用于记录各门课程的考试时间,试题难度等考务信息。
管理员信息表admin,用于存放管理员信息。
此外表与表之间的引用关系如图4-2所示。
图4-2 考试系统数据库关系图
4.2.2数据库逻辑模型与物理实现
数据库逻辑设计的任务是把概念数据库设计阶段产生的概念数据库模式变换为数据库逻辑模式。逻辑数据库设计依赖于逻辑数据模型和数据库管理系统。关系数据模型和关系数据库管理系统已经被广泛地使用于逻辑数据库设计中。
27
1.学生信息表so_tbStu:记录考生信息,可由学生信息管理系统直接导入,表结构如图4-3所示。
图4-3 so_tbStu表结构
在学生信息表so_tbStu中:
stuID字段用于存放学生学号,学号的编码规则与学籍管理系统相同,是该表的主键;
stuName用于存放学生姓名,为可变长度字符型;
stuPassWord用于存放学生密码,为可变长度字符型,最大长度为15,在本系统中,没有考虑对密码进行加密存放;
stuPhone存放学生联系电话,为字符型;
stuE_mail存放学生的邮箱地址,可用于系统功能扩展,比如通过邮箱发送学生成绩;
stuPicture存放学生照片,可用于扩展考试系统功能,比如核对考生是否为本人。
2.学生考试成绩表student_course,该表的数据来自于选课表,学生只有选了某门课程,方可参加相应课程的考试,考试完毕后交卷时自动生成,表结构如图4-4所示。
stuID为学号;
Cno为考试课程编号,与stuID字段作为复合主键;
Grade为考试成绩,即对应课程编号的成绩;
Test_time为考试日期。
图4-4 student_course表结构
28
3.题库信息表so_question,为各科目试题,其中的试题编号与课程编号相关,试题编号前4位为课程编号,后三位为题号,表结构如图4-5所示。
quesID为试题编号,是主键;
question为题干,不允许空值;
selectA~selectF为选择项,每题至少4项;
style为题目的难度系数;
answer为正确答案的累加值;
Fenzhi为本题目的分值。
图4-5 so_question表结构
4.教师授课信息表so_skb,授课教师只能向题库中添加所授课程的试题以及为考试设置相应的试题难度等参数,表结构如图4-6所示。
teaID为教师编号,与课程编号cno共同作为复合主键;
cno为课程编号;
term为授课学期。
图4-6 so_skb表结构
29