学籍管理系统设计数据库课程设计报告管理资料.docx
- 文档编号:4801846
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:20
- 大小:135.59KB
学籍管理系统设计数据库课程设计报告管理资料.docx
《学籍管理系统设计数据库课程设计报告管理资料.docx》由会员分享,可在线阅读,更多相关《学籍管理系统设计数据库课程设计报告管理资料.docx(20页珍藏版)》请在冰豆网上搜索。
学籍管理系统设计数据库课程设计报告管理资料
重庆科技学院
课程设计报告
院(系):
_电气与信息工程学院_专业班级:
XXX
设计地点(单位)______第一实验楼I515___________
设计题目:
__________学籍管理系统设计_____________________
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
摘要
随着信息技术的飞速发展,信息化对学生个人提出了驾驭和掌握最新信息技术的要求;信息化也为提高教学质量,提高管理水平,工作效率创造了有效途径。
例如这次课程设计主要设计的是对学籍信息的管理以及操作,方便对于学生信息的管理。
学籍管理系统主要采用了SQL2005作为数据库,使用ODBC作为数据源,在数据库内部实现部分功能时运用的是触发器以及存储过程;而且还可用视图查看部分信息。
关键词:
数据库触发器存储过程视图
重庆科技学院
课程设计任务书
设计题目:
学籍管理系统设计
学生姓名
XXX
课程名称
数据库原理课程设计
专业班级
计科2010-03
地点
I515、I524和计算机自主学习中心
起止时间
设计内容及要求
内容:
学生根据本课程设计指导书中的题目,进行设计。
(1)学生基本信息系统
能够完成新、老生信息的输人、修改、插人、删除等工作。
可以按照特定的信息进行查找,并按照特定的要求进行排序。
可以对老生的信息进行备份,以便日后查询。
可以对学生的信息进行打印输出。
提供详细的帮助文件和系统维护功能。
(2)学生成绩管理系统
此部分的功能如下:
学生成绩的输入、修改、删除等基本操作。
成绩的综合统计功能,包括学生成绩按照不同条件进行排名。
管理人员可以选择不同的排序条件,并可以将排序结果进行打印输出。
计算各班的总分和平均分,并按照平均分将各班成绩进行排序。
统计不及格考生的信息,根据条件确定是重修还是补考。
学生奖励统计,自动生成每班获得奖学金的同学的信息,并可以将奖学金分成不同的等级,以及所得奖学金的数目。
本系统可以在单机上运行,也可以应用在网络上供在线查询成绩和其他一些学生的信息(此功能选做人提供给学生进行查询的系统和提供给教务处使用的系统,在不同用户使用时,应该会有不同的使用权限。
提供详细的帮助文件。
要求:
按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。
设计
参数
至少5个表结构;3个存储过程;2个触发器;3个视图。
进度
要求
讲课阅读分析任务书制订设计计划
需求分析概念结构设计
概念结构设计准备文挡
逻辑结构设计物理结构设计
写文挡答辩交设计报告书
参考资料
1.雷亮等《数据库原理课程设计》指导书
2.王珊、萨师煊.《数据库系统概述》(第四版).北京:
高等教育出版社.2006。
3..孟小峰、王珊等译.《数据库系统导论》(第8版).北京:
。
4.陈根才等.数据库课程设计.浙江.浙江大学出版社.2007
其它
说明
,院系审批后交院系办备案,一份由负责教师留用。
。
,在设计内容、参数、要求等方面应有所区别。
教研室主任:
指导教师:
雷亮/游明英/张亚军/裴仰军2012年06月15日
功能模块分析2
5物理结构设计与功能实现11
1需求分析
系统目标设计
(1)使得学生的学籍管理工作更加清晰、条理化、自动化。
(2)很容易地完成新生信息的输入、老生信息的备份、毕业学生的信息可以很容易地保存。
(3)当学生需要查询成绩时,可以很简单地将其需要的信息从数据库中查找出来并可以打印查询结果。
(4)随着当今网络技术的发展,提供网络在线查询功能,可以为毕业生提供更多的就业机会。
系统功能分析
(1)学生基本信息系统
能够完成新、老生信息的输人、修改、插人、删除等工作。
可以按照特定的信息进行查找,并按照特定的要求进行排序。
可以对老生的信息进行备份,以便日后查询。
可以对学生的信息进行打印输出。
提供详细的帮助文件和系统维护功能。
(2)学生成绩管理系统
此部分的功能如下:
学生成绩的输入、修改、删除等基本操作。
成绩的综合统计功能,包括学生成绩按照不同条件进行排名。
管理人员可以选择不同的排序条件,并可以将排序结果进行打印输出。
计算各班的总分和平均分,并按照平均分将各班成绩进行排序。
统计不及格考生的信息,根据条件确定是重修还是补考。
学生奖励统计,自动生成每班获得奖学金的同学的信息,并可以将奖学金分成不同的等级,以及所得奖学金的数目。
功能模块分析
根据系统功能的基本要求,系统的功能模块设计图如下图所示:
功能模块图
系统全局数据流图
系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。
数据流图
数据字典
(student)
字段名
数据类型
约束
说明
Sno
int
主键
学号
Sname
varchar(10)
不为空
姓名
Sbirth
datetime
无
出生年月
Sid
varchar(20)
无
身份证号码
Spolitic
varchar(10)
无
政治面貌
Scome
datetime
不为空
入学时间
Sminzu
varchar(10)
无
民族
Sjiguan
varchar(10)
无
籍贯
Sadd
varchar(100)
无
家庭住址
Stel
varchar(15)
无
联系电话
Smore
varchar(500)
无
联系电话
毕业生表(graduate)
字段名
类型
约束
说明
Gno
int
主键
毕业编号
Sno
int
不为空
学号
Ghave
float
不为空
已修学分
Gmore
varchar
无
说明
教师表(teacher)
字段名
数据类型
约束
说明
Tno
int
主键
教师号
Tname
varchar(10)
不为空
姓名
Sexsymbol
char
(2)
无
性别
Tbirth
datetime
无
出生年月
Tid
varchar(20)
无
身份证号码
Tpolitic
varchar(10)
无
政治面貌
Tcome
datetime
无
入职时间
Tminzu
varchar(10)
无
民族
Tjiguan
varchar(10)
无
籍贯
Tadd
varchar(100)
无
家庭地址
Ttel
varchar(15)
无
联系电话
Tmore
varchar(500)
无
说明
院系表(faculty)
字段名
数据类型
约束
说明
Fno
int
主键
院系号
Fname
Varchar(50)
无
院系名
Fmonster
int
无
系主任
(specialty)
字段名
类型
约束
说明
Spsymbol
varchar(20)
不为空
专业代码
Spname
varchar(50)
无
专业名
Spmonster
Int
无
学院
Fno
int
外键
专业主任
(Class)
字段名
类型
约束
说明
CLsymbol
varchar(10)
主键
班级号
CLname
varchar(50)
无
班级名
CLpeople
int
无
人数
Tno
Int
无
辅导员
Spno
Int
外键
专业号
(course)
字段名
类型
约束
说明
Cno
int
主键,不为空
课程号
Cname
Varchar
无
课程名
Cfirst
int
无
先行课
Ccredit
Float
无
学分
(Department)
字段名
类型
约束
说明
Dno
int
主键
宿舍号
Dname
varchar(50)
无
宿舍名
Dpeople
int
无
人数
(Jobtitle)
字段名
类型
约束
说明
Jsymbol
varchar(10)
主键
职称代号
Jname
varchar(50)
无
职称名称
(Award)
字段名
类型
约束
说明
Asymbol
varchar(10)
主键
奖学金代号
Aname
varchar(50)
无
奖学金名
Amoney
int
无
金额
(sex)
字段名
类型
约束
说明
Sexsymbol
char
(2)
主键
性别代码
Sexname
char
(2)
无
性别名
选课表(SC)
字段名
类型
约束
说明
Sno
int
主键
学号
Cno
int
主键
课程号
Score
float
无
成绩
more
nchar(10)
无
说明
授课表(TC)
字段名
类型
约束
说明
Cno
int
主键
课程号
Tno
int
主键
教师号
2概念结构设计
构成系统的实体型
由学生学籍系统的数据流图和数据字典,抽取出系统的5个主要实体,包括:
学生、教师、班级、课程、毕业生。
学生(学号,姓名,出生年月,身份证号码,政治面貌,入学时间,民族,籍贯,家庭住址,联系电话,备注)
教师(教师编号,姓名,出生年月,身份证号码,政治面貌,职称,入职时间,民族,籍贯,家庭住址,联系电话,说明)
班级(班级代码,班级名称,人数,辅导员)
课程(课程号,课程名,先行课,学分)
毕业生(毕业编号,学号,已修学分,说明)
工资管理系统E-R图
工资管理系统E-R图
3逻辑结构设计
逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
设计逻辑结构一般分为3步进行:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
关系模型
将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:
(1)一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式;
(2)一对多的关系可以融合在其他的相关的关系模式中。
将概念结构设计阶段设计好的基本E-R图转换成关系模型,如下所示(以下为主要实体的关系模型):
学生(学号,姓名,性别,寝室代码,班级代码,出生年月,身份证号,政治面貌,入学时间,民族,籍贯,家庭住址,电话号码,奖学金代码,备注),此为学生实体对应的关系模式。
教师(教师号,姓名,性别,出生年月,身份证号,政治面貌,职称代码,学院代码,入职时间,电话号码,民族,籍贯,家庭住址,备注),此为教师实体对应的关系模式。
毕业生(毕业编号,学号,已修学分,说明),此为毕业生实体对应的关系模式。
课程(课程号,课程名,先行课,学分,)此为课程实体对应的关系模式。
院系(院系代码,院系名称,院系主任),此为院系实体对应的关系模式。
选课(学号,课程号,成绩),此为选课关系对应的关系模式。
授课(课程号,教师号),此为授课关系对应的关系模式。
4物理模型设计
数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。
将生成的概念模型通过PowerDesigner中的GenertatePhysicalDataModel选项转换成物理模型,此物理模型如下图:
学生学籍管理系统物理模型
5物理结构设计与功能实现
通过SQL语言进行数据库创建,创建数据库的语句如下:
CreatedatabasestudentInfo;
创建表
创建学生基本信息表(student)
createtablestudent(
Snointnotnull,
Dnointnotnull,
CLnointnotnull,
Sexsymbolchar
(2)notnull,
Asymbolvarchar(10)notnull,
Gno2intnull,
Snamevarchar(10)notnull,
Sbirthdatetimenull,
Sidvarchar(20)null,
Spoliticvarchar(10)null,
Scomedatetimenull,
Sminzuvarchar(10)null,
Sjiguanvarchar(10)null,
Saddvarchar(100)null,
Stelvarchar(15)null,
Smorevarchar(Max)null,
constraintPK_STUDENTprimarykeynonclustered(Sno)
);
班级表(Class)
createtableClass(
CLnointnotnull,
Tnointnotnull,
Fnointnull,
CLnamevarchar(20)null,
CLpeopleintnotnull,
constraintPK_CLASSprimarykeynonclustered(CLno)
);
学生课程关系表(SC)
createtableSC(
Snointnotnull,
Cnointnotnull,
Scorefloatnull,
morevarcharnull,
constraintPK_SCprimarykey(Sno,Cno)
);
课程表(Course)
createtablecourse(
Cnointnotnull,
Cnamevarchar(50)null,
Cfirstintnull,
Ccreditfloatnull,
constraintPK_COURSEprimarykeynonclustered(Cno)
);
毕业生表(graduate)
createtablegraduate(
Gnointnotnull,
Snointnotnull,
Ghavefloatnotnull,
Gmorevarchar(0)notnull,
Column_5varchar(Max)null,
constraintPK_GRADUATEprimarykeynonclustered(Gno)
);
教师表(teacher)
createtableteacher(
Tnointnotnull,
Jsymbolvarchar(10)notnull,
Sexsymbolchar
(2)notnull,
Fnointnull,
Tnamevarchar(10)null,
Tbirthdatetimenull,
Tidvarchar(20)null,
Tpoliticvarchar(10)null,
Tcomedatetimenull,
Tminzuvarchar(10)null,
Tjiguanvarchar(10)null,
Taddvarchar(100)null,
Ttelvarchar(15)null,
constraintPK_TEACHERprimarykeynonclustered(Tno)
);
教师课程关系表(授课)
createtable授课(
Cnointnotnull,
Tnointnotnull,
constraintPK_授课primarykey(Cno,Tno)
);
创建存储过程
在学生表中创建插入学生的存储过程:
USE[StudengtInfo]
GO
CREATEprocedure[dbo].[student_insert]
@Snoint,
@Snamevarchar(10),
@Ssexsymbolchar
(2)=null,
@Dsymbolchar(10)=null,
@CLnovarchar(10)=null,
@Sbirthint=null,
@Sidvarchar(20)=null,
@Spoliticvarchar(20)=null,
@Scomedatetime=null,
@Sminzuvarchar(10)=null,
@Sjiguanvarchar(10)=null,
@Saddvarchar(100)=null,
@Stelvarchar(15)=null,
@Asymbolvarchar(10)=null,
@Smorevarchar(500)=null
As
BEGIN
ifEXISTS(select*fromstudentwhereSno=@Sno)
print('已存在此学号学生')
else
Insertintostudent
values(@Sno,@Sname,@Ssexsymbol,@Dsymbol,@CLno,@Sbirth,@Sid,
@Spolitic,@Scome,@Sminzu,@Sjiguan,@Sadd,@Stel,@Asymbol,@Smore)
UPDATEdepartmentSETDpeople=Dpeople+1WHEREDsymbol=@Dsymbol
END
在学生信息表上创建一个删除学生信息的存储过程:
USE[StudengtInfo]
GO
CREATEPROCEDURE[dbo].[delete_student]
@Snoint
AS
BEGIN
DELETEFROMstudent
WHERESno=@Sno
END
在学生信息表上建立一个修改学生部分信息的存储过程:
USE[StudengtInfo]
GO
CREATEPROCEDURE[dbo].[student_update]
@snoint,@CLsymbolvarchar(20),
@Snamevarchar(10),@Spoliticvarchar(10)
AS
BEGIN
updatestudentsetSname=@Snamewhere@sno=Sno
updatestudentsetCLsymbol=@CLsymbolwhere@sno=Sno
updatestudentsetSpolitic=@Spoliticwhere@sno=Sno
END
创建触发器
定义一个BEFORE行级的触发器,为学生信息表Ssexsymbol定义完整性规则“学生性别只能是女或者男”。
CREATETRIGGER[dbo].[sex_limit]ON[dbo].[student]
FORINSERT,UPDATE
AS
DECLARE@Sexsymbolchar(5)
BEGIN
select@Sexsymbol=Sexsymbolfrominserted
if@Sexsymbolnotin(selectSexsymbolfromsex)
begin
raiserror('性别不能输入m或f以外的字符,其中m代表男性。
',16,8)
rollbacktran
end
END
定义一个AFTER行级触发器,当学生信息表中的Sno发生变化后就自动在选课表和毕业生表中发生相应变化。
CREATETRIGGER[dbo].[update_sno]ON[dbo].[student]
FORupdate
AS
BEGIN
updateSCsetSno=(selectSnofrominserted)
whereSno=(selectSnofromdeleted)
updategraduatesetSno=(selectSnofrominserted)
whereSno=(selectSnofromdeleted)
END
定义一个AFTER行级触发器,在学生信息表中删除一条记录后就自动在选课表和毕业生表中删除相应信息。
CREATETRIGGER[dbo].[student_delete]ON[dbo].[student]
FORDELETE
AS
BEGIN
deletefromSCwhereSno=(selectSnofromdeleted)
deletefromgraduatewhereSno=(selectSnofromdeleted)
END
创建视图
用奖学金表以及学生表创建一个获得奖学金的同学的部分信息,代码如下:
SELECTAS学号,AS姓名,AS奖学金名,AS金额
FROMINNERJOIN
ON=
此代码运行结果如下图:
获得奖学金同学视图
用课程表、选课表以及学生表创建考试不及格学生的视图,代码如下:
SELECTAS学号,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学籍 管理 系统 设计 数据库 课程设计 报告 资料