学生成绩管理系统数据库设计.docx
《学生成绩管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库设计.docx(9页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统数据库设计
1、系统概述
学生成绩管理是高校内每一个系部或院部都必须切实面对的工作,但一直以来人们使用传统的人工方式管理学生成绩管理。
这种方式存在着许多缺点,如效率低、失误高且较为繁琐。
另外,随着学生人数的增加,其工作量也将大大增加,这必将增加学生成绩管理者的工作量和劳动强度,这将给学生成绩信息的查找、更新和维护都带来了很多困难。
经过详细的调查,目前我国各类高等学校中有相当一部分单位学生成绩管理还停留在人工管理的基础上。
这样的管理机制已经不能适应时代的发展,其管理方法将浪费许多人力和物力。
随着科学技术的不断提高,这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代。
学生成绩管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等。
这些优点能够极大地提高学生成绩管理的效率。
因此,开发一套能够为用户提供充足的信息和快捷的查询手段的学生成绩管理系统,将是非常必要的,也是十分及时的。
2、需求分析
学生成绩管理是一件非常繁琐但又及其重要的工作,因此有必要开发一个数据库管理系统,用来管理这些信息。
系统的具体要求如下所述:
(1)学生成绩的录入:
要求能够将学生成绩录入到数据库中。
(2)学生成绩的修改:
根据需要,修改、删除学生成绩。
(3)学生成绩的查询:
可以查询任意学生的基本信息及其所选课程和成绩。
(4)学生成绩的统计:
可以对任意教师所教学生的成绩进行查询并统计。
3、数据库设计
数据库设计主要在SQLServer服务器端建立数据库和数据表,并实现数据处理功能。
本文所设计的数据库中要记录学生的成绩情况、学生成绩被查询的情况以及学生、成绩的基本情况。
下面对学生成绩管理系统所需的数据结构进行分析并创建数据库。
3.1概念结构设计
现在对所设计系统的需求作进一步的分析,产生概念结构设计的E-R模型。
由于这个系统并不复杂,因此可采用自顶向下的设计方法。
自顶向下设计的关键是确定系统的核心活动。
所谓核心活动就是系统中的其他活动都要围绕这个活动展开,或与此活动密切相关。
确定了核心活动之后,系统就有了可扩展的余地。
对于这个学生成绩管理系统,其核心活动是查询,学生与成绩之间是通过查询发生联系的。
因此,此系统包含的实体有:
课程、学生、教师、成绩、班级。
E-R图如下:
学生信息E-R图
课程信息E-R图
教师信息表E-R图
学生成绩E-R图
班级信息E-R图
3.2逻辑结构设计
有了基本的E-R模型就可以进行逻辑结构设计,也就是设计基本的关系模式。
设计基本的关系模式主要从E-R模型出发,将其直接转换为关系模式。
根据转换规则,这个E-R转换的关系模式为:
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系,其关系模式中对每个实体定义的属性如下:
(1)课程信息表
Class:
(课程名,教师号,学分,学时)
(2)学生信息表
Student1:
(学号,姓名,性别,年龄,专业,系别)
(3)学生成绩表
Score:
(学号,课程名,成绩)
(4)教师信息表
Teacher:
(教师年龄,教师姓名,教师性别,教师系别)
现在分析一下这些关系模式。
由于在设计关系模式时是以现实存在的实体为依据,而且遵守一个基本表只描述现实世界的一个主题的原则,每个关系模式中的每个非主码属性都完全由主码唯一确定,因此上述所有这些关系模式都是第三范式的关系模式。
在设计好关系模式并确定好每个关系模式的主码后,接着根据这些关系模式之间的关联关系确定关系模式的外码。
系统数据库的名称为Data,数据库中包括:
(1)课程信息表(class);
(2)学生信息表(student);
(3)教师表(teacher);
(4)成绩表(score);
课程信息表(class)
字段名
描述
数据类型
字段限制
cname
课程名
char(10)
Notnull
teano
教师姓名
char(10)
Notnull
credit
学分
char(4)
Notnull
ctime
学时
char(50)
Notnull
学生信息表(student1)
字段名
描述
数据类型
字段权限
sno
学号
char(10)
Primarykey
sname
姓名
char(10)
Notnull
ssex
性别
char
(2)
Notnull
sage
年龄
char
(2)
Notnull
major
专业
char(10)
Notnull
depart
系别
char(10)
Notnull
教师表(teacher)
字段名
属性
数据类型
字段权限
Tage
教师年龄
char(10)
Primarykey
tname
教师姓名
char(10)
Notnull
Tsex
教师性别
char
(2)
Notnull
Tdepart
教室系别
char(10)
Notnull
字段名
属性
数据类型
字段权限
sno
学号
char(10)
Primarykey
cno
课程名
char(10)
Notnull
degree
成绩
char(10)
Notnull
成绩表
有了数据库的基本表之后,需要看一下这些基本表能否满足产生报表的需求。
在数据库应用系统中,用户需要产生大量的报表,而报表的内容来自数据库中的基本表。
因此在设计好数据库的基本表之后,要看一下这些基本表的内容是否全部包含了要产生的报表的内容。
如果满足,则说明所设计的基本表在满足报表方面是完善的;若不能满足,则看一下报表中的哪些项没有被包含在基本表中,并将它们加到合适的基本表中。
需注意的是,在基本表中添加了新属性后,要判断被修改的表是否还满足第三范式的要求,如果不满足,还要进行关系的规范化。
比如若此学生成绩管理系统要求生成学生查询情况表,内容包括学生证编号、学生姓名、查询科目,其中的“学生证编号”、“学生姓名”可由学生信息表得到,“查询科目”可由课程信息表得到,因此我知道所设计的基本表能够满足报表的要求。
这可以通过定义视图实现,也可以在生成报表时通过查询语句实现。
4、数据库行为设计
对于数据库应用系统来说,最常用的功能就是安全控制、对数据的增、删、改、查及生成报表。
本例也应包含这些基本的操作。
4.1安全控制
任何数据库应用系统都需要安全控制功能,这个学生成绩管理系统也不例外。
假设将系统的用户分为如下几类:
(1)系统管理员:
有系统的全部权限。
(2)成绩管理员:
具有对学生成绩基本数据的维护权。
(3)学生:
具有对学生基本数据的维护权。
(4)普通用户:
具有对数据的查询权。
在实现时,将每一类用户定义为一个角色,这样在授权时只需对角色授权,而无需对每个具体的用户授权。
4.2数据操作功能
数据操作功能包括对这些数据的录入、删除、修改功能。
具体如下:
(1)数据录入包括对这4张表的数据的录入。
只有具有相应权限的用户才能录入相应表中的数据。
(2)数据删除包括对这4张表的数据的删除。
只有具有相应权限的用户才能删除相应表中的数据。
数据的删除要注意表之间的关联关系,比如当某个学生退学时,在删除“学生信息表”中的数据之前,应先删除此学生的全部成绩情况,然后再在信息表表中删除此学生。
此外,在实际删除操作之前应该提醒用户是否真的要删除数据。
(3)数据修改当某些数据发生变化或某些数据录入不正确时,应该允许用户对数据库中的数据进行修改。
修改数据的操作一般先根据一定的条件查询出要修改的记录,然后再对其中的某些记录进行修改,修改完成后再写回到数据库中。
同数据的录入与删除一样,只有具有相应权限的用户才能修改相应表中的数据。
(4)数据查询在数据库应用系统中,数据查询是最常用的功能。
数据查询应根据用户提出的查询条件查询,在设计系统时应首先征求用户的查询需求,然后根据这些查询需求整理出系统应具有的查询功能。
一般允许所有使用数据库的人都具有查询数据的权限。
本系统应具有的查询要求有:
(1)根据身份证号,班级,学生证等信息查询学生的基本信息。
(2)根据学生查询他的的成绩信息。
(3)根据成绩查询学生的情况。
(4)统计查询成绩总次数情况。
(5)统计每个学生成绩的被查询次数(6)统计每位学生的每次成绩。
4.3生成报表
生成报表是数据库应用中不可缺少的一个功能,也是比较麻烦的工作。
所幸的是,常见的许多数据库开发工具(如VisualBasic、Delphi、PowerBuilder等)都提供了报表生成工具,用户可以直接使用这些工具来生成符合实际工作要求的报表。
这里需要生成读者借书情况表,这张表所包含的内容为:
学生查询成绩情况表(学生证号,学生姓名,查询科目,查询日期日期)。
由于这张表的内容不能与某个关系模式完全对应,因此可以采用定义视图的方法来解决。
由于数据库中对视图的操作与对数据库基本表的操作是一样的,因此对用户来说感觉不到用于生成报表的数据库表是基本表还是视图表。
在实际的数据库应用系统中,用于生成报表的表经常用视图表来实现。
为了灵活起见,可以对数据库的基本表进行任意的组合来生成复杂的报表。
而在设计数据库时不必受生成的报表的内容的影响,从而设计出最合适的数据库表结构。
6、总结
这次的课程设计是用数据库来做的,以前只是做些语言类的课程设计,做出来的课程设计自己看着都不怎么好,但是这次实验缺与以前的大不相同,因为生活中大部分的数据都是在数据库中完成的,所以做这次课程设计感觉与现实生活接触最近,做起来也比较有兴趣,但是面临的问题可想而知。
通过这次课程设计使我对软件的界面设计有了一个比较深刻的了解,对各种系统软件的性能有了清晰的认识。
一个好的课程设计应该具有人性化的界面,协调的布局,合理的结构,良好的性能和一定的容错性。
本次课程设计并不是十分完美,由于时间仓促以及本人所学知识有限等方面原因,最终在同学的帮助下还是艰难的完成了。
参考文献:
[1]何玉洁.《数据库原理与应用教程》.机械工业出版社.2007.
[2]刘亚军高莉莎.《数据库设计与应用》.清华大学出版社.2007.
[3]明日科技杨湖李凤蕾王斌.《SQLServer2005数据库系统开发案例精选》.人民邮电出版社.2007.
[4]王珊萨师煊.《数据库系统概论》.高等教育出版社.2006.