数据库学生管理系统课程设计.docx

上传人:b****8 文档编号:28819742 上传时间:2023-07-19 格式:DOCX 页数:24 大小:779.80KB
下载 相关 举报
数据库学生管理系统课程设计.docx_第1页
第1页 / 共24页
数据库学生管理系统课程设计.docx_第2页
第2页 / 共24页
数据库学生管理系统课程设计.docx_第3页
第3页 / 共24页
数据库学生管理系统课程设计.docx_第4页
第4页 / 共24页
数据库学生管理系统课程设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据库学生管理系统课程设计.docx

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

数据库学生管理系统课程设计.docx

数据库学生管理系统课程设计

一、问题描述:

系统中有三类用户:

管理员、教师和学生。

各类用户的具体描述如下:

(1)管理员

描述:

管理员维护整个系统,包括设置选课时段,选课前学生不可登录;

选课结束,学生只可查询,管理员对选课结果进行统计;

查询选课情况,对学生的选课申请进行处理,进行用户管理;

限制最大选课人数;

排课、发布选课信息;

数据备份和恢复等。

(2)教师

描述:

教师撰写教师反馈,反馈选课信息,

对排课者提出反馈意见,供排课者(管理员)在排课时参考使用。

查询课程基本情况、学生情况。

(3)学生

描述:

在选课系统中查询课程、教室信息,

查看教师反馈,提交选课申请,撤销申请,

查询选课情况,登录系统,进行个人信息修改等与选课有关的活动。

系统进行了划分,分为三个主要处理业务,

即登录控制业务、排课业务和选课业务。

其中,登录是前提,排课是基础,选课是关键。

登录区描述:

分排课者(即系统管理员),教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的权限,进行不同的操作。

排课业务描述:

主要供排课者使用,其中设定选课时间段,进行排课并检测排课冲突,发布选课信息都是选课的前提和基础。

选课业务描述:

是本系统要实现的最终目的。

选课业务主要供学生选课使用,在这里可以进行与选课有关的活动,包括课程浏览查询、选课、退选课程。

二、需求分析:

 

(一)数据流图-学生界面

 

查询信息

回复查询结果查询请求

 

课程信息表

查询请求退选回复

课程

修改信息

验证信息

查询

学生界面

学生

用户名、密码正确信息信息

回复

错误信息密码

修改回

用户名、密码验证结果请求复退选课程信息

修改密码

新密码修改成功

学生信息表选课信息表

修改成功

添加、删除选课信息

 

回复查询请求

 

(二)数据流图-教师界面

 

授课表

回复查询成绩信息

查询教学安排

回复教学安排回复查询个人信息

查询信息

回复查询结果查询个人信息

查询成绩信息

课程信息表

查询请求成绩

录入学生成绩

验证信息

录入

教师界面

教师

用户名、密码正确信息请求

回复

错误信息密码回

修改复

用户名、密码验证结果请求成绩单录入

修改密码

新密码成功

教师信息表选课信息表

修改成功

 

(三)数据流图-管理员界面

 

学生信息教师信息课程信息授课信息

查询添加查询添加查询添加查询添加

修改删除修改删除修改删除修改删除

 

删除信息

修改信息

添加信息

查询信息

回回复回复

复查询请求添加请求修改请求删除请求

验证信息

回复

管理员

管理员界面

用户名、密码正确信息

错误信息密码

修改回

用户名、密码验证结果请求复

修改密码

新密码

管理员信息表

修改成功

 

(四)数据字典

 

数据元素

数据类型

长度

数据来源

学号

nchar

10

学生表

姓名

nchar

8

学生表

密码

nchar

20

学生表

专业

nchar

20

学生表

系别

nchar

20

学生表

年龄

int

2

学生表

教职工号

nchar

10

教师表

姓名

nchar

8

教师表

密码

nchar

20

教师表

职工号

nchar

10

管理员表

姓名

nchar

8

管理员表

密码

nchar

20

管理员表

课程编号

nchar

10

课程表

课程名

nchar

8

课程表

学分

float

1

课程表

学号

nchar

10

选课表

课程编号

nchar

10

选课表

成绩

numeric

(4,2)

选课表

教职工号

nchar

10

授课表

课程编号

nchar

10

授课表

课时

nchar

10

授课表

已选人数

Int

2

选课表

可选人数

Int

2

选课表

 

三、概念结构设计:

(一)各个实体的E-R图分别如下图所示

 

教职工号

密码

姓名

职工号

密码

姓名

教师

管理员

 

年龄

系别

专业

密码

姓名

学号

 

学生

课程名

课程编号

学分

 

课程

 

学号

课程编号

教职工号

课时

课程编号

成绩

已选人数

可选人数

选课

排课

(二)局部E-R图分别如下图所示

 

学-课

课程

学生

mn

 

成绩

 

课时

教-课

课程

教师

m1

 

学分

学生

教-学

教师

mn

 

管-学

学生

管理员

mn

 

管-教

教师

管理员

mn

 

管-课

课程

管理员

mn

 

(三)合并E-R图如下图所示(各实体联系属性省略)

全局E-R图

 

学生

 

nn

教-学

管-学

 

m

mm

学-课

教师

管-教

管理员

n

m

m

教-课

管-课

m

 

n

n1

课程

 

三、逻辑结构设计:

关系模式(属于3NF):

教师(教职工号、姓名、密码)

管理员(职工号、姓名、密码)

学生(学号、姓名、密码、专业、系别、年龄)

课程(课程编号、课程名、学分)

管-学(职工号、学号、教职工号、课程编号)

教-学(学号、教职工号、学分)

教-课(教职工号、课程编号、课时)

学-课(学号、课程编号、成绩、已选人数、可选人数)

学生信息表

序号

列名

数据类型

可否NULL

主码

备注

1

学号

nchar(10)

完整性

2

姓名

nchar(10)

3

年龄

int

4

专业

nchar(20)

5

系别

nchar(20)

6

密码

nchar(20)

教师信息表

序号

列名

数据类型

可否NULL

主码

备注

1

教职工号

nchar(10)

完整性

2

姓名

nchar(8)

3

密码

nchar(20)

管理员信息表

序号

列名

数据类型

可否NULL

主码

备注

1

职工号

nchar(10)

完整性

2

姓名

nchar(8)

3

密码

nchar(20)

课程信息表

序号

列名

数据类型

可否NULL

主码

备注

1

课程编号

nchar(10)

完整性

2

课程名

nchar(8)

3

学分

Float

选课信息表

序号

列名

数据类型

可否NULL

主码

备注

1

学号

nchar(10)

完整性

2

课程编号

nchar(10)

完整性

3

成绩

numeric(4,2)

4

已选人数

int

5

可选人数

int

授课信息表

序号

列名

数据类型

可否NULL

主码

备注

1

教职工号

nchar(10)

完整性

2

课程编号

nchar(10)

完整性

3

课时

nchar(10)

数据库表关系图

 

四、物理结构设计:

(一)学生信息表

(二)教师信息表

(三)管理员信息表

 

(四)课程信息表

 

(五)选课信息表

(六)授课信息表

 

六、程序:

(一)索引的建立

CREATEUNIQUEINDEXadminidON管理员信息表(职工号);

CREATEUNIQUEINDEXstudentidON学生信息表(学号);

CREATEUNIQUEINDEXteacheridON教师信息表(教职工号);

CREATEUNIQUEINDEXcourseidON课程信息表(课程编号);

CREATEUNIQUEINDEXscidON选课信息表(学号,课程编号);

CREATEUNIQUEINDEXtcidON授课信息表(教职工号,课程编号);

(二)创建视图

1.创建学生信息视图

CREATEVIEW学生信息视图

(学号,姓名,年龄,系别,专业,密码)

AS

SELECT学号,姓名,年龄,系别,专业,密码

FROM学生信息表

2.创建教师信息视图

CREATEVIEW教师信息视图

(教职工号,姓名,密码)

AS

SELECT教职工号,姓名,密码

FROM教师信息表

3.创建管理员信息视图

CREATEVIEW管理员信息视图

(职工号,姓名,密码)

AS

SELECT职工号,姓名,密码

FROM管理员信息表

4.创建课程信息视图

CREATEVIEW课程信息视图

(课程编号,课程名,学分)

AS

SELECT课程编号,课程名,密码

FROM课程信息表

5.创建选课信息视图

CREATEVIEW选课信息视图

(学号,课程编号,成绩)

AS

SELECT学号,课程编号,成绩

FROM选课信息表

6.创建授课信息视图

CREATEVIEW授课信息视图

(教职工号,课程编号,课时,可选人数,已选人数)

AS

SELECT教职工号,课程编号,课时,可选人数,已选人数

FROM授课信息表

(三)创建触发器

(1)这个触发器在往选课信息表中插入选课信息后触发,其目的是让已选人数加一,可选人数减一,保证数据库数据的完整性;

DELIMITER//

CREATETRIGGERinfo

AFTERINSERT

ON选课信息表

FOREACHROW

BEGIN

UPDATE选课信息表SET已选人数=已选人数+1,可选人数=可选人数-1WHERE课程编号=new.课程编号;

END

//

(2)这个触发器是在删除选课信息表表中的选课信息时触发,其目的是让已选人数减一,可选人数加一,保证数据库数据的完整性;

DELIMITER//

CREATETRIGGER_info

AFTERDELETE

ON选课信息表

FOREACHROW

BEGIN

UPDATE选课信息表SET已选人数=已选人数-1,可选人数=可选人数+1WHERE课程编号=old.课程编号;

END

 

(四)例查询(仅举例)

1.

SELECT学号,课程名

FROM学生信息表,课程信息表

2.

SELECT学号,

sum(学分)总学分

FROM课程信息表,学生信息表

groupby学号

 

七、设计小结:

通过本次课程设计,使我真正的了解掌握了实际开发的过程、步骤。

在之前的一些课程设计中,总是先去写代码,在完成代码后补充其他部分,这次从需求分析开始,画出系统的数据流图,写出较为详细的数据字典;之后进行了概念结构设计,E-R图使问题更细化,层次化;接下来是逻辑结构设计,为了使系统优化程度更好,满足3NF,对系统数据库中的各种表进行了更加细化的定义;最后通过SQL语句进行查询等功能的实现。

过程条理清晰。

在以后的课题实现中,我也会遵循上述过程,使以后的学习实现过程规范化。

通过本次课程设计我也发现了自己对基础的专业知识还不够牢固,了解却不能掌握,又或者不能实际应用,学以致用,在老师指出问题后才发现,确实有这个知识点,但没有和实际操作相结合。

在以后的学习过程中,我也会把专业知识与实际问题结合起来,在掌握自己专业知识的同时,把自己的实际应用能力同步提高。

以上是我维持一周的课程设计心得体会。

 

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

当前位置:首页 > 高等教育 > 农学

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

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