1、数据库原理课程设计报告设计题目 学生成绩管理系统 专业班级学 号学生姓名指导教师同组人起止日期 2011年1月 10日至1月 20日信息工程系目录1。问题描述21。1背景21.2功能要求2。需求分析32.1数据流程图32.2数据字典。.。.。.。.。.。43.概念结构设计53。1 E-R图54。逻辑结构设计65.物理结构设计76。角色与触发器设计97.数据库的实施和维护118。结束语138答辩与成绩考核14101。问题描述1。1背景在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。
2、但是,我们看到,其实我们学校的学生成绩管理系统在很多方面作的不是很完善,功能方面也有欠缺.随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理.几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量.该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩.要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来.1。2功能要求该学生成绩管理系统,实现简单的成绩查询、课程查询、学生查询等
3、操作,并能实现简单的数据统计.(一) 学生查询 1、学生信息修改 修改选中当前学生的信息。 2、学生信息的添加 增加新学生的信息。 3、学生信息删除 删除选中当前学生信息。(二) 课程查询1、课程修改实现对课程名、学时、学分的修改.2、课程添加 对一门新开设的课程进行录入,并存入数据库.3、 课程删除对一门不在开设的课程进行删除,并从数据库中删除。(三) 成绩查询1、 成绩修改先选中要修改的成绩信息,然后进行修改。2、 成绩添加直接弹出添加对话框,然后进行添加。3、 成绩删除先选中要删除的成绩信息,然后直接删除。需求分析2。1数据流程图学生信息学生信息管理基本信息录入D1学生信息返回D2D3基
4、本信息录入课程信息成绩信息成绩信息管理课程信息管理基本信息录入图2-1系统的数据流图2。2数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“StudentCourse”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名关系模式名称备注Student学生学生学籍信息表Course课程课程基本信息表Score成绩选课成绩信息表Student基本情况数据表,结构如下:字段名字段类型Not Null说明Student _snoCharPrimary key学号Student _snamec
5、harNot Null学生姓名Student _sexchar男或女性别Student _deptchar系别Student_agechar年龄Student_addresschar地址Course数据表,结构如下:字段名字段类型约束控制说明Course_cnochar主键(primary key)课程号Course_cnamecharnot null课程名称Course_hourintnot null课时Course_scorenumeric(2,1)not null学分Score情况数据表,结构如下:字段名字段类型约束控制说明Course_cnochar外部键课程号Student_snoc
6、har外部键学号Scoreint成绩2.3存储过程(1)在Course中插入一元组CREATE PROCEDURE Course_prodASInsertInto CourseValues(1018,微机原理,36,3。5)(2)创建一个查询过程CREATE PROCEDURE Course_prod1ASSelect From Course(3)创建一个删除存储过程CREATE PROCEDURE Course_prod2ASDelete From CourseWhere Course_cno=10073。概念结构设计3。1 ER图由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信
7、息:学号,姓名,性别,地址,年龄,专业。学生基本信息实体姓名学号年龄性别地址专业(2)课程基本信息: 课程名,课程号,学时,学分。课程基本信息实体课程名课程号学时学分(3)成绩基本信息:课程号,学号,分数.成绩基本信息课程号学号分数这些实体间的联系包括:每位学生可以学习多门课程,每门课程可供多位学生学习。由上述分析可得到系统的E-R图:选修课程成绩学生课程号课程名学时 学分分数学号姓名性别系别 地址年龄NN4。逻辑结构设计41将ER图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况: 一个m:n联系转换为一个独立的关系模式.
8、与该联系相联的个实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合. 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并.如果转换为一个独立的关系模式,则与该联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并.3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同的关系模式可合并.具体的基本ER图向关系模式的转化如下:(1)学生(学
9、号,姓名,性别,年龄,地址,系别),其主关键字为学号;(2)课程(课程名,课程号,学时,学分),其中主关键字为课程号;(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号.可以与学生关系模式合并为:学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。42 模型优化关系模式学生,课程不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF.5。物理结构设计1 建立数据表(1) 学生信息表的建立。CREATE TABLE Student (Student_sno char(10) primary key,Student_sname char(10) not null
10、,Student_sex char(2),Student_dept char(10),Student_age char(10),Student_address char(10);(2) 课程信息表的建立 CREATR TABLE Course (Course_cno char(10) primary key, Course_cname char(10) not null, Course_hour int, Course_score float(8));(3) 分数信息表的建立CREATE TABLE Score(Course_cno char(10), Student_sno float(8)
11、, Score float(8));2 建立视图(1) 查询学生基本信息的视图定义如下:CREATE VIEW Student_view(Student_sno,Student_sname,Student_sex,Student_dept,Student_age,Student_address)ASSELECT *FROM Student(2) 课程信息查询的视图定义如下:CREATE VIEW Course_view(Course_cno, Course_cname, Course_hour, Course_score)ASSELECT FROM Course(3) 成绩信息查询视图定义如下
12、: CREATE VIEW Score_view(Course_no, Student_sno, Score float)ASSELECT FROM Score3 建立索引(1)为学生Student表的学生姓名建立索引。Create cluster index snameindex on Student(Student_sname);(2)为课程Course表的课程名建立索引。Create cluster index cnameindex on Course(Course_cname);6。角色与触发器设计1.创建一个角色(1) 为普通学生创建一个角色R1,并对其授权查询操作。CREATE R
13、OLE R1GRANT SELECTON TABLE Student,Course,ScoreTO R1;在在数据库目录下的角色上右击,选择新建数据库角色.单击确定,再选择角色R1属性选择权限勾选三个表的SELECT权限,确定即可.(2)为老师创建一个角色R2,并对其授权查询、插入、更新、删除操作.CREATE ROLE R2GRANT SELECT,INSERT,UPDATE,DELETEON TABLE Student,Course,ScorseTO R2;方法同(1), 第步权限选择如下图:2。创建触发器当删除Student表中某一学生基本信息时,触发Course表,删除相应的记录。CR
14、EATE TRIGGER Studentdelete ON Student FOR DELETE AS DELETE Course FORM DELETED WHERE Course.sno=DELETED.sno7。数据库的实施和维护7.1数据库的实施1。数据插入插入新的课程,课程号为1018,课程名为微机原理,学时为36,学分为3.5INSERTINTO Course VALUES(1018,微机原理,36,3.5);插入学号为200803学生的微机原理成绩,分数为81INSERTINTO Score VALUES(1018,200803,81);2。查询数据查询学号为200801的学生信
15、息:Select From StudentWhere Student_sno = 200801查询名字为张三的学生成绩及课程名:Select Score,Course_cnameFrom Score,CourseWhere Student_sno in(Select Student_snoFrom StudentWhere Student_sname=张三and Course.Course_cno=Score。Course_cno);3。删除数据删除课程号为1018的课程DELETEFROM CourseWhere Course_cno=1018删除学生柴胡的所有成绩记录DELETEFROM
16、ScoreWhere Student_sno in(SELECT Student_snoFROM StudentWHERE Student_sname=柴胡);7。2。数据库的维护数据库试运行合格后,数据库开发工作就基本完成,即可投入正式运行,但是,由于应用环境在不断变化,数据库运行过程中物理结构存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。数据库运行一段时间后,由于记录不断增,删,改,会使数据库的物理存储情况变坏降低了数据的存取效率,数据库的性能下降,这时候作为数据库管理员就要对数据库进行重组织或部分重组织(只对频繁增、删的表进行重组
17、织).DBMS一般都提供数据重组织的实用程序。在重组织的过程中,按原设计要求重新安排存储的位置、回收垃圾、减少指针链等,提高系统性能。数据库的重组织并不修改原设计的逻辑和物理结构,而数据库的重构造则不同,它是指部分修改数据库的模式和内模式.由于数据库应用环境发生变化,增加了新的应用或者新的实体,取消了某些应用,有的实体与实体间的联系也发生改变,使原有的数据库设计不能满足新的需求,需要调整数据库的模式和内模式。8。结束语在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督
18、。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,ER图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计
19、报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。8答辩与成绩考核答辩问答成绩评定项 目权重成绩1、设计过程中勤、能力、水平、态度等方面0。22、说明书书写及作品质量程度0.43、答辩0.24、系统0.2总 成 绩