学生成绩管理系统数据库设计.docx
《学生成绩管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库设计.docx(21页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统数据库设计
武汉理工大学华夏学院
课程设计报告书
课程名称:
《数据库系统原理》课程设计
题目:
学生成绩管理系统数据库设计
系名:
信息工程系
专业班级:
软件1111班
姓名:
学号:
指导教师:
张玉蓉
2013年12月27日
武汉理工大学华夏学院信息工程系
课程设计任务书
课程名称:
数据库课程设计指导教师:
张玉蓉
班级名称:
软件1111开课系、教研室:
软件与信息安全
一、课程设计目的与任务
数据库课程设计是《数据库原理与应用》课程的后续实践课程,旨在通过一周的实践训练,加深学生对理论课程中数据库的基础知识,原理和使用方法的理解,加强学生综合运用sql语言以及数据库设计进行实际应用,包括数据库设计,数据库实现,sql语言查询和sqlserver数据库应用及管理的能力,进一步提高学生进行数据库设计,分析问题和解决问题的能力。
学生将在指导老师的指导下,完成从需求分析,总体设计,实现到测试的全过程。
二、课程设计的内容与基本要求
本课程设计将设计和开发一个小型的数据库实用系统。
要求数据功能模块划分合理,数据库表设计合理,查询语句优化,数据处理正确。
根据所学的数据库原理与程序设计的知识,能够针对一个小型的图书管理系统,进行数据库系统的需求分析,概念结构设计、逻辑结构设计、物理结构设计,数据录入及测试等,完成题目要求的功能。
主要任务:
(1)需求分析根据设计任务书给出的背景资料,查找相关资料,结合自己的生活经验,对数据和处理过程进行分析,编写详细的数据词典(如数据项、记录的说明、它们的标识符、同义名及有关信息)。
写出需求分析说明,包括系统的功能分析、系统的功能模块设计、数据库的数据字典、数据流图等。
(2)概念结构设计
说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、表的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图和全局视图(E-R图,可以用基本E-R图或扩展E-R图),消除不必要的冗余。
(3)逻辑结构设计与物理结构设计
将概念结构映射为数据库全局逻辑结构(关系模型),包括所确定的关键字和属性、重新确定的记录结构和所建立的各个表文件之间的相互关系。
其中提请注意:
a.关系模式的优化
指出关系模式的范式级别及设计原则
b.安全保密设计
说明在数据库的设计中,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑。
c.物理结构设计
说明在数据库的设计中,是否需要索引及如何设置索引,设置索引的原则。
1.概述.......................................4
1.1设计题目....................................4
1.2可行性分析..................................4
2.需求分析...................................4
3.概念结构设计...............................4
3.1开发工具...................................4
3.2.1功能模块.................................4
3.2.2功能描述.................................4
3.2.3功能结构图................................5
4.逻辑结构设计...............................5
4.1数据分析...................................5
4.2数据库E-R图...............................5
5.物理结构设计...............................6
5.1数据库表设计...............................6
5.2数据库表...................................7
6.实现及测试.................................9
7.结论:
特点和不足...........................14
8.心得体会..................................15
9.参考文献..................................16
1.概述
1.1设计题目:
学生成绩管理系统数据库设计
1.2可行性分析
整个项目开发过程中,主要从经济可行性和技术可行性来分析:
经济可行性:
系统开发过程中,所需要的工具如计算机等所有工具均有自己承担
技术可行性:
目前该小组已经掌握java语言,能熟练编写jsp,数据库的设计与维护,软件工程,在开发过程中对遇到未知的技术问题还将会进行深一步的学习与研究。
2.需求分析
能实现对数据库的增删查改操作,能登陆学生系统,完成对学生系统的操作,能实现数据库的调用和存储。
本需求分析包含了初步分析设计各功能模块、提供性能要求、对用户影响的信息、以及对各功能模块功能的描述;同时也是规范开发人员进行设计和部署实施的基础和依据,为整体工作组的工作流程做出明确指导,引导工作组员之间、工作组员与用户之间的沟通。
最终作为总体审核、验证、确认和结项验收的依据;为开发方与客户方提供合法的合同保障。
3.概念结构设计
3.1开发工具
Windows环境下使用Myeclipse和mysql
3.2.1功能模块
功能一:
管理员
1CRUD学生信息
2CRUD教师信息
3CRUD课程信息
4课程和老师分配
功能二:
老师
1添加/修改/删除/查询学生成绩
2查询学生
3查询所带课程
功能三:
学生
1查询成绩
2查询课程/选课
3个人信息管理
3.2.2功能描述
功能编号
1-1
功能名称
学生信息管理
功能描述:
管理员登录之后,添加学生信息,添加到系统的学生才能够进行使用此系统进行选课、查询成绩等功能
输入项
学号、姓名、性别、年龄、院系、专业
输出项
操作提示:
图1
3.2.3项目结构图
图2
4.逻辑结构设计
4.1数据分析
管理员(用户名,密码)
老师(工号,姓名,密码,性别,年龄,课程方向,备注信息)
学生(学号,姓名,密码,性别,年龄,院系,专业,备注信息)
课程(课程号,课程名,学分,课时)
成绩(课程号,学号,分数)
老师-课程(工号,课程号)
学生-课程(学号,课程号)
4.2数据库E-R图
图3
5.物理结构设计
5.1数据库表设计
表1:
tb_admin表
字段
类型
约束
说明
id
int
主键,自动增长
管理员信息主键
username
varchar
NOTNULL
管理员用户名
password
varchar
NOTNULL
管理员密码
表2:
tb_teacher表
字段
类型
约束
说明
id
char(7)
主键
老师工号,登录用户名
name
varchar(30)
NOTNULL
老师真实姓名
password
varchar(16)
NOTNULL
老师登录密码
sex
char
(2)
NOTNULL
性别
age
int
年龄
course_direction
varchar(30)
NOTNULL
课程方向
desc
varchar(200)
描述信息
表3:
tb_student表
字段
类型
约束
说明
snum
char(11)
主键
学号,登录用户名
name
varchar(30)
NOTNULL
真实姓名
password
varchar(16)
NOTNULL
登录密码
sex
char
(2)
NOTNULL
性别
age
int
年龄
department
varchar(30)
NOTNULL
学生所属的院系
major
varchar(30)
NOTNULL
学生所属的专业
desc
varchar(200)
描述信息
表4:
tb_course表
字段
类型
约束
说明
course_num
char(10)
主键
课程编号
course_name
varchar(50)
NOTNULL
课程名
course_xf
number
NOTNULL
学分
course_ks
int
NOTNULL
课时
表5:
tb_grade表
字段
类型
约束
说明
grade_course_num
char(10)
联合主键,
外键关联tb_course(course_num)
grade_student_num
char(11)
联合主键,
外键关联tb_student(snum)
grade_score
int
notnull
表6:
tb_teacher_course表
字段
类型
约束
说明
teacher_id
char(7)
老师工号
course_num
char(10)
课程号
表7:
tb_student_course表
字段
类型
约束
说明
student_num
char(11)
学生学号
course_num
char(10)
课程号
5.2数据库表
图4
图5
图6
图7
图8
6.实现及测试
6.1功能实现截图
第一步:
登陆学生管理系统
图9
第二步:
输入密码和学号
图10
第三步:
添加学生信息
图11
第四步:
填写学生信息
图12
第五步:
添加学生信息成功
图13
第六步;添加老师信息
图14
第七步:
分配教师信息成功
图15
分配教师课程可以选择课程编号和工号:
图16
添加学生信息列表
图17
删除其中一条信息,系统会提示是否删除
图13
7.结论:
特点和不足
7.1特点:
通过以下程序链接数据库
publicclassDBManager{
/*准备连接数据库的字符串*/
//数据库不同,那么数据库的DRIVER和URL也不相同
//数据库连接驱动(我们连接任何一种数据库都需要驱动jar包)
privatestaticfinalStringDRIVER="com.mysql.jdbc.Driver";
privatestaticfinalStringURL="jdbc:
mysql:
//localhost:
3306/db_sgms";
privatestaticfinalStringUSERNAME="root";
privatestaticfinalStringPASSWORD="123";
//①在静态块中通过反射机制加载驱动
static{
try{
Class.forName(DRIVER);
}catch(Exceptione){
}
}
//②通过驱动管理器获取数据库连接
publicstaticConnectiongetConn(){
Connectionconn=null;
try{
conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);
}catch(Exceptione){
e.printStackTrace();
}
returnconn;
}
7.2不足之处:
还有一部分功能未能完成,例如,学生登陆界面么有做,老师登陆界面没有完成,另外许多界面没有优化,没有达到好的效果,不能给人以美感。
8.心得体会
总的来说这次计算机网络课程设计让我收获良多,这次又让我们重新认识了数据库,以前我们也做过数据库的实验,不过我都是零散的东西,但这次我们系统的完成了学生成绩管理系统的操作,学到了很多以前没学到的东西,同时也明白了我们真正要学的东西还很多,不要因为考试通过了就放松学习。
这次的实训同样是由外面的老师带领我们来做,因此我们更深层次的了解整个过程的操作流程,认识到了各个代码的作用,如何调用数据库,如何完整的将数据存储到数据库中来,同时让我们认识了这么新的课程,给了我们以后更大的发展空间,另外我也感觉这次的课程设计老师很负责,给我们很多自由练习的机会。
另外,我们常常因为一个小错误,吃了很多苦,常常是一个单词的错误而走了很多弯路,程序不能正常运行,搞得很窝火,但凡事有苦也会有甜,看着自己的写的程序能正常运行,在自己手里一点一点的写出来,并能展示出结果,我心里有说不出来的高兴,确实我也学到了很多,以前没学好的,现在得到了巩固,而且我发现我们也需要细心和耐性,我想这也是这次实训的目的,我也能体会到老师的用心良苦,数据库对我们来说也是一门基础,这样做也是为了让我们更好掌握它,也为了我们在以后的学习中更好的发挥。
最后,虽然程序大体运行的没有问题,但也存在很多实际问题没解决,如果真正要把它运用于实际还很难,毕竟我们学的知识还不够完善,不能将设计做的尽善尽美。
9.参考文献
10.1周绪•SQLServer2000入门与提高(中文版)•北京:
清华大学出版社,2004年2月
10.2于松涛•SQLServer2000数据库管理与开发技术大全•北京:
人民邮电出版社,2005年5月
10.3StevenFeuerstein •OraclePL/SQL最佳实践•北京:
机械工业出版社,2009年
10.4黄河 •racle9iForWindowsNT_2000数据库系统培训教程•北京:
清华大学出版社,2005年
设计过程及答辩回答问题记载:
(至少三个问题)
1.问:
数据库不同,那么数据库的DRIVER和URL也相同吗?
答:
不会相同
2问:
数据库连接驱动程序是?
答:
privatestaticfinalStringDRIVER="com.mysql.jdbc.Driver";
privatestaticfinalStringURL="jdbc:
mysql:
//localhost:
3306/db_sgms";
privatestaticfinalStringUSERNAME="root";
privatestaticfinalStringPASSWORD="123";
3问:
如何实现教师课程分配功能
答:
当打开教师课程分配按钮时,分别从教师表和课程表中提取数据,显示在界面中的下拉式对话框中,然后用户只进行选择就可以了。
指导教师评语:
签名:
2013年12月27日