.;.数据库原理与应用课程设计报告题目:学生成绩管理系统学校:专业班级:学生姓名:学号:指导教师:2012年12月.;.一概述1.1目的与要求随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。1.2设计环境MicrosoftSQLServer2005二需求分析1.1信息需求高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。1.2数据需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。1.3功能需求具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生基本信息查询的功能。1.4安全性与完整性要求需求分析内容:①一个学生可以选修多门课程,一门课程可供多名学生选修;一个学生选修一门课程会有一个成绩。②一个教师教授多门课程,一门课程由一名教师教授。.;.2.数据流图3.数据字典数据项是数据库的关系中不可再分的数据单位,以下分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQLServer2005建立“学生选课”数据库,其基本表清单及表结构描述如下:1)课程信息(course):|课程号(cno)char(10)primarykey定义为主键|课程名cname)char(10)非空|课时(hour)char(10)非空|学分(credit)char(4)非空.;.2学生信息(student):|学号(sno)char(10)primarykey定义主键|姓名(sname)char(10)非空|性别(ssex)char(2)非空|年龄(sage)char(2)非空|专业(smajor)char(10)非空|系别(sdepart)char(10)非空3)成绩信息(score):|学号(sno)char(10)primarykey定义主键|课程号(cno)char(10)非空|成绩(degree)char(10)非空|课程名(cname)char(10)非空三概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。1.数据库的局部E-R图学生信息表学生信息表姓名学号系别年龄姓别专业.;.课程信息图成绩图课程信息表课程名课程号课时学分成绩成绩课程名课程号学号.;.2.数据库完整E-R图四逻辑结构设计阶段E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。设计学生成绩管理数据库,包括课程、学生、成绩三个关系,其关系模式中对每个实体定义的属性如下:课程信息表:(课程号,课程名,教师号,学分)此为联系“课程信息表”所对应的关系模式。课程名为该关系的候选码。学生信息表姓名学号系别年龄性别专业选课课程信息表课程名课程号课时学分成绩成绩课程名课程号学号.;.学生信息表:(学号,姓名,性别,年龄,专业,系别)此为联系“学生信息表”所对应的关系模式。学号为该关系的候选码。成绩表:(学号,课程号,课程名,成绩)此为联系“输入”所对应的关系模式。题目编号、管理号为该关系的候选码数据库中包含3个表,即课程信息(course),学生信息(student),成绩信息(score)。数据库中用到的表:数据库表名关系模式名称备注Student学生学生学籍信息表Course课程课程基本信息表Score成绩选课成绩信息表Student基本情况数据表,结构如下:字段名数据类型约束控制说明Student_snoCharPrimarykey学号Student_sncharNotNull姓名Student_sexchar‘男’或‘女’性别Student_departchar系别Student_agechar年龄Student_majorchar专业course数据表,结构如下:字段名数据类型约束控制说明course_cnochar主键(primarykey)课程号course_cnamecharnotnull课程名course_hourintnotnull课时course_scorenumeric(2,1)notnull学分score情况数据表,结构如下:字段名数据类型约束控制说明score_cnointnotnull课程号course_snamecharnotnull课程名student_snochar外部键学号scoreint成绩.;.五数据库的物理设计数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储结构的设计,存储路径的设计。1.系统结构设计1.1系统功能模块六数据库实施创建数据库createdatabaseSTUDENT创建表在此学生成绩管理系统中需要创建三个表,即课程信息表、学生信息表和成绩表。创建数据库后,为STUDENT数据库添加数据表,步骤如下。(1)新建查询窗口(2)在查询窗口中键入下列SQL语句createtablecourse(cnochar(10)primarykey,cnamechar(10)notnull,teanochar(10)Notnullcreditchar(4),Notnull)执行上述SQL语句即可创建课程信息表相关表格学生成绩管理系统学生管理学生管理学生查询课程管理课程查询课程管理成绩管理成绩管理成绩查询退出系统退出系统.;.createtablestudent(snochar(10)primarykey,snamechar(10)notnull,ssexchar(2)notnull,Sagechar(2)notnull,Majorchar(10)notnull,Departchar(10)notnull,)执行上述SQL语句即可创建学生信息表相关表格createtablescore(snochar(10),cnochar(10),cdegreechar(10),cnamechar(10),执行上述SQL语句即可创建成绩表相关表格学生信息相关表格Snosnamessexsagemajordepart0901薛克强男22软件计算机系0902陈波男23通信计算机系0903宋丹丹女20会计金融系0904王恒文男22园林土木系0905沈网中男20软件计算机系课程信息相关表格Cnocnametnamecredit0301C语言王月敏20302信号与系统杜鹃2.50303微积分王可2.50304高等数学刘甸宝4.;.成绩信息表SnoCnocdegreecname0901030390微积分0902030484高等数学0902030181C语言0903030279信号与系统0903030485高等数学0904030494高等数学七数据库的运行和维护1、当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,因为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在SQLSERVER中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。当然也可以利用其他各种方法进行数据维护。2、数据操作数据库查询操作A.单表查询:(1)查询sno为09901学生的snameselectsnamefromstudentwheresno='0901'结果:(2)查询ssex为’女’并且sdepart为’金融系’的snameselectsnamefromstudentwheressex='女'andsdepart='金融系'结果:.;.(3)查询所有学生的姓名和系别。selectsname,Departfromstudent结果:(4)查询Depart为计算机系的sname。selectsnamefromstudentwhereDepart='计算机系'结果:(5)查询所有学生所在院系名称selectdistinctDepartfromstudent结果:(6)查询学生信息表中年龄小于21和年龄大于21的学生的姓名和系别selectsname,Departfromstudentwheresage21orsage21结果:.;.B.嵌套查询查询选修了0304这门课的所有学生的学号、姓名、年龄、院系Selectsno,sname,sage,DepartFromstudentWheresnoin(selectsnoFromscoreWherecno=’0304’)查询结果3、数据库更新操作A.插入数据向Student表中添加一项记录:姓名:杨昇昇,学号:0907,性别:男,年龄:22专业:信息管理,系别:金融系InsertIntoStudent1(Sno,Sname,Ssex,sage,major,depart)Values('0907','杨昇昇','男','22','信息管理','金融系')B.修改数据修改的学号为0908:UpdateStudentSetSno=’0908’WhereSname=’陈波’;.;.C.删除数据删除所有金融学生的记录DeletefromstudentWhere(depart=’金融系’);4、视图的操作:数据库视图的定义(创建和删除)、查询和更新A.查询所有学生选课的信息,包括学号、姓名、课程号、课程名、成绩createviewscore1asselectstudent.sno'学号',student.sname'学生名',class.cno'课程号',class.cname'课程名',score.degree'成绩'fromstudent,class,scorewherestudent.sno=score.snoandclass.cno=score.cnoGo查询结果B.更新视图:(1)修改信息:将宋丹丹的名字改为宋丹Updatescore1set学生名='宋丹丹'where学生名='宋丹'.;.(2)删除信息:删除视图score1中王恒文的记录deletefromscorewhere学生名='王恒文'八总结设计心得经过数据库的课程设计,我对数据库的理解又加深了一步,从简单的理论到实际上机操作中的种种困难,都必须自己去摸索和克服。而当解决了困难以后,我发现自己基本能将书本上的章节都融会贯通了,从而也达到了复习的效果。纵观整个设计,要想完成一个数据库系统,最重要的的是要彻底理解数据库设计的六个基本步骤,及每个基本步骤要完成的任务,要实现的内容。此外,在设计整体和局部E-R图时,实体和属性的选择,以及实体于实体间的联系时,都是在经过了几次修改,不断的研究系统性能的情况下才完成的。而这每一次的修改,又牵动了后续的进行,经过这样反复的修改和思考,才使得系统的模型基于成熟,所以说一个好的系统是需要不断修改不断完善才能成功的。最后,此次的课程设计确实让我受益匪浅。起码在已有的水平上,我的理论与实践都有了长足的进步。这对以后的设计