学生成绩管理系统数据库项目设计报告_第1页
学生成绩管理系统数据库项目设计报告_第2页
学生成绩管理系统数据库项目设计报告_第3页
学生成绩管理系统数据库项目设计报告_第4页
学生成绩管理系统数据库项目设计报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机1403学生成绩管理系统工程设计报告……………2023/11/23

目录1工程背景及需求分析 21.1工程背景 21.2需求分析 22概念结构设计 32.1抽象出系统实体 32.2局部E-R图 32.3全局E-R图 63逻辑结构设计 64创立数据库及相关操作 94.1创立数据库 94.2建立视图 104.3建立存储过程 124.4建立触发器 134.5查询问题及查询结果 145工程设计总结 171工程背景及需求分析1.1工程背景高校是教学和科研的重要基地,同时还是培养人才的重要场所。随着计算机技术的开展和互联网时代的到来,学校的教学管理受到了极大的挑战。Internet技术持续迅猛的开展为传统的教学管理提出了新的模式。以现在计算机技术、网络技术为根底的数字化教学管理要依靠自身的人才优势,加强对信息资源的开发和利用,做好学校信息化的根底教学工作,是学校朝着信息化、网络化、现代化的目标迈进。这种新的管理模式,对于管理极为珍贵的特性,可以为新型管理模式的建构提供理想的根底。系统由授课教师来完成成绩录入,而学生可以自行查询成绩。这样除了减轻教学管理部门人员的工作负担,还可以减少信息错误的发生,同时为其他部门甚至全校教职工提供信息效劳。开发的学生成绩管理系统那么是以校园网为根底的管理系统,利用网络能快速、及时、准确的传递信息的作用,使部门的“信息孤岛〞过渡到紧密相关并在全校范围内都可用的数据。通过网络可以使管理部门能够更方便的管理学生的成绩系统;也使得教师能够方便的上传、校队学生成绩;还可以使学生能够快速查询成绩。这样管理部门对信息的管理和控制方式变成双向的,不但减少管理方面的工作量,而且可以做到信息管理标准化,从而得到科学的统计和快速的查询。1.2需求分析针对河北工程大学的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广阔教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。2概念结构设计2.1抽象出系统实体课程〔课程编号、课程教师编号、课程名称〕;成绩〔学号、课程编号、分数〕;学生〔班级、姓名、学号、性别、专业〕;教师〔教师号、姓名、所属专业、性别〕。2.2局部E-R图课程号课程名任课教师号课程号课程名任课教师号教师号教师号课程教师师姓名系别性别教师号授课mn班级姓名学生师学号性别专业学号教师师姓名系别教师号性别教授教师号1n成绩师学号课程编号分数课程号学号n1考试学生师专业学号班级性别姓名课程课程师课程号课程名任课教师号nm选修课程号成绩学号学生师专业学号班级性别姓名2.3全局E-R图1拥有选修1拥有选修课程名成绩学号1n考试课程号学号学号课程编号分数n1讲授教师号课程号课程编号任课教师号课程名称课程性别系别姓名教师号教师成绩专业性别学号姓名班级学生1n教授教师号学号13逻辑结构设计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值说明cnochar5否主码cnamevarchar20否tnochar3否student表的表结构列名数据类型长度小数位数是否允许NULL值说明snochar9否主码snamechar8是ssexchar2是取值:男或女smajorchar20是sclasschar10是sc表的表结构列名数据类型长度小数位数是否允许NULL值说明snochar10否组合主码,外码degreedecimal41是取值1-100cnochar5否组合主码,外码teacher表的表结构列名数据类型长度小数位数是否允许NULL值说明tnochar3否主码tnamevarchar8是tsexchar2是取值:男或女tdeptchar16是4创立数据库及相关操作4.1创立数据库CREATEdatabasetest; /*创立test数据库*/创立表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( //创立教师表tnochar(3)NOTNULL,tnamevarchar(8),tsexchar(2),tdeptchar(16),CONSTRAINTC1PRIMARYKEY(tno));添加记录course表添加例如:INSERTINTOcourseVALUES(’C01’,’科学导论’,’101’);为了简化,其余用Navicat添加student表添加例如:INSERTINTOstudentVALUES(’140210316’,’叶何斌’,’男’,’计算机科学与技术’,’计算机1403’);为了简化,其余用Navicat添加。sc表添加例如:INSERTINTOscVALUES(’140210316’,’87’,’C01’);为了简化,其余用Navicat添加teacher表添加例如:INSERTINTOteacherVALUES(’140210316’,’叶何斌’,’男’,’计算机科学与技术’,’计算机1403’);为了简化,其余用Navicat添加4.2建立视图定义视图v_student,查询所有选修科学导论的课程的学生的学号〔sno〕,姓名〔sname〕,成绩〔degree〕。代码:CREATEVIEWv_studentASSELECTA.sno,sname,degreeFROMstudentA,courseB,scCWHEREA.sno=C.snoANDBo=CoANDcname='科学导论';查询定义视图v_student代码:SELECT*FROMv_student;结果:利用视图向表sc中插入一条数据。view_sc是创立的视图代码:CREATEVIEWview_sc //创立ASSELECTsno,degree,cnoFROMsc;INSERTINTOview_sc //执行VALUES('140210321','88','C01');SELECTsno,degree,cno //查看结果FROMsc;结果:在sc表中已经正确插入。DELETEFROMview_scWHEREsno=’140210321’;//删除结果:已经正确删除。修改视图view_sc的代码为:ALTERVIEWview_scASSELECTsno,degree,cno;删除视图view_sc的代码为:DROPVIEWview_sc;4.3建立存储过程创立一个存储过程,从student表中检索出所有班级为“计算机1403〞的学生的学号,姓名。代码:DELIMITER// /*将MYSQL的结束符设置为//*/CREATEPROCEDUREproc_stud()READSSQLDATABEGINSELECTsno,sname,smajorFROMstudentWHEREsclassLIKE'%计算机1403%'ORDERBYsno;END//DELIMITER; /*将结束符恢复成分号*/执行存储过程:CALLproc_stud;结果:创立一个num_sc的存储过程,统计一个同学的课程成绩个数。代码:DELIMITER// /*将MYSQL的结束符设置为//*/CREATEPROCEDUREnum_sc(INtmp_snochar(9),OUTcount_numINT)READSSQLDATABEGINSELECTCOUNT(*)INTOcount_numFROMscWHEREsno=tmp_sno;END//DELIMITER; /*将结束符恢复成分号*/4.4建立触发器在数据库的student表中,定义一个触发器,当一个学生被删除时,把该学生的学号和姓名添加到delstudent表中。代码:CREATETABLEdelstudentSELECTsno,snameFROMstudentWHERE1=0; //创立一个空表用于接受删除后的数据CREATETRIGGERtrig_student//创立student表的触发器AFTERDELETEONstudentFOREACHR0WINSERTINTOdelstudent(sno,sname)values(old.sno,old.sname);DELETEFROMstudentWHEREsname='李甜甜'; //删除一个学生,验证触发器是否触发。select*fromdelstudent; //查看接受删除数据表结果:触发器已经触发。4.5查询问题及查询结果查询所有学生的学号、姓名、性别和专业代码:selectsno,sname,ssex,smajorfromstudent;结果:计算“C01〞课程的平均成绩。代码:SELECTAVG(degree)FROMscWHEREcno='C01';结果:查询选修课程名为“高等数学〞的学生学号和姓名。代码:SELECTA.sno,snameFROMstudentAINNERJOINscBONA.sno=B.snoINNERJOINcourseCONBo=CoWHERECame='高等数学';结果:查询“C03〞课程不及格的学生信息代码:SELECTA.sno,sname,ssex,smajor,sclassFROMstudentAINNERJOINscBONA.sno=B.snoINNERJOINcourseCONBo=CoWHERECo='C03'ANDB.degree<60;结果:查询不讲授“C01〞课程的教师姓名。代码:SELECTtnameFROMteacherWHEREtno=ANY(SELECTtnoFROMcourseWHEREcno!='C01');结果:插入学号为“140210322〞、姓名为“曾淑亮〞、性别为“男〞的学生信息。代码:INSERTINTOstudent(sno,sname,ssex)VALUES('140210322','曾淑亮','男');结果:5工程设计总结这次学生成绩管理系统设计,我们主要采用的是命令行,然后Navicat图形界面辅助操作的方式完成设计。通过这次程序设计,加深了对课程设计的理解。在这次课程设计中,我们回忆了很多以前的东西,也发现了很多的问题,以前都没遇见过的,收获很大。在对不同的功能代码是不一定可以完整的执行的,不过大概都是一样的。看着自己做的系统,我们自己就会又欣慰又难过,欣慰的是终于把它做出来了,虽然遇到很多困难,难过的是自己知道还有很多的缺乏,但是由于知识的有限,无法去完善,才知道“书到用时方恨少〞。此次成绩管理系统的设计让我们对Mysql数据库的了解更加深入,在整个是设计过程中,通过对把各个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论