学籍管理系统设计数据库课程设计报告管理资料.docx

上传人:b****4 文档编号:4801846 上传时间:2022-12-09 格式:DOCX 页数:20 大小:135.59KB
下载 相关 举报
学籍管理系统设计数据库课程设计报告管理资料.docx_第1页
第1页 / 共20页
学籍管理系统设计数据库课程设计报告管理资料.docx_第2页
第2页 / 共20页
学籍管理系统设计数据库课程设计报告管理资料.docx_第3页
第3页 / 共20页
学籍管理系统设计数据库课程设计报告管理资料.docx_第4页
第4页 / 共20页
学籍管理系统设计数据库课程设计报告管理资料.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

学籍管理系统设计数据库课程设计报告管理资料.docx

《学籍管理系统设计数据库课程设计报告管理资料.docx》由会员分享,可在线阅读,更多相关《学籍管理系统设计数据库课程设计报告管理资料.docx(20页珍藏版)》请在冰豆网上搜索。

学籍管理系统设计数据库课程设计报告管理资料.docx

学籍管理系统设计数据库课程设计报告管理资料

重庆科技学院

 

课程设计报告

院(系):

_电气与信息工程学院_专业班级:

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学号,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1