课程设计报告《数据库应用与开发》课程设计题目:学生学籍管理系统学生姓名:班级:专业:指导教师:院系:2010年11月15日目录绪论……………………………………………………………………………………………2数据库设计……………………………………………………………………………………21.需求分析……………………………………………………………………………..21.1数据需求…………………………………………………………………………..21.2功能需求…………………………………………………………………………..32.数据库设计…………………………………………………………………………..32.1概念结构设计……………………………………………………………………..42.2逻辑结构设计……………………………………………………………………..52.3物理结构设计……………………………………………………………………..63.系统功能设计………………………………………………………………………..84.系统功能实现………………………………………………………………………..94.1程序的运行环境…………………………………………………………………..94.2系统的开发环境…………………………………………………………………..94.3数据库的创建和链接……………………………………………………………..94.4运行界面及其对应的源代码…………………………………………………….105.实验总结…………………………………………………………………………….236.参考文献…………………………………………………………………………….23绪论学生学籍管理是教育教学单位不可缺少的部分,它的内容对教学管理和学校的决策者都非常重要。给学校教学管理提供了很大的方便性,提高了工作效率。但是一直以来人们用传统人工的方式管理文件文档,这种管理方式效率低,保密性差,出错不易更改,同时也耗费了大量的人力财力,时间一长,将产生大量的文件数据,这对于查找,维护,更新都带来了很大的困难。随着科学技术的不断发展,尤其是计算机软件水平的日益提高,使得以上问题得到了很好的解决。使用计算机可以方便的对大量数据进行增加,删除,更新等操作。它有着人工管理永远无法比拟的优点:检索迅速,查找方便,可靠性大,存储量大,保密性好,寿命长,成本低等。例如:通过校园网,我们可以方便的进行学生信息查询,学生成绩的添加,以及最新的教务通知等。当然,这些都离不开数据库技术和网络技术的支持。数据库是数据管理的最新技术,是计算机计算机技术的重要分支,也是计算机领域发展最快的学科之一。学生学籍管理系统就是数据库在网络上应用。综上,开发这样的一套软件十分必要。同时旧的人工管理机制必将被以计算机为基础的信息管理所取代,从而实现对数据的高效,长久,安全的管理。数据库设计一.需求分析1.数据需求:(1)数据字典主要涉及到以下几个表,分别为:学生基本信息表,课程表,专业信息表,课程设置表,学生选课表,学生与专业之间的属于表以及管理人员的密码表。以下是数据字典:学生基本信息表专业信息表Sno学生的学号Sname学生姓名Ssex性别Ssbirth学生的出生年月课程表课程设置表学生选课表学生与专业的属于表管理人员密码表(2)数据流图第一层学生名单学生信息成绩Pno专业编号Pname专业名称Pnum专业人数Pdept专业所在院系Cno课程号Cname课程名Cperiod学时Cno课程号Cname课程名Cperiod学时Sno学生的学号psenior学期cno课程编号grade成绩sno学生的学号pno专业的编号uname管理人员的编号upasw管理人员的密码学生学籍管理系统教师统计表成绩单第二层学生信息成绩班平均成绩升留级表各科平均成绩第三层学生信息合格单新生信息第四层班级管理人员学生1.录入存储处理2.查询处理3.统计处理4.升留级处理本次考试成绩学生记录历次考试成绩审计1.11.2是否新生1.3录入存储学生信息各科成绩学生信息学生成绩班级平均成绩3.1专业学生院系专业号出生年月性别姓名学号密码专业名人数属于专业名专业号人数院系课程课程号课程名学时学生信息统计成绩各科第五层学生信息升留级名单学生记录2.功能需求:(1)实现学生基本情况的录入,修改,删除等基本操作。(2)对学生基本信息提供灵活的查询方式。(3)完成一个班级的学期选课功能。(4)实现学生成绩的录入,修改,删除等基本操作。(5)能方便的对学生的个人学期成绩进行查询。(6)具有成绩统计,排名等功能。(7)具有留级,休学等特殊情况的处理功能。(8)能输出常用的各种报表。(9)具有数据备份和数据恢复功能。二.数据库设计1.概念结构设计局部ER图整体的ER图学生学号姓名性别出生年月专业统计选择3.1各科平均成绩3.3是否升留级4.1成绩标准更新记录4.22.逻辑结构设计(1)ER图转换为关系模型由ER图可见:图中有三个实体:学生,课程,和专业;三个关系:学生选课关系,学生与专业之间的属于关系,专业的课程设置。由于每个实体必须构造表,所以可以先得到三个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:学生基本信息表:S(sno,sname,ssex,sbirth,spasw)课程基本信息表:C(cno,cname,cperiord)专业基本信息表:P(pno,pname,pnum,psdept)对应的属性分别为:学号,姓名,性别,出生日期,登陆密码课程编号,课程名,学期专业编号,专业名,专业人数,所在院系对于多对多的关系来说,与该联系相连的实体的码以及本身的属性均转换为关系的属性,各实体之间的码组成关系的码或者关系的码的一部分。以上ER图的三个联系为多对多,所以转换为关系模式为:课程设置表:pc(pno,psenior,cno)与设置相连的实体有专业和课程,根据多对多的转换原则:专业的码pno,课程的码cno以及设置本身的属性共同构成该关系模式的码,所以该关系模式的码为全码。学生选课表:SC(sno,psenior,cno,grade)与选课相连的实体有学生和课程,同上由学生的码sno,课程的码cno以及选课本身的码psenior构成该关系模式的码,即(sno,cno,psenior)。此外,选课表还有一个非主属性grade。学生与专业的属于表:SP(sno,pno)与属于关系相联的实体是学生和专业。同上由学生的码sno,专业的码pno构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。(2)关系模式的优化:学生表s(sno,sname,ssex,sbirth,spasw)该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为:sno-sname,sno-ssex,sno-ssex,sno-sbirth,sno-spasw,其间不存在传递依赖,故学生表可达到3NCF.课程表C(cno,cname,cperiod)该关系模式的码为cno,cname,设主码为cno,因为该关系模式中的码都是单一的,即不存在有两个或者两个以上的属性组成的码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为:cno-cname,cno-cperiod,cname-cno,cname-cperiod.因为cno-cname,cname-cperiodcno-cperiod,所以该关系模式中存在传递依赖,不能达到3NCF。故优化该表为:C1(cno,period),C2(cname,cperiod).从而两表都达到了3NCF。专业表P(pno,pname,pnum,pdept)该关系模式的码为pno,pname,其中设定pno为主码。同课程表,该表不存在有两个或者两个以上属性组成的码,即不存在非主属性对码的部分函数依赖,故可达到2NCF。另外,此关系模式的函数依赖为:pno-pname,pno-pnum,pno-pdept,pname-pno,pname-pnum,pname-pdept;由于存在传递依赖:pno-pname,pname-pnum,pno-pnum.,所以未能达到3NCF。优化分解为:P1(pno,pnum,pdept),P2(pname,pnum,pdept)明显,两表都达到了3NCF.课程设置表PC(pno,psenior,cno),该关系模式的码为:(pno,psenior,cno)为全码,所以可直接达到3NCF学生选课表SC(sno,psenior,cno,grade)该关系模式的码为:(sno,psenior,cno),因为不存在非主性grade对码的部分函数依赖,所以可达到2NCF,由于不存在函数依赖(表中的函数依赖只有(sno,psenior,cno)-grade)故也达到了3NCF属于表SP(sno,pno)该关系模式的码(sno,pno)也是全码,所以也达到了3NCF用户表U(uname,upasw)该表的码为uname,明显upasw对码uname是完全函数依赖的,从而达到2NCF。另外因为只有两个属性,所以不存在传递函数依赖,该表达到了3NCF3.物理结构设计(1)基本表学生表s列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)sname否否否无是Char(20)ssex否否否无是Char(2)只可取男或女sbirth否否否无是Char(20)spasw否否否无是Char(10)课程表c1列名主码候选码外码被参照表允许空数据类型约束条件cno是否否无否Char(10)cperiod否否否无是smallint课程表c2列名主码候选码外码被参照表允许空数据类型约束条件cname是否否无否Char(20)cperiod否否否无是smallint专业表p1列名主码候选码外码被参照表允许空数据类型约束条件pno是否否无否Char(10)pnum否否否无是smallintPnum=0psdept否否否无是Char(20)专业表p2列名主码候选码外码被参照表允许空数据类型约束条件pname是否否无否Char(20)pnum否否否无是smallintPnum=0psdept否否否无是Char(20)课程设置表pc列名主码候选码外码被参照表允许空数据类型约束条件pno是否否无否Char(10)psenior是否否无否Char(10)cno是否否无否Char(10)学生选课表sc列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)psenior是否否无否Char(10)cno是否否无否Char(10)grade否否否无是smallintgrade=0学生与专业属于表sp列名主码候选码外码被参照表允许空数据类型约束条件sno是否否无否Char(10)pno是否否无否Char(10)管理人员密码表u列名主码候选码外码被参照表允许空数据类型约束条件uname是否否无否Char(20)upasw否否否无否Char(10)(2)视图,索引a.索引:本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。在查询时即引用主索引即可。表s的主索引列为:sno表c1的主索引列为:cno表c2的主索引列为:cname表p1的主索引列为:pno表p2的主索引列为:pname表sc的主索引列为:(pno,psenior,cno)表sp的主索引列为:(sno,pno)表u的主索引列为:unameb.视图:虽然关系数据模型分析的结果表示该数据库需要定义不同的用户视图,但考虑到数据库与前台开发程序的连接比较复杂,所以该数据库中没有单独定义用户视图,不同的用户视图被有选择性的的select语句的结果集取.三.系统功能设计四.系统实现1.程序的运行环境学生学籍管理系统信息维护添加用户学生管理人员密码管理成绩维护基本信息信息查询成绩查询系统管理查询成绩统计个人成绩专业成绩欢迎界面身份