学生成绩管理系统数据库项目设计报告Word文件下载.docx

上传人:b****5 文档编号:19489397 上传时间:2023-01-06 格式:DOCX 页数:18 大小:268.79KB
下载 相关 举报
学生成绩管理系统数据库项目设计报告Word文件下载.docx_第1页
第1页 / 共18页
学生成绩管理系统数据库项目设计报告Word文件下载.docx_第2页
第2页 / 共18页
学生成绩管理系统数据库项目设计报告Word文件下载.docx_第3页
第3页 / 共18页
学生成绩管理系统数据库项目设计报告Word文件下载.docx_第4页
第4页 / 共18页
学生成绩管理系统数据库项目设计报告Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统数据库项目设计报告Word文件下载.docx

《学生成绩管理系统数据库项目设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库项目设计报告Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统数据库项目设计报告Word文件下载.docx

成绩(学号、课程编号、分数);

学生(班级、姓名、学号、性别、专业);

教师(教师号、姓名、所属专业、性别)。

2.2局部E-R图

2.3全局E-R图

3逻辑结构设计

E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。

设计学生成绩管理数据库,包括课程(course)、学生(student)、成绩(sc)、教师(teacher)四个关系,其关系模式中对每个实体定义的属性如下:

course表:

(课程号(cno),教师号(tno),课程名(cname))

此为联系“course表”所对应的关系模式。

课程号和教师号为该关系的候选码,满足第三范式。

student表:

((学号(sno),班级(sclass),姓名(sname),性别(ssex),专业(smajor))

此为联系“student表”所对应的关系模式。

学号为该关系的候选码,满足第三范式。

sc表:

(学号(sno),课程号(cno),成绩(degree))

此为联系“sc表”所对应的关系模式。

学号和课程号为该关系的候选,满足第三范式。

teacher表:

(教师姓名(tname)、性别(tsex)、教师号(tno)、专业(tmajor))

此为联系“teacher表”所对应的关系模式。

教师号为该关系的候选码,满足第三范式。

数据库中包含4个表,即课程信息(course),学生信息(student),成绩信息(sc),教师信息(teacher)。

course表的表结构

列名

数据类型

长度

小数位数

是否允许NULL值

说明

cno

char

5

主码

cname

varchar

20

tno

3

student表的表结构

sno

9

sname

8

ssex

2

取值:

男或女

smajor

sclass

10

sc表的表结构

组合主码,外码

degree

decimal

4

1

取值1-100

teacher表的表结构

tname

tsex

tdept

16

4创建数据库和相关操作

4.1创建数据库

CREATEdatabasetest;

/*创建test数据库*/

4.1.1创建表

CREATETABLEcourse(//创建课程信息表

cnochar(5)NOTNULL,

cnamevarchar(20)NOTNULL,

tnochar(3)NOTNULL,

CONSTRAINTC1PRIMARYKEY(cno)

);

CREATETABLEstudent(//创建学生信息表

snochar(9)PRIMARYKEY,

snamechar(8),

ssexchar

(2),

smajorchar(20),

sclasschar(10)

CREATETABLEsc(//创建成绩表

snochar(10)NOTNULL,

degreedecimal(4,1),

cnochar(5)NOTNULL,

CONSTRAINTA1PRIMARYKEY(sno,cno),

CONSTRAINTA2CHECK(degree>

=0anddegree<

=100)

CREATETABLEteacher(//创建教师表

tnamevarchar(8),

tsexchar

(2),

tdeptchar(16),

CONSTRAINTC1PRIMARYKEY(tno)

4.1.2添加记录

course表添加示例:

INSERTINTOcourse

VALUES(’C01’,’科学导论’,’101’);

为了简化,其余用Navicat添加

student表添加示例:

INSERTINTOstudent

VALUES(’140210316’,’叶何斌’,’男’,’计算机科学与技术’,’计算机1403’);

为了简化,其余用Navicat添加。

sc表添加示例:

INSERTINTOsc

VALUES(’140210316’,’87’,’C01’);

teacher表添加示例:

INSERTINTOteacher

4.2建立视图

4.2.1

定义视图v_student,查询所有选修科学导论的课程的学生的学号(sno),姓名(sname),成绩(degree)。

代码:

CREATEVIEWv_student

AS

SELECTA.sno,sname,degree

FROMstudentA,courseB,scC

WHEREA.sno=C.snoANDB.cno=C.cnoANDcname='

科学导论'

;

查询定义视图v_student

SELECT*FROMv_student;

结果:

4.2.2

利用视图向表sc中插入一条数据。

view_sc是创建的视图

CREATEVIEWview_sc//创建

SELECTsno,degree,cno

FROMsc;

INSERTINTOview_sc//执行

VALUES('

140210321'

'

88'

C01'

SELECTsno,degree,cno//查看结果

在sc表中已经正确插入。

DELETEFROMview_scWHEREsno=’140210321’;

//删除

已经正确删除。

4.2.3

修改视图view_sc的代码为:

ALTERVIEWview_scASSELECTsno,degree,cno;

删除视图view_sc的代码为:

DROPVIEWview_sc;

4.3建立存储过程

4.3.1

创建一个存储过程,从student表中检索出所有班级为“计算机1403”的学生的学号,姓名。

DELIMITER///*将MYSQL的结束符设置为//*/

CREATEPROCEDUREproc_stud()

READSSQLDATA

BEGIN

SELECTsno,sname,smajorFROMstudent

WHEREsclassLIKE'

%计算机1403%'

ORDERBYsno;

END//

DELIMITER;

/*将结束符恢复成分号*/

执行存储过程:

CALLproc_stud;

4.3.2

创建一个num_sc的存储过程,统计一个同学的课程成绩个数。

CREATEPROCEDUREnum_sc(INtmp_snochar(9),OUTcount_numINT)

SELECTCOUNT(*)INTOcount_numFROMsc

WHEREsno=tmp_sno;

4.4建立触发器

在数据库的student表中,定义一个触发器,当一个学生被删除时,把该学生的学号和姓名添加到delstudent表中。

CREATETABLEdelstudentSELECTsno,snameFROMstudentWHERE1=0;

//创建一个空表用于接受删除后的数据

CREATETRIGGERtrig_student//创建student表的触发器

AFTERDELETEONstudentFOREACHR0W

INSERTINTOdelstudent(sno,sname)values(old.sno,old.sname);

DELETEFROMstudentWHEREsname='

李甜甜'

//删除一个学生,验证触发器是否触发。

select*fromdelstudent;

//查看接受删除数据表

触发器已经触发。

4.5查询问题和查询结果

4.5.1

查询所有学生的学号、姓名、性别和专业

selectsno,sname,ssex,smajor

fromstudent;

4.5.2

计算“C01”课程的平均成绩。

SELECTAVG(degree)FROMsc

WHEREcno='

4.5.3

查询选修课程名为“高等数学”的学生学号和姓名。

SELECTA.sno,sname

FROMstudentAINNERJOINscBONA.sno=B.sno

INNERJOINcourseCONB.cno=C.cno

WHEREC.cname='

高等数学'

4.5.4

查询“C03”课程不和格的学生信息

SELECTA.sno,sname,ssex,smajor,sclass

WHEREC.cno='

C03'

ANDB.degree<

60;

4.5.5

查询不讲授“C01”课程的教师姓名。

SELECTtname

FROMteacher

WHEREtno=ANY(SELECTtnoFROMcourseWHEREcno!

='

);

4.5.6

插入学号为“140210322”、姓名为“曾淑亮”、性别为“男”的学生信息。

INSERTINTOstudent(sno,sname,ssex)

VALUES('

140210322'

曾淑亮'

男'

5项目设计总结

这次学生成绩管理系统设计,我们主要采用的是命令行,然后Navicat图形界面辅助操作的方式完成设计。

通过这次程序设计,加深了对课程设计的理解。

在这次课程设计中,我们回顾了很多以前的东西,也发现了很多的问题,以前都没遇见过的,收获很大。

在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的。

看着自己做的系统,我们自己就会又欣慰又难过,欣慰的是终于把它做出来了,虽然遇到很多困难,难过的是自己知道还有很多的不足,但是由于知识的有限,无法去完善,才知道“书到用时方恨少”。

此次成绩管理系统的设计让我们对Mysql数据库的了解更加深入,在整个是设计过程中,通过对把各个管理信息连接起来的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力,对网络资源的利用能力和与其他同学的交流沟通能力。

而且经历这次课程设计,我们也学会了自学和分工合作。

我们觉得每一次的课程设计,都是让我们对原有知识从了解表面到深入本质,从个体学习到整体把握的跳跃,更是让我们把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加我们的自信和学习的动力。

总之,通过这次课程设计,我们获益匪浅。

也感受到了和同学合作开发的乐趣,同时验证了一句话“团结就是力量”。

最后感谢老师的悉心教导,为我们的程序开发之路打下了扎实的基础。

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

当前位置:首页 > 外语学习 > 日语学习

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

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