《数据库课程设计_学生学籍管理系统设计及实现.doc》由会员分享,可在线阅读,更多相关《数据库课程设计_学生学籍管理系统设计及实现.doc(16页珍藏版)》请在三一办公上搜索。
1、数据库原理及应用课程设计学生学籍管理系统设计与实现 学生姓名学号班级指导教师2010年12月28日课程设计任务书2010 2011 学年第一学期专业:信息与计算机科学 学号: 姓名: 课程设计名称: 数据库原理及应用课程设计 设计题目: 学生学籍管理系统设计与实现 完成期限:自 2010年 12 月 20 日至 2010 年 12 月 31 日共 2 周设计依据、要求及主要内容: 通过对学校学籍管理业务进行分析、调查,设计学生学籍管理系统。主要内容及要求如下:(1)建立数据库 根据系统功能设计的要求以及功能模块的划分,设计相关数据库。 (2)学生信息管理模块 实现学生基本情况的录入、修改、删除
2、等基本操作;对学生基本信息能提供灵活的查询方式。(3)学生成绩管理模块 实现学生成绩的录入、修改、删除等基本操作;能方便的对学生的各个学期成绩进行查询。(4)完成一个班级的学期选课功能。(5)统计功能;系统具有成绩统计、排名等功能。关键词:SQL 2000 server;VC程序设计;学生学籍管理系统; 课题描述 随着社会的发展,基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性,提高了学校的管理能力,为此,用计算机来管理学校的信
3、息,是非常必要的。该课程设计要求设计一个学籍管理的数据库系统,数据库中包含学生的基本信息,学校院系信息,班级信息以及课程设置的信息。同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面: 第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高学校的工作效率;第四,本系统可以使敏感文档更加安全,等等。我们通过该课程设计,应该达到的目的是把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学
4、以致用,与现实生活中的应用充分的结合起来。2 需求分析需求分析就是分析用户的要求。在需求分析阶段,系统分析员将分析结果用数据流程图和数据字典表示。需求分析的结果是否能够准确地反用户的时间要求,将直接影响到后面各个阶段的设计,并影响到系统的设计是否合理和使用。本次设计的基于SQL Server数据库技术实现学生学籍的管理,适合一般用户的需要。2.1信息需求分析学生:学号,姓名,所在系,班号,性别,民族,出生日期,家庭住址等课程:课程号,课程名,课程类型,课程老师等班级信息:班号,年级,班主任等 成绩信息:学生姓名,学生学号,课程名,班号,成绩,考试编号等。2.2功能需求分析系统要实现的主要功能有
5、:(1)建立数据库根据系统功能设计的要求以及功能模块的划分,设计相关数据库。 (2)学生信息管理模块实现学生基本情况的录入、修改、删除等基本操作;对学生基本信息能提供灵活的查询方式。(3)学生成绩管理模块实现学生成绩的录入、修改、删除等基本操作;能方便的对学生的各个学期成绩进行查询。(4)完成一个班级的学期选课功能。(5)统计功能;系统具有成绩统计、排名等功能。2.3 数据流图 数据流图:简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 使用逐步求精的方法,从顶层流程图逐一分解,到最终
6、流程图。经过详细的调查,弄清了业务流程,在此基础上,构造出系统的逻辑模型,并通过数据流图表示。如下图2.4 数据字典 数据字典(Data dictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。 数据字典有一下几个要点:数据项:数据项是不可再分的数据单位,它直接反映事物的某一特征。数据结构:反映了数据之间的组合关系。数据流:数据流是数据结构在系统内传输的路径。数据文件:数据文件是数据项停留或保存的地方,也是数据流的来源和去向之一。 本系统所需有的数据字典卡片列表如下:名字:学生学籍信息别名:描述:学籍管理中存储的所有学生信息(包括所有学生查询的所需信息)定义:学生信息学生学
7、号学生姓名学生性别所在系学生班号出生日期民族家庭住址位置:存储输出供查询名字:课程信息别名:描述:学校开设的课程的基本信息定义:课程信息课程名称课程编号课程类型课程老师位置:存储输出供选择名字:成绩信息别名:描述:学生课程的考试成绩定义:成绩信息考试编号选择班号选择学号学生姓名课程号得分位置:存储输出供查询名字:查询信息描述:用户所提出的查询请求定义:查询信息学生信息查询信息|课程得分查询信息学生信息查询信息学生姓名|学生学号|学生班号课程得分查询信息学生姓名|学生学号|学生班号位置:学生学籍管理系统课程得分管理系统名字:查询结果描述:系统完成用户查询请求后所得结果定义:查询结果学生信息查询信
8、息|课程得分查询信息|选课信息查询信息学生信息理查询结果学生学号学生姓名学生性别所在系学生班号出生日期民族家庭住址课程得分理查询结果考试编号选择班号选择学号学生姓名课程名称得分位置:学生学籍管理系统课程得分管理系统 数据项如下:属性名类型长度位置字段值约束含义说明学号字符型10学生表Not Null唯一标识每个学生姓名字符型10学生表用来表示每个学生的姓名性别字符型2学生表来表明学生的性别男,女出生日期字符型12学生表来说明学生的出生日期班号字符型10学生表确定每个学生所在班的班号民族字符型10学生表表明学生所属民族所在系字符型10学生表说明学生所属的系别地址字符型6学生表确定学生地址属性名类
9、型长度位置字段值约束含义说明课程编号字符型10课程表Not Null唯一标识一门课程课程名称字符型20课程表标识课程的名称课程类型字符型4课程表说明课程的类型必修,选修课程老师字符型10课程表标识每门课程的任课老师属性名类型长度位置字段值约束对应中文属性名班号字符型10班级表Not Null说明学生说在班级的班级号年级字符型4班级表Not Null它可以和班号一起唯一标识一个班班主任字符型20班级表Not Null用来说明每个班级的负责人对应中文属性名类型长度字段值约束位置含义说明考试编码字符型10Not Null成绩表唯一标识考试的编码学号字符型10Not Null成绩表标识考试的学生的学号
10、学生姓名字符型10成绩表标识学生姓名班号字符型10Not Null成绩表标识学生所在班班号课程号字符型10Not Null成绩表标识学生选课课程号成绩字符型10成绩表标识学生考试成绩属性名类型长度字段值约束位置含义说明用户名称字符型10Not Null用户表标识登录用户的名称用户密码字符型10Not Null用户表标识登录用户的密码 3 系统设计 系统设计的任务是确定系统的数据模式、功能结构和系统结构,确定系统支持环境、实现方法和技术。系统设计的基本内容为:(1)选择数据库管理系统,建立数据模式。(2)选择系统支持环境,包括支持系统运行的硬件和软件要求,确定系统实现功能和方法。(3)选择系统的
11、基本架构和技术。3.1数据库概念设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为逻辑结构设计打下基础。 这个阶段用到的工具是ER图(实体-联系图)。 本系统中有四个实体集:学生实体集课程实体集成绩信息实体集班级实体集E-R图如下民族学号班号所在系性别学 生姓名出生日期地址 图3.1学生实体E-R图课程编号课程老师课程名称课程课程类型图3.2课程实体E-R图班号学号成绩成 绩姓名课程号考试编号图3.3成绩实体E-R图班号年级班级班主任图3.4班级实体E-R图民族班号姓名出生日期性别地址学号学 生班号m拥有姓名所在系m选择学号 m 课程名称n选择成绩成
12、 绩n课程老师课程课程号课程类型n选择课程编号n考试编号1班级班主任班号年级图3.5系统总体E-R图3.2逻辑设计 逻辑结构设计的主要目标是将概念结构转换为一个特定的DBMS可处理的数据模型和数据库模式。该模型必须满足数据库的存取、一致性及运行等各方面的用户需求。 该设计以概念结构设计中的E-R图为主要依据,设计出相关的整体逻辑结构。根据总E-R图有五个实体但仓库实体在本系统中作用不大而且仅涉及到一个仓库,所以仓库不再单独设计一张表。再加上一个多对多关系(本系统不考虑供应关系)总共五个关系模式: 学生信息(学号,性别,姓名,班号,入校日期,出生日期,联系电话,家庭住址,备注)班级信息(班号,年
13、级,班主任,教室)课程信息(课程编号,课程名称,课程类型,课程描述)成绩信息(考试编号,姓名,课程,成绩)3.3 物理设计 从一个满足用户需求的已确定的逻辑模型出发,在限定的软、硬件环境下,利用DBMS提供的各种手段设计数据库的内模式,即设计数据的存储结构和存取方法。数据库物理结构设计是对于给定的逻辑数据模型,选择一个适合的物理结构,主要涉及存取方法与存储结构,它依赖于计算机系统。1.关系模式 关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库系统大都是关系数据库系统。通过对关系模式的优化,得到六个基本表。表3.1 学生信息表字段名字段类型长度主键或外键字段值约束对应中文属性名st
14、udent_snoChar10Primary KeyNot Null学号student_snameChar10姓名student_ssexChar2性别borndateChar12出生日期ClassnoChar10班号NationChar10民族SdeptChar10所在系addressChar6地址表3.2 课程信息表字段名字段类型长度主键或外键字段值约束对应中文属性名course_cnoChar10Primary KeyNot Null课程编号course_cnameChar20课程名称course_ctypeChar4课程类型course_teacherChar10课程老师表3.3 班级
15、信息字段名字段类型长度主键或外键字段值约束对应中文属性名classnoChar10Not Null班号gradechar4Not Null年级directorChar20Not Null班主任表3.4 成绩信息表字段名字段类型长度主键或外键字段值约束对应中文属性名examnoChar10Primary KeyNot Null考试编码snochar10Foreign Key Not Null学号snameChar10学生姓名classnoChar10Foreign KeyNot Null班号course_cnoChar10Foreign KeyNot Null课程号resultchar10成绩表
16、3.5 用户登录表 字段名字段类型长度主键或外键字段值约束对应中文属性名user_unoChar10Primary KeyNot Null用户名称user_PWDChar10Not Null用户密码 2.简单物理设计 在SQL Server 2000 中,文件夹是按数据库对象的类型建立的,文件夹名是该数据库对象名。当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的student数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。要建立各个表,选择student数据库中的表,单击鼠标右键,在弹出的菜单中选择“新建表”。下面的表均使用上述方法制作。具体在
17、Sql server 2000环境下,用查询分析器设计用户表,程序代码如下所示:1, 建立学生信息表:create table student/*学生表*/( sno char (10) primary key, sname char (10), sdept char (10), ssex char (2) check(ssex in (男,女), borndate char (12), address char (6), classno char (10), nation char (10);在数据库中,右击student_Info表,返回所有值,然后输入原始数据。snosnamesdept
18、ssexborndateaddressclassnonation01 张三 信息 男1988-1-1 北京 11 汉 02 李四 物理 男1989-1-1 新疆 11 回 2, 建立课程信息表:create table course( cno char (10) primary key, cname char (20), teacher char (10), ctype char(4) check (ctype in (必修,选修) );在数据库中,右击course_Info表,返回所有值,然后输入原始数据。cno cname teacher ctype1 高数 谢老师 必修 2 科技英语 陈
19、老师 选修 3 概率 邢老师 必修 4 数学分析 谢老师 必修 3 建立班级信息表:create table class( classno char (10) primary key, director char (20), grade char (4);在数据库中,右击class_Info表,返回所有值,然后输入原始数据。classno director grade11 王老师 08 12 李老师 09 4 建立成绩信息表:create table exam ( examno char (10), sno char (10), cno char (10), sname char (10),
20、classno char (10), result char (4), primary key (examno,sno,cno,classno), foreign key (sno) references student (sno), foreign key (cno) references course (cno), foreign key (classno) references class (classno) );在数据库中,右击exam_Info表,返回所有值,然后输入原始数据。examno sno cno sname classno resulta 01 1 张三 11 87 b 0
21、2 2 李四 11 88 5 建立用户表:create table users ( upwd char (10) primary key, uno char (10);在数据库中,右击users_Info表,返回所有值,然后输入原始数据。upwd uno0111 01 0211 02 0311 03 4系统实现 通过上面系统需求分析,数据库的逻辑结构与物理结构的设计,本章节便可以实现系统。4.1系统功能结构具体功能模块图如下:图4.1系统功能图总 结 体 会 课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节。是对学生实际工作能力的具体训练和考察过程.随
22、着科学技术发展的日新日异,数据库系统越来越热门,它应用于各行各业. 回顾起此次数据库课程设计,至今我仍感慨颇多。从选题到设计,从理论到实践,在短短的几天里来完成确实是一件很不容易的事情,尤其是我没怎么学过什么编辑语言,只有看着C+书一步一步来,可以说得是苦远远多于甜,为了能够按时完成我们的目标我也曾夜战通宵,最近的几天我休息的时间很少了,甚至三天就有两天彻夜未眠,有个很小的错误都要看好长时间才能看出来,一次一次的尝试一次一次的失败,心里想的就好似再来。但是,我依然没有感到很疲倦。因为看到自己设计的系统一步一步的能够比较好的的完成预定的目标,完成了各种功能。无论是界面还是其他的方面我们都尽了最大
23、的努力,为了能很好的调试系统,我一直坐在那里好几个小时,最后看到了自己设计的系统能很好的运行,确实是一件很高兴的事情,什么疲倦都抛到脑后了。 同时我也深深感受到了软件设计者的辛苦。但是可以学到很多很多的新东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,书本上和课堂上的东西远远不能满足我们需要,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,毕竟我们是第一次课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固等等。经过这次的课程设计我会在以后的时间里努力的学习一些课外的知识不能仅仅局限在课堂上。 我还懂得了,软件的设计部仅仅是写一条代码,它有需求的分析,数据的设计,用户界面的设计等等。系统的设计依赖于用户的需求,也就是说你开发的系统要有实用的价值。还有软件是有程序和文档组成的,我们在开发软件的同时要写有一份具体的使用说明。我们做任何的事情都要有一定的规范。我们写程序时这样,写设计说明也是这样,今后做任何的事情都要有这样的心态,要有责任感和做好肯吃苦的准备。