大数据库课程设计报告材料.doc
word 数据库原理与应用课程设计报告题目:学生成绩管理系统 一 概述随着科技的开展,根本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的根本信息,学科根本信息,以与学生所学课程的考试成绩。要方便学生进展成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。 1.2设计环境 Microsoft SQL Server 2005二 需求分析高校学生的成绩管理工作量大、繁杂,人工处理非常困难。学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广阔教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。 能够进展数据库的数据定义、数据操纵、数据控制等处理功能,进展联机处理的相应时间要短。具体功能应包括:系统应该提供课程安排数据的插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生根本信息查询的功能。需求分析容: 一个学生可以选修多门课程,一门课程可供多名学生选修;一个学生选修一门课程会有一个成绩。 一个教师教授多门课程,一门课程由一名教师教授。 数据项是数据库的关系中不可再分的数据单位,以下分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2005建立“学生选课数据库,其根本表清单与表结构描述如下:1)课程信息(course): 课程号(o) char(10) primary key 定义为主键课程名ame) char(10) 非空课时(hour) char(10) 非空 | 学分credit char(4) 非空2学生信息(student): 学号(sno) char(10) primary key 定义主键(sname) char(10) 非空性别(ssex)char(2) 非空年龄(sage) char(2) 非空专业(smajor) char(10) 非空系别(sdepart) char(10) 非空3)成绩信息(score ): 学号(sno) char(10) primary key 定义主键课程号(o)char(10) 非空成绩(degree)char(10) 非空课程名( ame)char(10) 非空三 概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进展综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。学生信息表学生信息表某某学号系别年龄姓别专业课程信息图课程信息表课程名课程号 课时学分成绩图 成绩成绩课程名课程号学号学生信息表某某学号系别年龄性别专业选课课程信息表课程名课程号 课时学分 成绩成绩课程名课程号学号四 逻辑结构设计阶段E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。设计学生成绩管理数据库,包括课程、学生、成绩三个关系, 其关系模式中对每个实体定义的属性如下:课程信息表:课程号,课程名,教师号,学分此为联系“课程信息表所对应的关系模式。课程名为该关系的候选码。学生信息表:(学号,性别,年龄,专业,系别)此为联系“学生信息表所对应的关系模式。学号为该关系的候选码。成绩表:学号,课程号,课程名,成绩此为联系“输入所对应的关系模式。题目编号、管理号为该关系的候选码数据库中包含3个表,即课程信息(course),学生信息(student ),成绩信息(score )。数据库中用到的表:数据库表名关系模式名称备注Student学生学生学籍信息表Course课程课程根本信息表Score成绩选课成绩信息表Student根本情况数据表,结构如下:字段名数据类型约束控制说明Student _snoCharPrimary key学号Student _sncharNot NullStudent _sexchar男或女性别Student _departchar系别Student_agechar年龄Student_majorchar专业course数据表,结构如下:字段名数据类型约束控制说明course_ochar主键primary key课程号course_amecharnot null课程名course_hourintnot null课时course_scorenumeric(2,1)not null学分score情况数据表,结构如下:字段名数据类型约束控制说明score_ointnot null课程号course_snamecharnot null课程名student_snochar外部键学号scoreint成绩五 数据库的物理设计数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选择适宜的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存储模式进展性能评价、修改设计,经过屡次反复,最后得到一个性能较好的存储模式。数据库物理设计容包括记录存储结构的设计,存储路径的设计。学生成绩管理系统学生管理学生管理学生查询课程管理课程查询课程管理成绩管理成绩管理成绩查询退出系统退出系统六 数据库实施创建数据库create database STUDENT创建表在此学生成绩管理系统中需要创建三个表,即课程信息表、学生信息表和成绩表。创建数据库后,为STUDENT数据库添加数据表,步骤如下。(1) 新建查询窗口(2) 在查询窗口中键入如下SQL语句create table course(o char(10) primary key,ame char(10) not null, teanochar(10)Not null credit char(4), Not null执行上述SQL语句即可创建课程信息表相关表格create table student( sno char(10) primary key, sname char(10) not null, ssex char(2) not null,Sage char(2) not null,Majorchar(10) not null,Depart char(10) not null,)执行上述SQL语句即可创建学生信息表相关表格create table score(sno char(10),o char(10), cdegree char10, ame char(10), 执行上述SQL语句即可创建成绩表相关表格学生信息相关表格Snosnamessexsagemajordepart0901薛克强男 22软件计算机系0902波男 23通信计算机系0903宋丹丹女20会计金融系0904王恒文男22园林土木系0905网中男20软件计算机系课程信息相关表格oametnamecredit0301C语言王月敏20302信号与系统杜鹃0303微积分王可0304高等数学甸宝4成绩信息表Snoocdegreeame0901030390微积分0902030484高等数学0902030181C语言0903030279信号与系统0903030485高等数学0904030494高等数学七 数据库的运行和维护 1、当试运行数据库合格后,数据库开发设计的工作就根本完成了,接下来就是正式运行中的调试,因为该系统比拟简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在SQL SERVER中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。当然也可以利用其他各种方法进展数据维护。 2、数据操作数据库查询操作A.单表查询:1查询sno为09901学生的snameselect snamefrom studentwhere sno=' 0901'结果:2查询ssex为女并且sdepart为金融系的snameselect snamefrom studentwhere ssex ='女' andsdepart ='金融系'结果:3查询所有学生的和系别。select sname,Departfrom student结果:4查询Depart为计算机系的sname。select snamefrom studentwhereDepart ='计算机系'结果:5查询所有学生所在院系名称select distinct Departfrom student结果:6查询学生信息表中年龄小于21和年龄大于21的学生的和系别select sname,Departfrom studentwhere sage>21 or sage<21结果:B.嵌套查询 查询选修了0304这门课的所有学生的学号、年龄、院系Select sno,sname,sage,DepartFrom studentWhere sno in (select snoFrom scoreWhere o=0304)查询结果3、数据库更新操作A.插入数据向Student表中添加一项记录:昇昇,学号:0907,性别:男,年龄:22专业:信息管理,系别:金融系InsertIntoStudent1(Sno,Sname, Ssex,sage,major,depart)Values('0907',' 昇昇','男',' 22',' 信息管理','金融系')B.修改数据修改的学号为0908:Update StudentSet Sno=0908Where Sname=波;C.删除数据删除所有金融学生的记录Delete from studentWhere(depart=金融系);4、视图的操作:数据库视图的定义创建和删除、查询和更新A.查询所有学生选课的信息,包括学号、课程号、课程名、成绩createview score1asselect student.sno'学号',student.sname'学生名',classo'课程号',classame'课程名',score.degree'成绩'from student,class,scorewhere student.sno=score.sno and classo=scoreo Go查询结果B.更新视图:(1)修改信息:将宋丹丹的名字改为宋丹Update score1set 学生名='宋丹丹'where 学生名='宋丹'(2)删除信息:删除视图score1中王恒文的记录deletefrom scorewhere 学生名='王恒文'八 总结 设计心得经过数据库的课程设计,我对数据库的理解又加深了一步,从简单的理论到实际上机操作中的种种困难,都必须自己去摸索和克制。而当解决了困难以后,我发现自己根本能将书本上的章节都融会贯穿了,从而也达到了复习的效果。纵观整个设计,要想完成一个数据库系统,最重要的的是要彻底理解数据库设计的六个根本步骤,与每个根本步骤要完成的任务,要实现的容。此外,在设计整体和局部E-R图时,实体和属性的选择,以与实体于实体间的联系时,都是在经过了几次修改,不断的研究系统性能的情况下才完成的。而这每一次的修改,又牵动了后续的进展,经过这样反复的修改和思考,才使得系统的模型基于成熟,所以说一个好的系统是需要不断修改不断完善才能成功的。最后,此次的课程设计确实让我受益匪浅。起码在已有的水平上,我的理论与实践都有了长足的进步。这对以后的设计也是一笔宝贵的财富。13 / 13