数据库课程设计_第1页
数据库课程设计_第2页
数据库课程设计_第3页
数据库课程设计_第4页
数据库课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

教务管理系统课程设计的目的通过数据库课程设计,培养学生数据库设计的综合能力。从需求分析和数据库逻辑、物理设计,到功能分析和应用程序的最终实现,让学生亲自动手参与一个具有一定规模的数据库应用系统的设计和开发,真正理解和掌握数据库设计和开发的思路和方法,加深对数据库系统,软件工程,程序设计语言的理论知识的理解和应用水平;在理论和实验教学根底上进一步稳固已学根本理论及应用知识并加以综合提高;学会将知识应用于实际的方法,提高分析和解决问题的能力,增强对手能力;并更好的理解和消化课本所学的知识,为毕业设计和以后工作打下必要根底。设计方案论证问题的提出教务管理工作是高等学校教育工作的一项重要内容,是整个学校管理的核心和根底。教务管理工作是指学校管理人员按照一定的教育方针,运用先进的管理手段,组织、协调、指挥并指导个方面人员的活动,以更高效率、高质量地完成各项教学任务,完成国家所制定的教育目标。教务管理工作是教学工作的中枢,是保证高校教学机制正常运转的枢纽,它是一工程的性、方案性、适应性、创造性和科学性很强的工作。教务管理在高校教学秩序稳定和教学质量的提高,关系到高校的开展和人才的培养,教务管理在高校中占有相当重要的地位。随着计算机技术的飞速开展和高校教育体制改革的不断深入,岳麓书院的传统教务管理方法、手段以及工作效率已不能适应新的开展需要,无法很好地完成教学管理工作。提高教务管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。同时,运用先进的信息技术,开发高校综合教务管理信息系统,是深化教务体制改革的有利措施。对现有人工数据采集、统计分析的流程进行了调查,并对软件系统实现的技术可行性进行了分析,我们认为《教务管理系统》具备开发的需求及条件。我们细致一对人工系统及软件系统实现测评的费用进行了计算及比照,得出的结论是使用软件系统可节省人力、物力,而且可以提高测评结果的准确性。东港学院目前的硬件设施满足本系统运行的需要。实现本系统需要的技术包括:SQL脚本的编程、Mysql数据库应用、B/S结构的软件开发技术。目前这些技术已经成熟。这些技术对计算机系的教师而言都是必须掌握的根本技术。此外,本软件系统开发本钱低,有较强的应用需求。数据采集节省了大量纸张,保护了环境。数据处理使用计算机进行,快速、准确。《教务管理系统》是个小型软件系统,短时间内完全可以按时开发完成。系统数据流图系统的数据流程如图-1所示图1系统的数据流程图根底数据管理“根底数据管理”用于维护整个教务系统正常运行所需的根底数据集,以确保教务系统有一个统一、标准的根底数据集,便于数据的共享使用,内容包括入学年份、学年学期、院系数据、专业设置、教研室情况等。教学方案管理“教学方案管理”用于维护学校中各系各专业的课程、课组方案安排信息,作为选课和毕业审查的标准,包括的功能有课程方案登记、课程方案审批、选课情况查询、选课信息审批等。学籍管理“学籍管理”主要包括了高校学籍管理的常用信息,提供对学生学籍根本信息录入、查询、修改、打印输出、维护等常用功能。课程管理“课程管理”主要负责对课程时间、地点的安排以及开课系列、教师的信息维护等功能。学生管理“学生管理”主要对学生的详细信息,考试成绩,交费情况,正常运转等功能的维护。各实体及其属性2全局E-R图如图-3所示图12全局E-R图概念结构向关系模式转换每个实体定义的属性如下:班级信息表:班级〔班级编号,年级,班级名称,班级简称,人数,导员〕籍贯代码表:籍贯代码表〔籍贯编号,籍贯〕民族代码表:民族代码表〔民族编号,民族〕政治面貌代码表:政治面貌代码表〔政治面貌编号,政治面貌〕学籍代码表:学籍代码表〔学籍编号,学籍名称〕选课表:选课〔编号,学号,课序号〕学生表:学生〔学号,姓名,性别,年龄,所在系,班级编号,政治面貌编号,民族编号,籍贯编号,学籍编号〕成绩表:成绩表〔编号,学号,课程编号,成绩,考试次数,是否补修,是否重考,是否已经确定考试成绩〕课程信息表:课程信息〔课程编号,课程名称,先修课,教师,系别,学分〕费用表:费用〔费用单号,学号,学费,住宿费,课本费,杂费,补考费〕课程表:课程表〔编号,课序号,课程编号,上课时间天,上课时间节,上课地点〕关系模式优化班级信息表:班级〔班级编号,年级,班级名称,班级简称,人数,导员〕籍贯代码表:籍贯代码表〔籍贯编号,籍贯〕民族代码表:民族代码表〔民族编号,民族〕政治面貌代码表:政治面貌代码表〔政治面貌编号,政治面貌〕学籍代码表:学籍代码表〔学籍编号,学籍名称〕选课表:选课〔学号,课程编号,课序号〕学生表:学生〔学号,姓名,性别,年龄,所在系,班级编号,政治面貌编号,民族编号,籍贯编号,学籍编号〕成绩表:成绩表〔学号,课程编号,成绩,考试次数,是否补修,是否重考,是否已经确定考试成绩〕课程信息表:课程信息〔课程编号,课程名称,先修课,教师,系别,学分〕费用表:费用〔费用单号,学号,学费,住宿费,课本费,杂费,补考费〕课程表:课程表〔课序号,课程编号,上课时间天,上课时间节,上课地点〕创立数据库翻开SQLServer企业管理器,新建一个数据库,名称为“教务管理系统”,完成数据库的设计。创立数据表〔1〕创立“班级”数据表CREATETABLE班级(班级编号VARCHAR(14)NOTNULL,年级VARCHAR(4),班级名称VARCHAR(30),班级简称VARCHAR(16),人数NUMERIC(3,0),导员VARCHAR(8))〔2〕创立“学生”数据表CREATETABLE学生(学号VARCHAR(14)NOTNULL,姓名VARCHAR(8),性别VARCHAR(2),年龄SMALLINT,所在系VARCHAR(20),班级编号VARCHAR(14),政治面貌编号VARCHAR(2),民族编号VARCHAR(2),籍贯编号VARCHAR(2),学籍编号VARCHAR(2))〔3〕创立“课程信息”数据表CREATETABLE课程信息(课程编号VARCHAR(8)NOTNULL,课程名称VARCHAR(30)NOTNULL,先修课VARCHAR(30),教师VARCHAR(8),系别VARCHAR(20),学分SMALLINT)〔4〕创立“课程表”数据表CREATETABLE课程表(课序号VARCHAR(14)NOTNULL,课程编号VARCHAR(8)NOTNULL,上课时间天INTNOTNULL,上课时间节INTNOTNULL,上课地点VARCHAR(20)NOTNULL)〔5〕创立“成绩表”数据表CREATETABLE成绩表(学号VARCHAR(14)NOTNULL,课程编号VARCHAR(8)NOTNULL,成绩SMALLINT,考试次数SMALLINT,是否补修VARCHAR(2),是否重考VARCHAR(2),是否已经确定考试成绩VARCHAR(2))〔6〕创立“费用”数据表CREATETABLE费用(费用单号VARCHAR(14)NOTNULL,学号VARCHAR(14)NOTNULL,学费MONEY,住宿费MONEY,课本费MONEY,杂费MONEY,补考费MONEY)〔7〕创立“选课”数据表CREATETABLE选课(学号VARCHAR(14)NOTNULL,课程编号VARCHAR(8)NOTNULL,课序号VARCHAR(14)NOTNULL,)〔8〕创立其他关键数据表CREATETABLE政治面貌代码表(政治面貌编号CHAR(2)NOTNULL,政治面貌VARCHAR(14))GOCREATETABLE民族代码表(民族编号CHAR(2)NOTNULL,民族VARCHAR(18))GOCREATETABLE学籍代码表(学籍编号CHAR(2)NOTNULL,学籍名称VARCHAR(8))GOCREATETABLE籍贯代码表(籍贯编号CHAR(2)NOTNULL,籍贯VARCHAR(18))GO数据库完整性在SQL查询分析器中通过如下代码创立数据表的主键及外键等表约束。.1实体完整性--主键关联字段 ALTERTABLE学生WITHNOCHECKADDCONSTRAINTPK_学生PRIMARYKEYCLUSTERED(学号)GOALTERTABLE学籍代码表WITHNOCHECKADDCONSTRAINTPK_学籍代码表PRIMARYKEYCLUSTERED(学籍编号)GOALTERTABLE成绩表WITHNOCHECKADDCONSTRAINTPK_成绩表PRIMARYKEYCLUSTERED(学号,课程编号)GOALTERTABLE政治面貌代码表WITHNOCHECKADDCONSTRAINTPK_政治面貌代码表PRIMARYKEYCLUSTERED(政治面貌编号)GOALTERTABLE民族代码表WITHNOCHECKADDCONSTRAINTPK_民族代码表PRIMARYKEYCLUSTERED(民族编号)GOALTERTABLE班级WITHNOCHECKADDCONSTRAINTPK_班级PRIMARYKEYCLUSTERED(班级编号)GOALTERTABLE籍贯代码表WITHNOCHECKADDCONSTRAINTPK_籍贯代码表PRIMARYKEYCLUSTERED(籍贯编号)GOALTERTABLE课程信息WITHNOCHECKADDCONSTRAINTPK_课程信息PRIMARYKEYCLUSTERED(课程编号)GOALTERTABLE选课WITHNOCHECKADDCONSTRAINTPK_选课PRIMARYKEYCLUSTERED(学号,课程编号)GOALTERTABLE课程表WITHNOCHECKADDCONSTRAINTPK_课程表PRIMARYKEYCLUSTERED(课程编号,课序号)GOALTERTABLE费用WITHNOCHECKADDCONSTRAINTPK_费用PRIMARYKEYCLUSTERED(费用单号)GO.2参照完整性ALTERTABLE学生ADDCONSTRAINTPK_学生_班级FOREIGNKEY(班级编号)REFERENCES班级(班级编号),CONSTRAINTPK_学生_籍贯代码表FOREIGNKEY(籍贯编号)REFERENCES籍贯代码表(籍贯编号),CONSTRAINTPK_学生_民族代码表FOREIGNKEY(民族编号)REFERENCES民族代码表(民族编号),CONSTRAINTPK_学生_政治面貌代码表FOREIGNKEY(政治面貌编号)REFERENCES政治面貌代码表(政治面貌编号),CONSTRAINTPK_学生_学籍代码表FOREIGNKEY(学籍编号)REFERENCES学籍代码表(学籍编号)GOALTERTABLE成绩表ADDCONSTRAINTPK_成绩表_学生FOREIGNKEY(学号)REFERENCES学生(学号)ONDELETECASCADEONUPDATECASCADE,CONSTRAINTPK_成绩表_课程信息FOREIGNKEY(课程编号)REFERENCES课程信息(课程编号)ONDELETENOACTIONONUPDATECASCADEGOALTERTABLE费用ADDCONSTRAINTPK_费用_学生FOREIGNKEY(学号)REFERENCES学生(学号)GOALTERTABLE课程表ADDCONSTRAINTPK_课程表_课程信息FOREIGNKEY(课程编号)REFERENCES课程信息(课程编号).3完整性约束命名子句ALTERTABLE学生ADD(COSTRAINTC1CHECK(学号BETWEEN20070001AND20079999),COSTRAINTC2CHECK(性别IN(‘男‘,‘女‘)COSTRAINTC3CHECK(年龄<30))ALTERTABLE成绩表ADDCOSTRAINTC4CHECK(成绩>=0AND成绩<=100)2.5物理结构设计〔索引创立等〕索引创立学生表按学号升序建唯一索引CREATEUNIQUEINDEX学生学号ON学生〔学号〕课程信息表按课程编号升序建唯一索引CREATEUNIQUEINDEX课程编号引ON课程信息〔课程编号〕选课表按学号升序和课程编号按降序建唯一索引CREATEUNIQUEINDEX选课引ON选课〔学号ASC,课程编号DESC〕成绩表按成绩降序排列建立索引CREATECLUSTERINDEX成绩降序ON成绩表〔成绩DESC〕系统使用了“SF_终止选课”和“SF_成绩提交”两个存储过程,分别实现结算选课、生成空白成绩单和老师提交最终的成绩单的功能。CREATEPROCSF_成绩提交@COURSEIDINTASBEGINTRAN--提交成绩,提交后不可以再修改UPDATE成绩表SET是否已确定成绩=’Y’WHERE课程编号=@COURSEIDINTAND成绩>0COMMITGOCREATEPROCSF_终止选课ASBEGINTRAN--应该单独有一个【终止选课】的功能,终止选课后即生成空的成绩单--所有学生将不允许更改课程信息,如果需要更改,必须单独申请,特殊处理。--终止选课一学年应该只能进行一次操作,实例没有制作开始选课的功能,终止--选课后在学生选课中仍然可以更改选择的课程。INSERTINTO成绩表〔学号,课程编号,成绩,考试次数,是否补修,是否重考,是否已经确定考试成绩〕SELECTDISTINCTA.学号,B.课程编号,0,1,’N’,’N’,’N’FROMANDRTRIM(A.学号)+RTRIM(B.课程编号)NOTIN(SELECTRTRIM(学号)+RTRIM(课程编号)FROM成绩表)--因为没有记录选课状态,上面的SQL语句加了判断,如果成绩表已有--该学号/课程,就不插入,实际应用如果是重复的,应该是补修和重考--的情况,应该更改已有信息的这些状态--还要注意SELECT语句加了DISTINCT说明,因为选课表中的一个序号--一个学生可能有多条选课COMMITGO结果与分析查询学号为20070003同学所缴纳的总费用图13查询学号为20070003同学所缴纳的总费用查询选修8号课程且成绩在90分以上的所以学生图14查询选修8号课程且成绩在90分以上的所以学生查询不及格同学的信息图15查询不及格同学的信息查询各个课程号、任课教师及相应的选课人数图16查询各个课程号、任课教师及相应的选课人数查询与“崔帅峰”在同一个系学习的学生图17查询与“崔帅峰”在同一个系学习的学生查询少数民族同学所在的班级名称图18查询少数民族同学所在的班级名称查询学号为2007001的同学的上课地点都在哪里查询学好为20070001的雪深的上课地点都在哪里。SELECT上课地点FROM课程表WHERE课程编号IN(SELECT课程编号FROM选课WHERE卡号=’20070001’)图19查询学号为2007001的同学的上课地点都在哪里插入一条学生记录INSERTINTO学生VALUES(‘20070031’,’杨一涛’,’男’,’22’,’计算机’,’004’,’2’,’1’,’05’,’0’)查询结果如图20所示图20插入一条学生记录对来自同一地方的学生求其平均年龄,并把结果存入数据库。首先在数据中建立一个新表,其中一列存放籍贯,另一列存放相应的学生平均年龄。CREATETABLE籍贯_年龄〔籍贯编号CHAR(2),AVG_年龄SMALLINT)然后对学生表按籍贯分组求平均年龄,再把籍贯和平均年龄存入新表中。INSERTINTO籍贯_年龄〔籍贯编号,AVG_年龄〕SELECT籍贯编号,AVG〔年龄〕FROM学生GROUPBY籍贯编号结果如图21所示图21对来自同一地方的学生求其平均年龄,并把结果存入数据库在接受考察期间,由于陈洁同学在各个方面表现十分突出,经支部大会讨论通过并经上级党委批准其成为正式党员,故须将其政治面貌改为党员。UPDATE学生SET政治面貌编号=’2’WHERE姓名=’陈洁’删除已毕业学生的信息DELETEFROM学生WHERE学籍编号=’2’定义视图建立建立计算机系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生CREATEVIEWCS(SNO,SNAME,SSEX,AGE)ASSELECT学号,姓名,性别,年龄FROM学生WHERE所在系=’计算机’WITHCHECKOPTION建立计算机系选修了8号课程的学生的视图CREATEVIEWXK_8(SNO,SNAME,AGE,GRADE)ASSELECT学生.学号,姓名,年龄,成绩FROM学生,成绩表WHERE所在系=’计算机’AND学生.学号=成绩表.学号AND成绩表.课程编号=’8’查询视图查询计算机视图中成绩小于80的学生的姓名及年龄SELECTSNAME,AGE,GRADEFROMXK_8WHEREGRADE<80查询结果如图22所示图22查询视图更新视图UPDATECS

温馨提示

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

评论

0/150

提交评论