《学籍管理系统设计-数据库课程毕业设计报告.doc》由会员分享,可在线阅读,更多相关《学籍管理系统设计-数据库课程毕业设计报告.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、重庆科技学院课程设计报告 院(系):_ 电气与信息工程学院 _ 专业班级: XXX 设计地点(单位)_第一实验楼I515_ _ _ _ 设计题目:_学籍管理系统设计_ 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _重庆科技学院数据库原理课程设计报告摘要 随着信息技术的飞速发展, 信息化对学生个人提出了驾驭和掌握最新信息技术的要求;信息化也为提高教学质量,提高管理水平,工作效率创造了有效途径。例如这次课程设计主要设计的是对学籍信息的管理以及操作,方便对于学生信息的管理。学籍管理系统主要采用了SQL 2005作为数据库,使用ODBC作为数据源,在数据库内部实现部分
2、功能时运用的是触发器以及存储过程;而且还可用视图查看部分信息。关键词:数据库 触发器 存储过程 视图21重庆科技学院课程设计任务书设计题目:学籍管理系统设计学生姓名XXX课程名称数据库原理课程设计专业班级计科2010-03地 点I515、I524和计算机自主学习中心起止时间2012.6.25-2012.7.6设计内容及要求内容: 学生根据本课程设计指导书中的题目,进行设计。(1)学生基本信息系统 能够完成新、老生信息的输人、修改、插人、删除等工作。 可以按照特定的信息进行查找,并按照特定的要求进行排序。 可以对老生的信息进行备份,以便日后查询。 可以对学生的信息进行打印输出。 提供详细的帮助文
3、件和系统维护功能。(2)学生成绩管理系统 此部分的功能如下: 学生成绩的输入、修改、删除等基本操作。 成绩的综合统计功能,包括学生成绩按照不同条件进行排名。管理人员可以选择不同的排序条件,并可以将排序结果进行打印输出。 计算各班的总分和平均分,并按照平均分将各班成绩进行排序。 统计不及格考生的信息,根据条件确定是重修还是补考。 学生奖励统计,自动生成每班获得奖学金的同学的信息,并可以将奖学金分成不同的等级,以及所得奖学金的数目。 本系统可以在单机上运行,也可以应用在网络上供在线查询成绩和其他一些学生的信息(此功能选做人提供给学生进行查询的系统和提供给教务处使用的系统,在不同用户使用时,应该会有
4、不同的使用权限。 提供详细的帮助文件。要求: 按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。设计参数至少5个表结构;3个存储过程;2个触发器;3个视图。进度要求19.1 讲课 阅读分析任务书 制订设计计划19.2-3 需求分析 概念结构设计19.4-5 概念结构设计 准备文挡20.1-3 逻辑结构设计 物理结构设计20.4-5 写文挡答辩 交设计报告书参考资料1雷亮等数据库原理课程设计指导书2王珊、萨师煊数据库系统概述(第四版) 北京:高等教育出版社2006。3C.J.Date著孟小峰、王珊等译数
5、据库系统导论(第8版) 北京:机械工业出版社.2007。4陈根才等. 数据库课程设计浙江浙江大学出版社2007其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:雷亮/游明英/张亚军/裴仰军 2012年 06 月 15 日目录1 需求分析11.1 系统目标设计11.2 系统功能分析11.3 功能模块分析21.4 系统全局数据流图21.5 数据字典32 概念结构设计72.1 构成系统的实体型72.2 工资管理系统E-R图73 逻辑结构设计
6、83.1逻辑结构简介83.2 关系模型84物理模型设计105 物理结构设计与功能实现115.1定义数据库115.2 创建表115.3 创建存储过程145.4 创建触发器155.5 创建视图176 总结197 致谢208 参考文献211 需求分析1.1 系统目标设计(1)使得学生的学籍管理工作更加清晰、条理化、自动化。(2)很容易地完成新生信息的输入、老生信息的备份、毕业学生的信息可以很容易地保存。(3)当学生需要查询成绩时,可以很简单地将其需要的信息从数据库中查找出来并可以打印查询结果。(4)随着当今网络技术的发展,提供网络在线查询功能,可以为毕业生提供更多的就业机会。1.2 系统功能分析(1
7、)学生基本信息系统 能够完成新、老生信息的输人、修改、插人、删除等工作。 可以按照特定的信息进行查找,并按照特定的要求进行排序。 可以对老生的信息进行备份,以便日后查询。 可以对学生的信息进行打印输出。 提供详细的帮助文件和系统维护功能。(2)学生成绩管理系统 此部分的功能如下: 学生成绩的输入、修改、删除等基本操作。 成绩的综合统计功能,包括学生成绩按照不同条件进行排名。管理人员可以选择不同的排序条件,并可以将排序结果进行打印输出。 计算各班的总分和平均分,并按照平均分将各班成绩进行排序。 统计不及格考生的信息,根据条件确定是重修还是补考。 学生奖励统计,自动生成每班获得奖学金的同学的信息,
8、并可以将奖学金分成不同的等级,以及所得奖学金的数目。1.3 功能模块分析 根据系统功能的基本要求,系统的功能模块设计图如下图所示:图1.1 功能模块图1.4 系统全局数据流图 系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。图1.2 数据流图1.5 数据字典表1.1学生表基本信息表(student)字段名数据类型约束说明Snoint主键学号Snamevarchar(10)不为空姓名Sbirthdatetime无出生年月Sidvarchar(20)无身份证号码Spoliticvarchar(10)无政治面貌Scome
9、datetime不为空入学时间Sminzuvarchar(10)无民族Sjiguanvarchar(10)无籍贯Saddvarchar(100)无家庭住址Stelvarchar(15)无联系电话Smorevarchar(500)无联系电话表1.2 毕业生表(graduate)字段名类型约束说明Gnoint主键毕业编号Snoint不为空学号Ghavefloat不为空已修学分Gmorevarchar无说明表1.3 教师表(teacher)字段名数据类型约束说明Tnoint主键教师号Tnamevarchar(10)不为空姓名Sexsymbolchar(2)无性别Tbirthdatetime无出生年月
10、Tidvarchar(20)无身份证号码Tpoliticvarchar(10)无政治面貌Tcomedatetime无入职时间Tminzuvarchar(10)无民族Tjiguanvarchar(10)无籍贯Taddvarchar(100)无家庭地址Ttelvarchar(15)无联系电话Tmorevarchar(500)无说明表1.4 院系表(faculty)字段名数据类型约束说明Fnoint主键院系号FnameVarchar(50)无院系名Fmonsterint无系主任表1.5专业表(specialty)字段名类型约束说明Spsymbolvarchar(20)不为空专业代码Spnamevar
11、char(50)无专业名SpmonsterInt无学院Fnoint外键专业主任表1.6班级表(Class)字段名类型约束说明CLsymbolvarchar(10)主键班级号CLnamevarchar(50)无班级名CLpeopleint无人数TnoInt无辅导员SpnoInt外键专业号表1.7课程表(course)字段名类型约束说明Cnoint主键,不为空课程号CnameVarchar无课程名Cfirstint无先行课CcreditFloat无学分表1.8宿舍表(Department)字段名类型约束说明Dnoint主键宿舍号Dnamevarchar(50)无宿舍名Dpeopleint无人数表1
12、.9职称表(Jobtitle)字段名类型约束说明Jsymbolvarchar(10)主键职称代号Jnamevarchar(50)无职称名称表1.10奖学金表(Award)字段名类型约束说明Asymbolvarchar(10)主键奖学金代号Anamevarchar(50)无奖学金名Amoneyint无金额表1.11性别表(sex)字段名类型约束说明Sexsymbolchar(2)主键性别代码Sexnamechar(2)无性别名表1.12 选课表(SC)字段名类型约束说明Snoint主键学号Cnoint主键课程号Scorefloat无成绩morenchar(10)无说明表1.13 授课表(TC)字
13、段名类型约束说明Cnoint主键课程号Tnoint主键教师号2 概念结构设计2.1 构成系统的实体型由学生学籍系统的数据流图和数据字典,抽取出系统的5个主要实体,包括:学生、教师、班级、课程、毕业生。学生(学号,姓名,出生年月,身份证号码,政治面貌,入学时间,民族,籍贯,家庭住址,联系电话,备注)教师(教师编号,姓名,出生年月,身份证号码,政治面貌,职称,入职时间,民族,籍贯,家庭住址,联系电话,说明)班级(班级代码,班级名称,人数,辅导员)课程(课程号,课程名,先行课,学分)毕业生(毕业编号,学号,已修学分,说明)图2.1 工资管理系统E-R图2.2 工资管理系统E-R图3 逻辑结构设计3.
14、1逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构一般分为3步进行:(1) 将概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3) 对数据模型进行优化。3.2 关系模型将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:(1)一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式;(2)一对多的关系可以融合在其他的相关的关系模式中。将概念结构设计阶段设计好的基
15、本E-R图转换成关系模型,如下所示(以下为主要实体的关系模型): 学生(学号,姓名,性别,寝室代码,班级代码,出生年月,身份证号,政治面貌,入学时间,民族,籍贯,家庭住址,电话号码,奖学金代码,备注),此为学生实体对应的关系模式。教师(教师号,姓名,性别,出生年月,身份证号,政治面貌,职称代码,学院代码,入职时间,电话号码,民族,籍贯,家庭住址,备注),此为教师实体对应的关系模式。毕业生(毕业编号,学号,已修学分,说明),此为毕业生实体对应的关系模式。课程(课程号,课程名,先行课,学分,)此为课程实体对应的关系模式。院系(院系代码,院系名称,院系主任),此为院系实体对应的关系模式。选课(学号,
16、课程号,成绩),此为选课关系对应的关系模式。授课(课程号,教师号),此为授课关系对应的关系模式。 4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。将生成的概念模型通过PowerDesigner中的Genertate Physical Data Model选项转换成物理模型,此物理模型如下图:图4.1 学生学籍管理系统物理模型5 物理结构设计与功能实现5.1定义数据库通过SQL语言进行数据库创建,创建数据库的语句如下:Create database studentInfo;5.2 创建表创建学生基本信息表(student) c
17、reate table student ( Sno int not null, Dno int not null, CLno int not null, Sexsymbol char(2) not null, Asymbol varchar(10) not null, Gno2 int null, Sname varchar(10) not null, Sbirth datetime null, Sid varchar(20) null, Spolitic varchar(10) null, Scome datetime null, Sminzu varchar(10) null, Sjigu
18、an varchar(10) null, Sadd varchar(100) null, Stel varchar(15) null, Smore varchar(Max) null, constraint PK_STUDENT primary key nonclustered (Sno);班级表 (Class) create table Class ( CLno int not null, Tno int not null, Fno int null, CLname varchar(20) null, CLpeople int not null, constraint PK_CLASS pr
19、imary key nonclustered (CLno);学生课程关系表(SC) create table SC ( Sno int not null, Cno int not null, Score float null, more varchar null, constraint PK_SC primary key (Sno, Cno);课程表(Course) create table course ( Cno int not null, Cname varchar(50) null, Cfirst int null, Ccredit float null, constraint PK_
20、COURSE primary key nonclustered (Cno);毕业生表(graduate) create table graduate ( Gno int not null, Sno int not null, Ghave float not null, Gmore varchar(0) not null, Column_5 varchar(Max) null, constraint PK_GRADUATE primary key nonclustered (Gno);教师表 (teacher) create table teacher ( Tno int not null, J
21、symbol varchar(10) not null, Sexsymbol char(2) not null, Fno int null, Tname varchar(10) null, Tbirth datetime null, Tid varchar(20) null, Tpolitic varchar(10) null, Tcome datetime null, Tminzu varchar(10) null, Tjiguan varchar(10) null, Tadd varchar(100) null, Ttel varchar(15) null, constraint PK_T
22、EACHER primary key nonclustered (Tno);教师课程关系表(授课) create table 授课 ( Cno int not null, Tno int not null, constraint PK_授课 primary key (Cno, Tno);5.3 创建存储过程在学生表中创建插入学生的存储过程:USE StudengtInfoGOCREATE procedure dbo.student_insert Sno int, Sname varchar(10), Ssexsymbol char(2) = null,Dsymbol char(10) = nu
23、ll, CLno varchar(10) = null, Sbirth int = null, Sid varchar(20) = null, Spolitic varchar(20) = null,Scome datetime = null,Sminzu varchar(10) = null,Sjiguan varchar(10) = null,Sadd varchar(100) = null,Stel varchar(15) = null,Asymbol varchar(10) = null,Smore varchar(500) = nullAsBEGINif EXISTS(select
24、* from student where Sno=Sno)print(已存在此学号学生)elseInsert into student values(Sno,Sname,Ssexsymbol,Dsymbol,CLno,Sbirth,Sid,Spolitic,Scome,Sminzu,Sjiguan,Sadd,Stel,Asymbol,Smore)UPDATE department SET Dpeople=Dpeople+1 WHERE Dsymbol=DsymbolEND在学生信息表上创建一个删除学生信息的存储过程:USE StudengtInfoGOCREATE PROCEDURE dbo.
25、delete_studentSno intASBEGINDELETE FROM student WHERE Sno = SnoEND在学生信息表上建立一个修改学生部分信息的存储过程:USE StudengtInfoGOCREATE PROCEDURE dbo.student_updatesno int, CLsymbol varchar(20),Sname varchar(10),Spolitic varchar(10)ASBEGINupdate student set Sname=Sname where sno = Snoupdate student set CLsymbol=CLsymbo
26、l where sno = Snoupdate student set Spolitic=Spolitic where sno = SnoEND5.4 创建触发器 定义一个BEFORE行级的触发器,为学生信息表Ssexsymbol定义完整性规则“学生性别只能是女或者男”。 CREATE TRIGGER dbo.sex_limit ON dbo.studentFOR INSERT,UPDATEASDECLARE Sexsymbol char(5)BEGINselect Sexsymbol=Sexsymbol from insertedif Sexsymbol not in (select Sex
27、symbol from sex)beginraiserror(性别不能输入m 或f 以外的字符,其中m代表男性。, 16, 8)rollback tranendEND 定义一个AFTER行级触发器,当学生信息表中的Sno发生变化后就自动在选课表和毕业生表中发生相应变化。CREATE TRIGGER dbo.update_sno ON dbo.studentFOR updateASBEGINupdate SC set Sno = (select Sno from inserted)where Sno = (select Sno from deleted)update graduate set S
28、no = (select Sno from inserted)where Sno = (select Sno from deleted)END定义一个AFTER行级触发器,在学生信息表中删除一条记录后就自动在选课表和毕业生表中删除相应信息。CREATE TRIGGER dbo.student_delete ON dbo.studentFOR DELETEASBEGINdelete from SC where Sno = (select Sno from deleted)delete from graduate where Sno = (select Sno from deleted)END5.
29、5 创建视图用奖学金表以及学生表创建一个获得奖学金的同学的部分信息,代码如下:SELECT dbo.student.Sno AS 学号, dbo.student.Sname AS 姓名, dbo.award.Aname AS 奖学金名, dbo.award.Amoney AS 金额FROM dbo.award INNER JOINdbo.student ON dbo.award.Asymbol = dbo.student.Asymbol此代码运行结果如下图:图5.5.1 获得奖学金同学视图用课程表、选课表以及学生表创建考试不及格学生的视图,代码如下:SELECT dbo.student.Sno
30、 AS 学号, dbo.student.Sname AS 姓名, dbo.course.Cname AS 课程名, dbo.course.Ccredit AS 学分, dbo.SC.Score AS 成绩, dbo.SC.more AS 说明FROM dbo.course INNER JOIN dbo.SC ON dbo.course.Cno = dbo.SC.Cno INNER JOIN dbo.student ON dbo.SC.Sno = dbo.student.SnoWHERE (dbo.SC.Score 60)此部分代码视图如下:图5.5.2 不及格视图用教师表、授课表、职称表以及课
31、程表创建教师授课以及班级管理的部分视图,代码如下:SELECT TOP (100) PERCENT dbo.teacher.Tno AS 教师编号, dbo.teacher.Tname AS 姓名, dbo.jobtitle.Jname AS 职称, dbo.Class.CLname AS 管理班级, dbo.teacher.Ttel AS 电话, dbo.course.Cname AS 授课课名, dbo.course.Ccredit AS 课程学分FROM dbo.teacher INNER JOINdbo.授课 ON dbo.teacher.Tno = dbo.授课.Tno INNER
32、JOIN dbo.Class ON dbo.teacher.Tno = dbo.Class.Tno INNER JOIN dbo.jobtitle ON dbo.teacher.Jsymbol = dbo.jobtitle.Jsymbol INNER JOIN dbo.course ON dbo.授课.Cno = dbo.course.Cno此段视图代码如下图:图5.5.3 教师授课部分信息6 总结 这两周的课程设计是做数据库课程设计,而这期间我们主要是制作一个数据库,像我就是制作的学生学籍的数据库,做数据库是一间很繁琐的事;首先我们要创建概念模型,然后是物理模型,然后才能在数据库中创建表,最
33、后还要添加约束等完善数据库的东西。不过雷亮老师教我们学习了一种软件PowerDesigner,这个软件是用于创建概念模型,并将概念模型转换成物理模型,最后将物理模型导入数据源中(即将物理模型中相应的表导入数据库中),运用这个软件可以节约大量时间。而这两周中,我不仅更深的学习了数据库的知识,而且还认识并学习了powerDesigner,不仅是丰富了知识,还提高了自己的动手能力。7 致谢 在这两周的课程设计中,肯定是会遇到很多问题的,因为数据库这门课并不像其他课一样,对于这门课,我们不仅要学习大量的理论知识,而且还要很强的动手能力,而动手能力恰好是我所缺的;所以对我来说做这个课程设计是要克服很多困难的。在这两周中,老师耐心的指导我,帮我分析我写代码是犯下的错误,从而让我更好的完成率了我的课程设计,并且让我学习到更多的知识;不止是老师,同学们也帮我了解了更多的知识,所以在这里我衷心的感谢帮助过我的老师和同学,谢谢你们!姓名:XXX 时间:2012年7月5日8 参考文献1 孙建伶,林怀忠. 数据库原理与应用. 北京:高等教育出版社 2006.52 梁方明. SQL Server 2000. 北京:希望电子出版社 2002.73 王珊,萨师煊. 数据库系统概论(第四版). 北京:高等教育出版社 2006.54 李树有. 数据库应用系统开发与实例. 北京:人民邮电出版社 2005.9
限制150内