课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
任务书
课
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
名称
《数据库原理》课程设计
完成时间
指导教师
职称
学生姓名
班级
总体设计要求
总体设计要求:
1、明确课设任务,复习与查阅相关资料。
2、根据老师给出的设计题目,在两周时间内完成其中某一个题目的从用户需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
、数据库设计到上机编程、调试和应用等全过程的数据库系统设计。如果学生自拟题目,需经指导教师同意。
3、每位学生必须独立完成课程设计任务,不能抄袭,设计完成后,将所完成的工作交由老师检查;要求写出一份详细的设计报告。
4、按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。
5、应用程序应具有一定的实用性和健壮性。
工作内容及时间进度安排
第一周、周1:设计动员,分组,布置课程设计任务。
第一周、周2:查阅资料,制定方案,进行程序总体设计。
第一周、周3~第二周2:详细设计, 系统调试。
第二周、周3:整理,撰写设计报告。
第二周、周4-周5:验收,提交设计报告,评定成绩。
课程设计成果
1、课程设计报告书一份
2、源程序清单一份
内容摘要
随着计算机技术和互联网的迅速发展,各种基于互联网的应用系统也随着实际需要而越来越得到人们的青睐和重视,考试管理系统正是在这种形势下应运而生的,随之而来的问题就是如何设计考试管理系统数据库,本文就是从大体上介绍考试管理系统数据库设计过程。
通过对考试系统中所涉及的用户做了大量的调察和分析,得出了各层次的用户对本系统的需求,然后按照数据库设计的步骤对该数据库进行设计。分别对用户管理、考试管理和成绩管理进行了设计。实现了管理员添加用户、修改用户信息和删除用户,教师对学生信息管理查询,以及学生对自己信息的添加、修改和查询。
本系统使用SQL 2008来创建数据库、数据、以及全部功能。
依照现在科技的发展趋势,考试管理系统势必会大有发展前途,而且在线考试管理系统也会逐步代替现在传统的考试形式。
关键字:考试管理系统 用户 数据库 在线考试管理系统
目 录
1第1章 考试管理系统需求分析
11.1 信息要求
11.2 处理要求
11.2.1 学生要求
11.2.2院系
11.2.3系统管理员
11.3 安全性和完整性要求
1第2章 考试管理系统概念结构设计
12.1分E-R图
42.2 总E-R图
4第3章 考试管理系统逻辑结构设计
43.1登陆界面
53.2管理员界面
53.2.1新建用户
53.2.2查询及修改学生或教师信息
53.3 教师界面
63.3.1成绩管理菜单
63.3.2报考学生管理菜单
63.4学生界面
63.4.1添加个人信息菜单
73.4.2维护个人信息菜单
73.4.3查询考试信息菜单
7第4章 数据库物理结构设计
74.1以
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
格的形式列出各张表
9第5章 数据库实施
95.1考试管理系统中建立的基本表
115.2 考试管理系统中创建的索引
115.3 考试管理系统中建立的视图
125.4 考试管理系统中建立的触发器
14第6章 数据库应用系统的实施和维护
146.1 考试管理系统数据库的建立语句
156.2 载入初始数据的语句
17第7章 小结
18致 谢
19参考文献
20附 录
考试管理系统数据库设计
第1章 考试管理系统需求分析
1.1 信息要求
本系统为用户提供学生的个人信息、考试成绩信息、并在数据库中提供对学生个人信息、老师信息、管理员信息的保存和修改等以及各部分信息的联系。
1.2 处理要求
1.2.1 学生要求
(1)浏览个人信息,包括学号、密码、姓名、性别、出生年月、入学年月、班级、系别、学院、成绩(按照考试科目号列出学科名、授课老师、学分、分数、绩点(可按照公式算出));
(2)修改个人信息,为了保证系统的安全性,只允许学生修改个人信息中的密码;
(3)学生登录系统后,选择公布的考试科目,浏览和完成试题,最后确认提交;
(4)考试后,学生登录系统,可以查看自己的考试成绩和绩点;
1.2.2教师
(1)浏览个人信息,包括教工号、密码、姓名、性别、出生年月、授课课程(可多个)、学院、职位;
(2)修改个人信息,但只允许修改个人信息中的密码;
(3)组卷,即从试题库中抽取题目组合成试卷,为题目赋分值并向指定学生发布试卷;
(4)评卷,为每个人的简答题和实操题打分,填空题和选择题由系统自动打分,最后由系统进行统分[和绩点的计算];
*(5)查询考试结果
1.2.3系统管理员
管理个人信息,管理老师、学生用户信息、试题管理、统计成绩(各种类型的统计,或许可以制表察看历年历届考试情况,以便教学分析)、查询考试结果(所有结果)
(1)浏览、添加、修改和删除学生信息、教师信息、[班级信息]、课程信息、全部考试成绩信息;
(2)成绩统计,可以制表察看历年历届考试情况,以便教学分析;
(3)教师权限的修改,管理员可将教师的权限设为管理员;也可回收授出的权限;
1.3 安全性和完整性要求
在本数据库中,用户分为管理员、教师、学生,授予了他们不同的权限,他们不能越权操作;数据库中还建立了视图,使他们只能看到自己能看到的信息,防止了信息的泄露。 他们各自修改信息的权限也不同,只能修改自己权限内的信息。而且登录系统时就会判断他们的身份,是进入各自的界面。
以上这些是本数据库系统达到安全性和完整性的
机制
综治信访维稳工作机制反恐怖工作机制企业员工晋升机制公司员工晋升机制员工晋升机制图
。
第2章 考试管理系统概念结构设计
2.1分E-R图
图 2-1-1 学生E-R图
图 2-1-2 教师E-R图
图 2-1-3 课程 E-R图
[图 2-1-4 班级 E-R图]
图 2-1-5考试E-R图
图 2-1-6 学生考试E-R图
图 2-1-7 成绩E-R图
2.2 总E-R图
图 2-2 总E-R图
第3章 考试管理系统逻辑结构设计
3.1登陆界面
[]
图 3-1 登陆界面
功能:
(1) 用户对应权限登录。分教师,学生,管理员。默认为学生。根据选择的权限进入相应的界面。
(2) 输入用户名框非空,密码框非空,权限选择判断
3.2管理员界面
[]
图 3-2 管理员界面
学生管理菜单和教师管理菜单的下一级菜单都分为新建用户,查询,修改和删除用户信息,以及对教师的授权
3.2.1新建用户
功能:
新建学生用户或教师用户
3.2.2查询及修改学生或教师信息
功能:
(1) 按ID号查询学生或教师
(2) 按用户名查询学生或教师
(2) 修改学生或教师信息
(3) 删除学生或教师
3.2.3对教师的授权
功能:
在教师管理菜单的下一级菜单下,进行管理员权限的授权和设限
3.3 教师界面
[]
图 3-3 教师界面
3.3.1成绩管理菜单
功能:
(1) 查询所有本人授课的学生的成绩(视图)或 各系的学生的成绩 (视图)
表格格式为:学生学号,学生姓名,班级名,成绩(按成绩的降序,学生学好的升序排列)
(2) 列出不及格学生学号,考试名称,成绩(视图)
3.3.2 试卷发布与评卷
功能:
(1) 组卷,即从试题库中抽取题目组合成试卷,为题目赋分值并向指定学生发布试卷;
(2) 评卷,为每个人的简答题和实操题打分,选择题和填空题由系统自动打分,最后由系统进行统分[和绩点的计算];
3.3.3 题库的建立、更新和使用
功能:
(1)
(2)
(3)
3.4学生界面
图 3-4 学生界面
3.4.1维护个人信息菜单
功能:
对个人信息进行查询, 修改(只对密码修改)
3.4.2查询考试信息菜单
功能:
(1)查询个人所有考试成绩(结果按成绩的降序排列)
(2)按课程名查询该科成绩
第4章 数据库物理结构设计
4.1以表格的形式列出各张表
表4-1 学生信息表(tb_Student)
序号
字段名称
中文含义
数据类型
长度
完整性约束
索引
字段说明
1
StuNo
学号
char
10
主键
升序
----
2
StuName
学生姓名
char
10
不允许为空
----
3
StuSex
性别
char
2
只能为男或女
----
4
StuPw
密码
char
10
不允许为空
初始都为000000
5
DeptNo
所学专业
char
10
DeptNo外键
----
6
ClassNo
班级
char
10
ClassNo外键
----
7
S_JoinYear
入学年份
char
4
不允许为空
----
表4-2 教师信息表(tb_Teacher)
序号
字段名称
中文含义
数据类型
长度
完整性约束
索引
字段说明
1
TeaNo
教师编号
char
10
主键
升序
----
2
TeaName
教师姓名
char
10
不允许为空
----
3
TeaSex
性别
char
2
只能为男或女
----
4
TeaPw
密码
char
10
不允许为空
初始都为111111
5
DeptNo
所教专业
char
10
DeptNo外键
----
6
T_JoinYear
任教年份
char
4
不允许为空
----
7
Post
职务
char
10
不允许为空
----
表4-3 专业信息(tb_ Dept)
序号
字段名称
中文含义
数据类型
长度
完整性约束
索引
字段说明
1
DeptNo
专业编号
char
10
主键
升序
----
2
DeptName
专业名称
char
10
不允许为空
----
3
D_CreateT
创建时间
DateTime
不允许为空
----
4
DeptDtor
专业主任
char
10
不允许为空
----
表4-4 班级信息(tb_ Class)
序号
字段名称
中文含义
数据类型
长度
完整性约束
索引
字段说明
1
ClassNo
班级编号
char
10
主键
升序
----
2
ClassName
班级名称
char
10
不允许为空
----
3
C_CreateT
创建时间
datetime
不允许为空
----
4
DeptNo
专业编号
char
10
DeptNo外键
----
5
ClassDtor
导员
char
10
不允许为空
----
表4-5 考试管理表(tb_ExamManage)
序号
字段名称
中文含义
数据类型
长度
完整性约束
索引
字段说明
1
ExamNo
考试编号
char
10
主键
升序
----
2
ExamName
考试名称
char
10
不允许为空
----
3
ExamTime
考试时长
int
不允许为空
----
4
DeptNo
专业
char
10
DeptNo外键
----
表4-6 学生考试信息表(tb_ExamMInfo)
序号
字段名称
中文含义
数据类型
长度
完整性约束
索引
字段说明
1
StuNo
学号
char
10
StuNo外键
----
2
ExamNo
考试编号
char
10
ExamNo外键
----
3
ExamDate
考试日期
datetime
不允许为空
----
4
ExamRoom
考场
char
10
不允许为空
----
表4-7 成绩信息管理表(tb_ScoreManage)
序号
字段名称
中文含义
数据类型
长度
完整性约束
索引
字段说明
1
ExamNo
考试编号
char
10
ExamNo外键
----
2
StuNo
学号
char
10
StuNo外键
----
3
Score
成绩
char
5
可以为空
----
第5章 数据库实施
5.1考试管理系统中建立的基本表
(1) 专业信息表
CREATE TABLE tb_Dept
(
DeptNo CHAR(10) PRIMARY KEY,
DeptName CHAR(10) NOT NULL,
D_CreateT DATETIME NOT NULL,
DeptDtor CHAR(10) NOT NULL,
);
(2) 班级信息表
CREATE TABLE tb_Class
(
ClassNo CHAR(10) PRIMARY KEY,
ClassName CHAR(10) NOT NULL,
C_CreateT DATETIME NOT NULL,
DeptNo CHAR(10),
ClassDtor CHAR(10) NOT NULL,
FOREIGN KEY (DeptNo) REFERENCES tb_Dept(DeptNo),
);
(3) 考试管理表
CREATE TABLE tb_ExamManage
(
ExamNo CHAR(10) PRIMARY KEY,
ExamName CHAR(10) NOT NULL,
ExamTime INT NOT NULL,
DeptNo CHAR(10),
FOREIGN KEY (DeptNo) REFERENCES tb_Dept(DeptNo)
);
(4) 学生信息表
CREATE TABLE tb_Student
(
StuNo CHAR(10) PRIMARY KEY,
StuName CHAR(10)NOT NULL,
StuSex CHAR(2) CHECK(StuSex IN ('男','女')),
StuPw CHAR(10) NOT NULL,
DeptNo CHAR(10),
ClassNo CHAR(10),
S_JoinYear CHAR(4) NOT NULL,
FOREIGN KEY (DeptNo) REFERENCES tb_Dept(DeptNo),
FOREIGN KEY (ClassNo) REFERENCES tb_Class(ClassNo)
);
(5) 教师信息表
CREATE TABLE tb_Teacher
(
TeaNo CHAR(10) PRIMARY KEY,
TeaName CHAR(10) NOT NULL,
TeaSex CHAR(2) CHECK(TeaSex IN ('男','女')),
TeaPw CHAR(10) NOT NULL,
DeptNo CHAR(10),
T_JoinYear CHAR(4) NOT NULL,
Post CHAR(10) NOT NULL,
FOREIGN KEY (DeptNo) REFERENCES tb_Dept(DeptNo)
);
(6) 学生考试信息表
CREATE TABLE tb_ExamMInfo
(
StuNo CHAR(10),
ExamNo CHAR(10),
ExamDate DATETIME NOT NULL,
ExamRoom CHAR(10) NOT NULL,
FOREIGN KEY (StuNo) REFERENCES tb_Student(StuNo),
FOREIGN KEY (ExamNo) REFERENCES tb_ExamManage(ExamNo),
);
(7) 成绩信息管理表
CREATE TABLE tb_ScoreManage
(
StuNo CHAR(10),
ExamNo CHAR(10),
Score CHAR(5) ,
FOREIGN KEY (StuNo) REFERENCES tb_Student(StuNo),
FOREIGN KEY (ExamNo) REFERENCES tb_ExamManage(ExamNo),
);
5.2 考试管理系统中创建的索引
(1) 班级表上的索引
CREATE UNIQUE INDEX INX_Class ON tb_Class(ClassNo)
(2) 专业表上的索引
CREATE UNIQUE INDEX INX_Dept ON tb_Dept(DeptNo)
(3) 考试管理表上的索引
CREATE UNIQUE INDEX INX_ExamManage ON tb_ExamManage(ExamNo)
(4) 学生信息表上的索引
CREATE UNIQUE INDEX INX_Student ON tb_Student(StuNo)
(5) 教师信息表上的索引
CREATE UNIQUE INDEX INX_Teacher ON tb_Teacher(TeaNo)
5.3 考试管理系统中建立的视图
(1) 查询所有报考学生的成绩
CREATE VIEW 所有学生成绩_VIEW
AS
SELECT tb_ScoreManage.StuNo,StuName,Score
FROM tb_ScoreManage,tb_Student
WHERE tb_ScoreManage.StuNo=tb_Student.StuNo AND ExamNo IN(
SELECT ExamNo FROM tb_ExamManage
WHERE ExamName IS NOT NULL )
(2) 查询各系的学生的成绩(以系名为机械工程系为例)
CREATE VIEW 学生成绩_1_VIEW
AS
SELECT tb_ScoreManage.StuNo,StuName,Score
FROM tb_ScoreManage,tb_Student
WHERE tb_ScoreManage.StuNo=tb_Student.StuNo AND ExamNo IN(
SELECT ExamNo FROM tb_ExamManage
WHERE ExamName IS NOT NULL ) AND DeptNo=
(SELECT DeptNo FROM tb_Dept WHERE DeptName='机械工程系' )
(3) 查询学生成绩,列出不及格学生学号、考试名称、成绩
CREATE VIEW 补考学生_VIEW
AS
SELECT StuNo,ExamName,Score
FROM tb_ScoreManage,tb_ExamManage
WHERE tb_ScoreManage.ExamNo=tb_ExamManage.ExamNo
GROUP BY StuNo,ExamName,Score
HAVING Score<'60'
(4) 查询所有报考学生人数(按考试名称分类)
CREATE VIEW 所有报考人数_VIEW
AS
SELECT ExamName,COUNT(StuNo)报考人数
FROM tb_ExamManage,tb_ExamMInfo
WHERE tb_ExamManage.ExamNo=tb_ExamMInfo.ExamNo AND (ExamName IS NOT NULL)
GROUP BY ExamName
5.4 考试管理系统中建立的触发器
(1) 班级信息插入触发器
CREATE TRIGGER TRI_Class
ON tb_Class
FOR INSERT
AS
IF ((SELECT ClassName FROM INSERTED)='')OR ((SELECT C_CreateT FROM INSERTED)='')
OR ((SELECT ClassDtor FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(2) 专业信息插入触发器
CREATE TRIGGER TRI_Dept
ON tb_Dept
FOR INSERT
AS
IF ((SELECT DeptName FROM INSERTED)='')OR ((SELECT D_CreateT FROM INSERTED)='')
OR ((SELECT DeptDtor FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(3) 考试管理插入触发器
CREATE TRIGGER TRI_ExamManage
ON tb_ExamManage
FOR INSERT
AS
IF ((SELECT ExamName FROM INSERTED)='')OR ((SELECT ExamTime FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(4) 考试信息插入触发器
CREATE TRIGGER TRI_ExamMInfo
ON tb_ExamMInfo
FOR INSERT
AS
IF ((SELECT ExamDate FROM INSERTED)='')OR ((SELECT ExamRoom FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(5) 学生信息插入触发器
CREATE TRIGGER TRI_Student
ON tb_Student
FOR INSERT
AS
IF ((SELECT StuName FROM INSERTED)='')OR ((SELECT StuPw FROM INSERTED)='')
OR ((SELECT S_JoinYear FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(6) 教师信息插入触发器
CREATE TRIGGER TRI_Teacher
ON tb_Teacher
FOR INSERT
AS
IF ((SELECT TeaName FROM INSERTED)='')OR ((SELECT TeaPw FROM INSERTED)='')
OR ((SELECT T_JoinYear FROM INSERTED)='')OR ((SELECT Post FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
第6章 数据库应用系统的实施和维护
6.1 考试管理系统数据库的建立语句
CREATE DATABASE db_ExamManage
ON
(
name=db_ExamManage_data,
filename='e:\SHUJUKU\db_ExamManage_data.mdf',
size=10MB,
maxsize=300,
filegrowth=10%
)
LOG ON
(
name=db_ExamManage_log,
filename='e:\SHUJUKU\db_ExamManage_data.ldf',
size=5MB,
maxsize=200MB,
filegrowth=2MB
)
6.2 载入初始数据的语句
(1) 专业信息
INSERT INTO tb_Dept VALUES('1','机械工程系','1986','王怀明')
INSERT INTO tb_Dept VALUES('2','电子工程系','1983','陈刚')
INSERT INTO tb_Dept VALUES('3','经济管理系','1978','李卓华')
INSERT INTO tb_Dept VALUES('4','建筑工程系','1984','张海洋')
INSERT INTO tb_Dept VALUES('5','计算机系','1989','李建章')
INSERT INTO tb_Dept VALUES('6','会计系','1982','朱连生')
INSERT INTO tb_Dept VALUES('7','外语系','2003','尹静')
INSERT INTO tb_Dept VALUES('8','材料工程系','2003','李健')
INSERT INTO tb_Dept VALUES('9','文法系','2003',' 郑克清')
(2) 班级信息
INSERT INTO tb_Class VALUES('511','B11','1986','1','昊易')
INSERT INTO tb_Class VALUES('411','Z11','1986','1','昊易')
INSERT INTO tb_Class VALUES('512','B12','1983','2','张田')
INSERT INTO tb_Class VALUES('412','Z12','1983','2','张田')
INSERT INTO tb_Class VALUES('513','B13','1978','3','赫敏')
INSERT INTO tb_Class VALUES('413','Z13','1978','3','赫敏')
INSERT INTO tb_Class VALUES('521','B21','1984','4','周杰')
INSERT INTO tb_Class VALUES('421','Z21','1984','4','周杰')
INSERT INTO tb_Class VALUES('522','B22','1989','5','王珊')
INSERT INTO tb_Class VALUES('422','Z22','1989','5','王珊')
INSERT INTO tb_Class VALUES('523','B23','1982','6','贺平')
INSERT INTO tb_Class VALUES('423','Z23','1982','6','贺平')
INSERT INTO tb_Class VALUES('531','B31','2003','7','李翼')
INSERT INTO tb_Class VALUES('431','Z31','2003','7','李翼')
INSERT INTO tb_Class VALUES('532','B32','2003','8','张翔')
INSERT INTO tb_Class VALUES('432','Z32','2003','8','张翔')
INSERT INTO tb_Class VALUES('533','B33','2003','9','王琳')
INSERT INTO tb_Class VALUES('433','Z33','2003','9','王琳')
(3) 学生信息
INSERT INTO tb_Student VALUES('2009511001','李浩','男','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511002','章菲','女','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511003','王龙','男','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511004','肖琪','女','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511005','张小航','男','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511006','王文广','女','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511007','李理','女','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511008','李彦宏','男','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511009','张丽霞','女','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511010','王强','男','000000','1','511','2009')
INSERT INTO tb_Student VALUES('2009511011','张宝田','男','000000','1','511','2009')
(4) 教师信息
INSERT INTO tb_Teacher VALUES('19861002','韩飞','男','111111','1','1986','工程师')
INSERT INTO tb_Teacher VALUES('19861003','于文燕','女','111111','1','1986','教授')
INSERT INTO tb_Teacher VALUES('19861004','朱学忠','男','111111','1','1986','教授')
INSERT INTO tb_Teacher VALUES('19861005','张新峰','男','111111','1','1986','教授')
INSERT INTO tb_Teacher VALUES('19832001','金辉','男','111111','2','1983','教授')
INSERT INTO tb_Teacher VALUES('19832002','毛斯璐','女','111111','2','1983','教授')
INSERT INTO tb_Teacher VALUES('19832003','王沪宁','女','111111','2','1983','副教授')
INSERT INTO tb_Teacher VALUES('19832004','王梦','女','111111','2','1983','副教授')
INSERT INTO tb_Teacher VALUES('19832005','王维澄','女','111111','2','1983','讲师')
(5) 考试管理
INSERT INTO tb_ExamManage VALUES('SJK1','数据库系统','120','1')
INSERT INTO tb_ExamManage VALUES('DZJC1','电子技术','120','1')
INSERT INTO tb_ExamManage VALUES('JZ1','计算机结构','120','1')
INSERT INTO tb_ExamManage VALUES('MG1','毛泽东思想','120','1')
INSERT INTO tb_ExamManage VALUES('DY1','大学英语','120','1')
INSERT INTO tb_ExamManage VALUES('SJJG1','数据结构','120','1')
INSERT INTO tb_ExamManage VALUES('DXWL1','大学物理','120','1')
INSERT INTO tb_ExamManage VALUES('DLFX1','电路基础','120','1')
INSERT INTO tb_ExamManage VALUES('GLL1','概率论','120','1')
INSERT INTO tb_ExamManage VALUES('XXDS1','线性代数','120','1')
INSERT INTO tb_ExamManage VALUES('JDS1','中国近代史','90','1')
(6) 考试信息
INSERT INTO tb_ExamMInfo VALUES('2009512001','SJK1','2010-6-22','8-422')
INSERT INTO tb_ExamMInfo VALUES('2009512001','DZJC1','2010-6-25','8-422')
INSERT INTO tb_ExamMInfo VALUES('2009512001','JZ1','2010-6-27','8-422')
INSERT INTO tb_ExamMInfo VALUES('2009512001','MG1','2010-6-29','8-422')
INSERT INTO tb_ExamMInfo VALUES('2009512001','DY1','2010-6-30','8-422')
第7章 小结
通过本次考试管理数据库系统设计让我亲身经历了数据库设计的所有过程,从该系统的需求分析到概念结构设计、逻辑结构设计,直至该数据库的完成,对我以后的学习和工作都有莫大的帮助。初次独自设计数据库,结果就可想而知了,虽然尽了自己最大的努力,完成后的数据库还是有很多的不足,需要改进的地方很多。
不足的地方有:
(1) 数据库实用性不太大,功能不齐全,整个数据库设计好了,就像一个空架子。
(2) 虽然添加了插入触发器,此触发器是用来判断插入信息是否为空,但是考试成绩信息表中还可以插入考试编号、学生学号与数据库已存在的信息。
(3) 本系统中未书写存储过程。
(4) 在成绩管理表中成绩大于100依旧能输入,因为成绩是字符,如果设为int时,没成绩和成绩为0区分不了。
(5) 未能与其他的软件连接好,只能做excel做点界面,然后在进行了超链接。
(6) 界面做的也不是很好,需要改进。
本系统把老师查询学生信息分了不同的权限,教师(教师还分系主任、班主任、老师)就只能看到本系学生或本班的学生信息。管理员添加用户时只要添加用户的编号和密码(初始密码固定),编号是用户登录该系统的用户名,用户的其他详细信息只要用户登录该系统就可以自己添加,为管理员省时间和不必要的错误等;用户登陆后可以修改自己的密码防止信息外泄。本系统还建立了视图,使信息对不同用户只能看到自己所能看到的信息,防止了越权看到别的信息,提高了系统的信息的安全性。
致 谢
经过自己亲手进行的考试管理系统数据库的设计,从该系统的需求分析到概念结构设计、逻辑结构设计,直至该数据库的完成,在这整个过程中,对本课知识有了更深入的了解,这两周的的课设,基本每天都在上网或在图书馆查资料,最终完成了数据库的设计,这对我来说不仅是个很大的挑战,更是自己的一次锻炼,在课设过程中遇到很多以前没遇到过的问题,在解决问题中也得到了进步,我相信这次课程设计对我以后的本专业的学习会起到很大的作用的,对我以后的工作也很有帮助,很感谢老师在我设计数据库时和验收时给我的帮助和建议,这次课程设计使我明白了很多知识,受益匪浅。
最后,在这次课程设计过程中,深刻的感觉到自己知识的匮乏,还需要课外继续学习,不断完善和增加自身的知识和经验。
参考文献
[1] 刘王珊,萨师煊.数据库系统概论.高等教育出版社,2008-12.
[2] 冯建华.数据库系统设计与原理.清华大学出版社,2005-12-22
[3] 李春葆,曾平.数据库原理与应用:基于SQL Server 2000(第2版).清华大学出版社,2007-11-1
附 录
数据库中的代码:
1 数据库
use master
go
create database db_ExamManage
on
(
name=db_ExamManage_data,
filename='e:\SHUJUKU\db_ExamManage_data.mdf',
size=10MB,
maxsize=300,
filegrowth=10%
)
log on
(
name=db_ExamManage_log,
filename='e:\SHUJUKU\db_ExamManage_data.ldf',
size=5MB,
maxsize=200MB,
filegrowth=2MB
)
2 数据库中的表
(1) CREATE TABLE tb_Dept
(
DeptNo CHAR(10) PRIMARY KEY,
DeptName CHAR(10) NOT NULL,
D_CreateT DATETIME NOT NULL,
DeptDtor CHAR(10) NOT NULL,
);
(2) CREATE TABLE tb_Class
(
ClassNo CHAR(10) PRIMARY KEY,
ClassName CHAR(10) NOT NULL,
C_CreateT DATETIME NOT NULL,
DeptNo CHAR(10),
ClassDtor CHAR(10) NOT NULL,
FOREIGN KEY (DeptNo) REFERENCES tb_Dept(DeptNo),
);
(3) CREATE TABLE tb_ExamManage
(
ExamNo CHAR(10) PRIMARY KEY,
ExamName CHAR(10) NOT NULL,
ExamTime INT NOT NULL,
DeptNo CHAR(10),
FOREIGN KEY (DeptNo) REFERENCES tb_Dept(DeptNo)
);
(4) CREATE TABLE tb_Student
(
StuNo CHAR(10) PRIMARY KEY,
StuName CHAR(10)NOT NULL,
StuSex CHAR(2) CHECK(StuSex IN ('男','女')),
StuPw CHAR(10) NOT NULL,
DeptNo CHAR(10),
ClassNo CHAR(10),
S_JoinYear CHAR(4) NOT NULL,
FOREIGN KEY (DeptNo) REFERENCES tb_Dept(DeptNo),
FOREIGN KEY (ClassNo) REFERENCES tb_Class(ClassNo)
);
(5) CREATE TABLE tb_Teacher
(
TeaNo CHAR(10) PRIMARY KEY,
TeaName CHAR(10) NOT NULL,
TeaSex CHAR(2) CHECK(TeaSex IN ('男','女')),
TeaPw CHAR(10) NOT NULL,
DeptNo CHAR(10),
T_JoinYear CHAR(4) NOT NULL,
Post CHAR(10) NOT NULL,
FOREIGN KEY (DeptNo) REFERENCES tb_Dept(DeptNo)
);
(6) CREATE TABLE tb_ExamMInfo
(
StuNo CHAR(10),
ExamNo CHAR(10),
ExamDate DATETIME NOT NULL,
ExamRoom CHAR(10) NOT NULL,
FOREIGN KEY (StuNo) REFERENCES tb_Student(StuNo),
FOREIGN KEY (ExamNo) REFERENCES tb_ExamManage(ExamNo),
);
(7) CREATE TABLE tb_ScoreManage
(
StuNo CHAR(10),
ExamNo CHAR(10),
Score CHAR(5) ,
FOREIGN KEY (StuNo) REFERENCES tb_Student(StuNo),
FOREIGN KEY (ExamNo) REFERENCES tb_ExamManage(ExamNo),
);
3 数据库中的触发器
(1) CREATE TRIGGER TRI_Class
ON tb_Class
FOR INSERT
AS
IF ((SELECT ClassName FROM INSERTED)='')OR ((SELECT C_CreateT FROM INSERTED)='')
OR ((SELECT ClassDtor FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(2) CREATE TRIGGER TRI_Dept
ON tb_Dept
FOR INSERT
AS
IF ((SELECT DeptName FROM INSERTED)='')OR ((SELECT D_CreateT FROM INSERTED)='')
OR ((SELECT DeptDtor FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(3) CREATE TRIGGER TRI_ExamManage
ON tb_ExamManage
FOR INSERT
AS
IF ((SELECT ExamName FROM INSERTED)='')OR ((SELECT ExamTime FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(4) CREATE TRIGGER TRI_ExamMInfo
ON tb_ExamMInfo
FOR INSERT
AS
IF ((SELECT ExamDate FROM INSERTED)='')OR ((SELECT ExamRoom FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(5) CREATE TRIGGER TRI_Student
ON tb_Student
FOR INSERT
AS
IF ((SELECT StuName FROM INSERTED)='')OR ((SELECT StuPw FROM INSERTED)='')
OR ((SELECT S_JoinYear FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
(6) CREATE TRIGGER TRI_Teacher
ON tb_Teacher
FOR INSERT
AS
IF ((SELECT TeaName FROM INSERTED)='')OR ((SELECT TeaPw FROM INSERTED)='')
OR ((SELECT T_JoinYear FROM INSERTED)='')OR ((SELECT Post FROM INSERTED)='')
BEGIN
PRINT'添加错误,请仔细查看插入信息格式!'
ROLLBACK
END
4 数据库中的索引
(1) CREATE UNIQUE INDEX INX_Class ON tb_Class(ClassNo)
(2) CREATE UNIQUE INDEX INX_Dept ON tb_Dept(DeptNo)
(3) CREATE UNIQUE INDEX INX_ExamManage ON tb_ExamManage(ExamNo)
(4) CREATE UNIQUE INDEX INX_Student ON tb_Student(StuNo)
(5) CREATE UNIQUE INDEX INX_Teacher ON tb_Teacher(TeaNo)
姓 名
李小龙
班 级
B09512
指导教师
贾振华副教授
题 目
考试管理系统数据库设计
指导教师评语
评定成绩:
指导教师签字: 年 月 日
课程设计成绩
返回上级菜单
进入考试界面
个人信息查询和修改
返回上级菜单
成绩查询与管理
试卷发布与评卷
个人信息查询与修改
N
N
1
1
N
1
管理
管理
管理
教师
学生
管理员
PAGE
7