数据库课设报告书-毕业设计管理子系统数据库设计.doc
《数据库课设报告书-毕业设计管理子系统数据库设计.doc》由会员分享,可在线阅读,更多相关《数据库课设报告书-毕业设计管理子系统数据库设计.doc(13页珍藏版)》请在冰豆网上搜索。
武汉理工大学华夏学院
课程设计
课程名称数据库原理课程设计
题目毕业设计管理子系统数据库设计
学号10210411130
班级计算机1111班
姓名
成绩__________________
指导教师刘春燕
2014年6月3日至2014年6月6日
课程设计任务书
设计题目:
毕业设计管理子系统数据库设计
设计目的:
1.学会分析研究数据对象的特性;
2.学会数据的组织方法;
3.选择合适的数据的存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理;
4.提高学生的运用能力、提高数据库设计素质;
设计任务:
(在规定的时间内完成下列任务)
1.毕业设计管理:
为指导老师分配毕业生,设置有效期限(如各阶段设计的提交期限),公布毕业设计公告、要求等。
2.毕业生管理:
毕业生信息(系别、班级、学号、专业等)的维护和查询。
毕业生可根据指导老师研究方向,选择毕业设计题目,在有效期限内提交设计内容(如开题报告、中期检查报告、毕业设计终稿等),参看指导老师评语。
3.指导教师管理:
指导教师信息的维护(研究方向、联系方式等),指导教师可查看所属毕业生的毕业设计进度,并对毕业生提交的每阶段的设计内容进行批阅,给出毕业设计成绩。
4.查询统计:
按系别、班级指导老师等统计信息(如选题情况、设计成绩等)。
具体要完成的任务是:
A.编制完成上述问题的数据库设计并能得出正确的运行结果。
B.采取统一格式:
有问题描述、基本要求、测试数据及实现方法等组成写出规范的课程设计说明书;
时间安排
6月3日布置课程设计任务;
6月4日分配题目后,查阅资料、准备程序;
6月5日上机调试程序、书写课程设计报告;
6月6日下午提交课程设计报告及相关文档
具体要求
课程设计报告按统一通用格式书写,具体格式要求请在网络上查阅;
每位学生应独立完成各自的任务;
指导教师签名:
14年5月28日
教研室主任(或责任教师)签名:
14年5月28日
1.背景
随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以台式计算机为核心,以数据库管理系统为开发环境的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用。
而这次课程设计的内容就是设计一个毕业设计管理子系统,模拟毕业设计的信息管理工作。
数据库原理已成为软件工程和计算机科学与技术专业的一门重要的必修专业课程,也是现代计算机软件技术人员所必须掌握的基本理论和技术。
本课程着重介绍数据库系统的基本原理和设计方法,特别使目前应用最为广泛的关系数据库系统的原理和相关技术,使学员在掌握数据库基本原理的基础上,学会关系数据库应用系统的设计技术,培养应用数据库技术解决计算机应用中实际问题的能力,并为今后从事数据库理论教学和应用系统的开发工作打下良好的基础。
2.系统分析
2.1设计环境介绍
SQLServe2005
2.2主要功能
1.毕业设计管理:
为指导老师分配毕业生,设置有效期限(如各阶段设计的提交期限),公布毕业设计公告、要求等。
2.毕业生管理:
毕业生信息(系别、班级、学号、专业等)的维护和查询。
毕业生可根据指导老师研究方向,选择毕业设计题目,在有效期限内提交设计内容(如开题报告、中期检查报告、毕业设计终稿等),参看指导老师评语。
3.指导教师管理:
指导教师信息的维护(研究方向、联系方式等),指导教师可查看所属毕业生的毕业设计进度,并对毕业生提交的每阶段的设计内容进行批阅,给出毕业设计成绩。
4.查询统计:
按系别、班级指导老师等统计信息(如选题情况、设计成绩等)。
3.逻辑结构分析
3.1设计局部E-R图模式
教师(教师编号,研究方向,姓名,电话号码,系别)
毕业生(学号,姓名,性别,教师编号,系别)
题目(教师编号,题目名称,分数)
3.2评价范式
由于此数据库不存在传递依赖和部分依赖,所以该数据库系统属于BCNF。
4.物理结构分析
毕业设计管理子系统的数据库物理结构设计主要是建立一个最适合的应用要求的物理结构过程。
为了加速表的查询,建立索引。
通过索引来提高数据查询性能。
因为在MSSQLSERVER2005中为所设立的主码自动建立索引,所以这里不用建立索引。
5.概念结构分析
5.1总体E-R图
毕业生
题目
教师
选择
出设
指导
1
1
n
1
n
1
系别
性别
教师编号
学号
教师编号
电话号码
系别
研究方向
教师编号
题目名称
姓名
姓名
分数
图4-1总体E-R图
6.数据库实施及应用程序编制
用MSSQLSERVER2005建立数据库结构,加载(测试/虚拟)数据,能体现对数据库的保
(安全性和完整性控制等)。
实现各种查询、链接应用程序,并能对数据库做简单的维护操作。
6.1建立数据库
CREATEDATABASE毕业设计管理子系统
6.2创建教师表
createtableteacher
(cpochar(20)primarykey,
cnamechar(20),
telchar(20),
creditchar(20),
majorchar(20),
depchar(20)
)
教师表初始化如下:
图5-1教师初始化图
教师表结果如下:
图5-2教师结果图
6.3创建毕业表
createtablestudent
(snochar(20)primarykey,
snamechar(20),
sexchar(20),
cpochar(20),
depchar(20),
foreignkey(cpo)referencesteacher(cpo)
)
毕业生表初始化如下:
图5-3毕业生初始化图
毕业生表结果如下:
图5-4毕业生表图
6.4创建题目表
createtabletitle
(cpochar(20),
reseachchar(100),
snochar(20),
gradeint,
primarykey(cpo,sno),
foreignkey(sno)referencesstudent(sno)
)
题目表初始化如下:
图5-5题目表初始化图
题目表结果如下:
图5-6题目表图
7.运行结果显示
7.1查询每个老师带几个毕业生
代码如下:
selectcpo,count(*)fromtitle
groupbycpo
查询结果如下:
图6-1毕业生个数图
7.2查询每个系有几个设计题目
代码如下:
selectdep,count(*)fromteacher,title
whereteacher.cpo=title.cpo
groupbydep
显示结果如下:
图6-2设计题目个数图
8.心得体会
通过本次课程设计,我初步完成了毕业设计管理子管理系统,但并没有达到我一开始所预想的结果。
总结这次课程设计,我对数据库这门课有了更深入的了解,本来模糊不清的知识,如E-R图的概念和画法,E-R图的作用,在老师和同学的帮助下,都基本学会了。
我清楚的认识的,在学习数据库时,光有理论知识是不够的,表格、索引等的创建,都要建立在对可设题目的深刻认识的基础上。
通过对课程设计要求的分析,我也初步理解一个软件工程的开发流程及发展思路。
最重要的是,课程设计培养了我分析问题,总结归纳问题的能力。
这次课程设计不是一帆风顺的,我体会到了失败的沮丧以及成功的喜悦,我通过自己所犯的错误,重新对脑海里所掌握的知识进行审理,进行了纠正,这些都是书本上学不来的。
刚开始做的时候,一点头绪都没有,我觉得这样下去是不行的,我大胆地向老师请教,老师详细地跟我讲了设计的思路。
她首先教我怎么样画E-R图,讲解了教师,毕业生,题目这三个实体之间的联系,她还教我怎样建表。
在刘老师的指导下,我有了思绪,开始设计起来。
花了一下午的时间,三张表终于建好了,当然这也离不开同学的帮助,在建表的过程中我遇到了很多的问题,例如这三张表中,哪些属性要设置主键和外键的,怎样查询教师和毕业生以及题目的个数等等。
这次的课程设计,由于时间以及知识上的不足,我并没有完全完成任务书上的要求,整个系统的增、查、改、统计都需要进入SQLServer2005,通过修改语句进行,而且有一些功能也过于简单,不能完全满足题目的要求,我会继续努力学习知识,完善自我,进一步努力去改进系统,使其更符合实际的使用要求。
总之,这次的课设我的收获很大的,在这次课程设计中本课程设计由我一个人来完成,深深的感受到了一个人力量的单薄,了解到了在完成一个完整的项目上团队的重要性,在实际的程序开发中,团队的力量往往比个人力量之和要大上很多,并且在今后的开发中,我们都将是以团队的形式展开工作的,所以我们应该在现在学习的时候养成一种良好的团队精神,以为将来的开发打下一顶的基础.
9.参考资料
[1]萨师煊,王珊.数据库系统概论(第四版).北京:
高等教育出版社,2006年5月.
[2]<>案例教程廖望何俊谢春旺等编著冶金工业出版社
10.附录
源程序代码:
CREATEDATABASE毕业设计管理子系统
ON
primary
(NAME='毕业设计管理子系统',
FILENAME='d:
\sql\librarysystem.mdf',
SIZE=100mb,
MAXSIZE=200mb,
FILEGROWTH=10mb)
LOGON
(NAME='论文',
FILENAME='d:
\sql\librarysystem.ldf',
SIZE=50MB,
MAXSIZE=100MB,
FILEGROWTH=5MB)
GO
createtablestudent
(snochar(20)primarykey,
snamechar(20),
sexchar(20),
cpochar(20),
depchar(20),
foreignkey(cpo)referencesteacher(cpo)
)
droptablestudent
createtableteacher
(cpochar(20)primarykey,
cnamechar(20),
telchar(20),
creditchar(20),
majorchar(20),
depchar(20)
)
droptablet