(完整版)数据库课程设计-试题库管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库系统概论》课程设计
实验报告
题目试题库管理系统
学院商学院
专业信息管理与信息系
班级信息101
学号201052275130
学生姓名杨贵文
同组成员周杭施建炉王于宾
指导教师宣军英
编写日期2012-06-19——2012-06-29
一、课题名称:试题库管理系统
二、课题要求:结合所学知识,开发一个简易的试题库管理系统。
三、实验目的:结合本学期所学知识,使学生温故而知新,并在实践操作上增加对数据库系统设计的认识和理解。
四、实验步骤:
五、1、需求分析
2、概念结构设计
3、逻辑结构设计
4、物理结构设计
5、数据库实施
6、数据库运行和维护
六、课程开发内容:
5.1 需求分析
5.1.1 系统调查
对现行的试题库管理业务进行了详细的调查和研究是了解系统需求和进行系统分析和设计的重要基础工作,因此要对我们的试题库管理工作进行全面的细致的调查研究。
首先与相关的老师进行了交流和沟通,了解他们对试题库管理的看法,看看有没有什么新的要求,在这个基础上,结合自身所掌握的知识水平,量力而行开发相应的试题库管理系统。
在调查中我们可以发现,高校的试题库是极其庞大的,如果没有一个智能的系统将人们从手工阶段解放出来,那么一个庞大的、完整的试题库是无法有效运行的,甚至出题的老师也无法有效、准确地在试题库中抽取自己所需要的试题,这等于说是一个没有实际运用价值的试题库。
所以说,他们对希望有这样的一个可以详细地表示试题属性的这样的一个试题库。
那么今天我们就围绕着这样的一个目标展开我们的工作。
5.1.2 用户需求
要设计一个性能良好的管理系统,明确用户的应用环境对
系统的要求是首要的和基本的。
本系统从以下四个方面对用户需求进行了分析:
1)用户的需求信息:出题老师可以看到题目所属的类型和题目所考察的内容以及试题的分值和
难度等级。
当然这个权限也给管理员和系主任。
2)用户的处理要求:管理员可以对试题库进行插入和删除操作,出题老师可以凭借自己自定义的
选题要求在试题库中选择自己需求的试题,这个权限
也对系主任开放。
3)对系统的适应性、通用性要求:要求系统不仅能提供一门课程的试题库管理,还要综合多么学
科进行管理,建立一个高效的试题库管理系统。
4)对系统的安全性要求,要求进入系统必须进行口令校验。
5.1.3 系统业务流程图
详细调查之后,结合现行试题库管理模式,为开放本统而绘出的试题库管理业务流程图。
如图5.1.3.1
图5.1.3.1试题库管理系统业务流程图
5.2系统逻辑方案
系统分析的主要成果是系统的逻辑模型。
本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。
5.2.1数据流图(简称为DFD)
数据流图是组织中信息运动的抽象。
是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。
将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。
首先,分析试题库管理系统的总体情况,划分系统边界,识别系统的数据来源和去处,确定外部实体,得出系统的顶层数据流程图;
然后划分出几个主要的信息管理功能,并明确各功能之间的联系,绘制出数据流程图。
数据流程图的符号如图5.2.1.1所示
外部实体处理数据流数据存储
图5.2.1.1 数据流程图的符号
数据流程图如下5.2.1.2所示:(由局部到全部)
总的流程图:
图5.2.1.2数据流流程图
5.3概念结构设计
5.3.1 数据模型
数据模型包含三种相互关联的信息:数据对象、描述数据对象的属性及数据对象彼此间的相互连接的关系。
1)数据对象数据对象是对软件必须理解的复合信息的表示。
所谓复合信息是指具有一系列不同性质或属性的事物,因此只有单个值的事物(例如宽度)不是数据对象。
2)属性属性定义了数据对象的性质。
属性可以有下述的三种不同的特性之一,也就是说,可以用属性来:为数据对象的实例命名;描述该实例;引用一个数据对象的实例。
此外,必须把一个或多个属性定义为“标识符”,即当我们希望找到数据对象的一个实例时,标识符属性成为“关键字”。
3)关系数据对象彼此之间相互连接的方式称为关系,也称为联系。
联系分为:一对一联系(1:1);一对多联系(1:N);多对多联系(M:N)。
在实体-关系图中使用的符号如下:
用矩形框
表示实体
用圆角矩形框表示实体的属性
用菱形框表示实体间的相互关系
用无向边把实体或关系与其属性相连图2 实体关系图中使用的符号
1)试题E-R图如下:
2)试卷
E-R图如下:
3)用户E-R图如下:
4)用户,试题,试卷三者的E-R图:
图6 用户,试题,试卷E-R图
总体E-R图
5.4 系统分析与总体设计
经过需求分析阶段的工作,系统已经清楚“做什么”,现在是决定“怎样做”。
总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题,所以总体设计又称为概要设计和初步设计。
通过这个阶段的工作将划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容就在以后仔细设计。
总体设计阶段的另一项任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成,以及模块之间的关系。
5.4.1.1数据库设计
数据库设计是在需求分析的基础上,如何对应用系统所涉及的数据进行分类、描述、关联和存取的一种技术。
数据库设计通常是在一个通用的DBMS支持下进行的,对于一个给定的应用环境,构造最优的数据库模式,使之能够有效的存储数据,满足用户的各种需要。
数据库是信息系统的核心和基础,它将大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能。
只有对数据库进行合理的逻辑设计和有效的物理设计,才能开发出完善而有效的信息系统,用户才能方便、及时和准确地从数据库
中获取所需的信息。
数据库设计的概念结构设计已经在上面的需求分析中给出(E-R图),这里就只介绍利用DBMS系统提供的数据定义语言创建数据库表
5.4.1.2 定义
静态数据系统固定在内的描述系统实现功能的一部分数据。
动态数据在软件运行过程中,用户输入后的系统输出给用户的一部分数据,是系统要处理的数据。
数据字典数据字典中的名字都是一些属性与内容的抽象和概括,它们的特点是数据的“严密性”和“精确性”,没有半点含糊。
5.4.1.3静态数据
静态数据是系统内部有关的数据结构与操作规程。
具体可包括:
单项选择题表 dxt
多项选择题表 duoxt
填空题表 tkt
简答题表 jdt
另外有:多选题答案表 duoxtdaan
单选题答案表 dxtdaan
多选题题目表 duoxttk
单选题题目表 dxttk 5.4.1.4 动态数据
动态数据包括程序运行时输入和输出的数据,具体是数据
库的各个表的各个不同元组与属性值。
5.4.1.5 试题库管理系统数据库
本系统SQL Server 2000为后台数据库。
主要包括34个表,其中有20个系统表,下面给出7个代表表的设计:
(1)单项选择题表 dxt
数据来源:试题录入模块直接输入
表1 单项选择题表
列名数据类型长度
number nandu zhisd ques op1
op2
op3
op4 answ Char
Char
Char
Char
Char
Char
Char
Char
Char
5
2
50
1000
500
500
500
500
2
单项选择题设计了序号,难度,知识点,问题,选项1,选项2,选项3,选项4,以及答案9个属性,其中后面8个都是要用户在录
入试题时(录入试题模块中)添加,对于一个单项选择题,这8个属性都是缺一不可的。
序号为自动生成。
(2) 多项选择题表 duoxt
数据来源:试题录入模块直接输入
表2 多项选择题表
列名数据类型长度
number nandu zhisd ques op1
op2
op3
op4 answ Char
Char
Char
Char
Char
Char
Char
Char
Char
5
2
50
1000
500
500
500
500
4
同单项选择一样,多项选择题设计了序号,难度,知识点,问题,选项1,选项2,选项3,选项4,以及答案9个属性,其中后面8个都是要用户在录入试题时(录入试题模块中)添加。
(3)填空题表: tkt
数据来源:试题录入模块直接输入
表3 填空题表
列名数据类型长度
number nandu zhisd ques Char
Char
Char
Char
5
2
50
1000
续表4
列名数据类型长度
answ1 answ2 answ3 answ4 Char
Char
Char
Char
50
50
50
50
填空题一共设计了序号,难度,知识点,问题,答案1,答案2,答案3,答案4,8个属性,其中序号,难度,知识点,问题,答案1,是都不能为空的,答案2,答案3,答案4。
根据填空题所需要的空位而定。
序号为自动生成。
(4)简答题表: jdt
数据来源:试题录入模块直接输入
表4 简答题表
列名数据类型长度
number nandu Char
Char
5
2
zhisd ques answ
Char
Char
Char
50
1000
1000
简答题一共设计了序号,难度,知识点,问题,答案,除了序号是在录入试题时自动生成以外,其它都是要求录入试题的时候认真填写的。
(5)多选题答案表 duoxtdaan
数据来源:自动生成或者手动生成试卷时自动写入
表5多选题答案表
列名数据类型长度
number answ Char
Char
5
4
多选题答案表是为储存新生成试卷多选题答案而设计的,为后面的试卷评分做准备。
(6)多选题题目表 duoxttm
数据来源:自动生成或者手动生成试卷时自动写入
表6 多选题题目表
列名数据类型长度
number ques ch1
ch2 Char
Char
Char
Char
5
1000
500
500
ch3 ch4 Char
Char
500
500
多选题答案表是为储存新生成试卷多选题题目而设计的。
另外还有单选题答案表(dxtdaan),单选题题目表(dxttk)和上面的多选题的设计是基本一样,区别是单选题的选项A,B,C,D用 op1,op2,op3,op4描述。
六数据操作
建表及数据库
Create database STKGLsysterm
go
use STKGLsysterm
使用SQL脚本建立单项选择题表(dxt)。
Create table dxt(number char(5) primary key,
nandu char(2);
zhisd char(50);
ques char(1000);
op1 char(500);
op2 char(500);
op3 char(500);
op4 char(500);
answ char(4);
使用SQL脚本建立多项选择题表(duoxt)。
Create table duoxt(number char(5) primary key, nandu char(2);
zhisd char(50);
ques char(1000);
op1 char(500);
op2 char(500);
op3 char(500);
op4 char(500);
answ char(4);
使用SQL脚本建立填空题表(tkt)。
Create table tkt(number char(5) primary key, nandu char(2);
zhisd char(50);
ques char(1000);
answ1 char(500);
answ2 char(500);
answ3 char(500);
answ4 char(500);
使用SQL脚本建立简答题表(dxt)。
Create table jdt(number char(5) primary key, nandu char(2);
zhisd char(50);
ques char(1000);
answ char(1000);
使用SQL脚本建立多选题答案表(duoxtdaan)。
Create table duoxtdaan(number char(5) primary key, answ char(4);
使用SQL脚本建立多项选择题题目表(duoxttm)。
Create table duoxttm(number char(5) primary key,
nandu char(2);
ques char(1000);
ch1 char(500);
ch2 char(500);
ch3 char(500);
ch4 char(500);
插入数据
1、dxt
INSERT INTO dxt VALUES ('4','1','004',‘10022’,’1024’,’1025’,’1026’,’1027’,’1’);
INSERT INTO dxt VALUES ('7','2','001',‘10027,’1024’,’1027,’1026’,’1021’,’1’);
INSERT INTO dxt VALUES ('5','0','007',‘10023’,’1025’,’1025’,’1025’,’1025’,’0’);
INSERT INTO dxt VALUES ('7,'0,'008',‘10024’,’1026’,’1022,’1026’,’1026’,’1’);
2、duoxt
INSERT INTO duoxt VALUES ('7,'0','02,‘10033’,’1424’,’1111’,’1241’,’1111’,’1’);
INSERT INTO duoxt VALUES ('5,'1','026',‘10034’,’1231’,’ 1112’,’ 1424’,’ 1112’,’2’);
INSERT INTO duoxt VALUES ('8','0','027',‘10035’,’1113’,’ 1113’,’ 1113’,’ 1113’,’3’);
INSERT INTO duoxt VALUES ('9','1','028',‘10036’,’1114’,’ 1114’,’ 1114’,’ 1114’,’4’);
3、tkt
INSERT INTO tkt VALUES ('2','0','012',‘10045’,’1024’,’1023’,’1012’,’1027’);
INSERT INTO tkt VALUES ('5','1','011',‘10042’,’1045’,’1024’,’1024’,’1016’);
INSERT INTO tkt VALUES ('5','0','013',‘10047’,’1025’,’1025’,’1025’,’1025’);
INSERT INTO tkt VALUES ('6','1','014',‘10048’,’1022’,’1026’,’1025’,’1024’’)
4、jdt
INSERT INTO jdt VALUES ('1','0','011',‘10045’,’10026’)
INSERT INTO jdt VALUES ('2','1','012',‘10046’,’10027’)
INSERT INTO jdt VALUES ('3','0','013',‘10047’,’10028’)
INSERT INTO jdt VALUES ('4','1','014',‘10048’,’10029’)
插入
插入一道简答题记录('3','0','013',‘10047’,’10028’)INSERT INTO jdt (number,nandu,zhisd ,ques ,answ) VALUES('3','0','013',‘10047’,’10028’);
修改
修改某一个元组的值
例将多选题10025的考试内容改成微积分
UPDATE duoxt
SET course = ‘微积分’
WHERE number= ‘10022’;
删除
删除一个或多个元组
例删除单项选择题为10046的记录
DELETE FROM dxt
WHERE ques = ‘10046’;
查询
单表查询
1、查询多项选择题序号为10156的难度和知识点SELECT nandu, zhisd
FROM duoxt
WHERE duoxt dept LIKE '10156' ESCAPE '/'
Test Test-cred
it
连接查询
创建视图
1.dxt表的视图
Create view I_dxt
As
Select number,nandu ,zhisd ,ques ,op1 ,op2 ,op3 ,op4 answ ;
From dxt
2.duoxt表的视图
Create view I_duoxt
As
Select number,nandu ,zhisd ,ques ,op1 ,op2 ,op3 ,op4 answ ;
From duoxt
t表的视图
Create view I_tkt
As
Select number,nandu,zhisd,ques,answ1,answ2,answ3,answ4,
From tkt;
六、心得体会
这次的课程设计,在同学这段时间的努力下,和其他组同学的帮助下,顺利地完成了数据库系统概论课程设计——试卷库管理系统。
这次课程设计是对我们这一学期所学知识的一次总结,也是一次检验,更是我们对我们自己的一次挑战。
通过这次课程设计,我们都发现对SQL 数据库的
学习还是非常不够的。
但我们通过自己的努力,独立完成了本系统的构思、设计、调试及其完善。
这个系统的设计能够基本满足学校教务处和教师对试卷进行管理,更好的服务广大同学。
当然我的设计中也存在着很多不足之处比如用户的权限还不是很完善,对表的操作权限可能会存在一些问题。
在系统设计中,我遇到了很多的困难。
我们这门课程成绩本就不是很好,特别是操作过程中遇到很多问题,比如对E-R图的创建出现了多次错误,设计思路上多次出现问题,结果总是调试不出来等等诸多问题。
从开始的无从下手到慢慢入手在到思路清晰,我一步一个脚印从无到有学会了很多很多。
我想说只有不断实践才是成功的关键!当然,我离将设计做得很完美的程度,还是存在非常之大的差距。
本次课程设计在很多地方需要完善,这需要我在今后的学习中,不断提高对自身的要求,及时掌握新的知识,多多参与实践,在实践中锻炼和提高自己的能力。
同时我们也学到了团队合作的重要,缺少谁我们都不能顺便了完成我们的任务,我们缺少谁都将直接影响到我们的最终结果。
因此这是我们此次学到最最最重要的一点就是我们又一次体会到了、学会了团队合作精神。