您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 数据库教务管理系统课程设计
华北科技学院计算机系综合性实验实验报告课程名称《数据库原理与应用》实验学期2012至2013学年第1学期学生所在系部计算机学院年级2010专业班级计算机B10-3班学生姓名学号任课教师郭红实验成绩计算机系制华北科技学院计算机系综合性实验报告2《数据库原理与应用》综合性实验报告开课实验室:软件开发实验室(一)2012年12月7日实验题目《教务成绩管理系统》数据库设计一、实验目的利用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够正确应用各个阶段的典型工具进行表示。二、设备与环境(1)硬件设备:PC机一台(2)软件环境:安装Windows操作系统,安装数据库管理系统SQLServer2008等。三、实验内容1.需求分析功能需求:系统管理员:(用户名:Administrator密码:123456)能够对所有信息进行增加,删除,修改,查询。比如学生每门课程的成绩查询,老师所授课的情况,学生修学分的情况。能够维护数据库的正常运行。教师:(用户名:教师密码:职工号)学生成绩的录入,修改,查询。学生:(用户名:学号密码:学号)学生可以查询成绩,可以查看自己所学的得学分的情况,自己所学习的课程。数据需求:信息能够快速的输入到数据库里面,处理数据的方式是批处理,这样可以减轻系统的负担。姓名,性别,系部,课程名称,班级,是用字符串类型,成绩,学号,职工号,年龄,入学时间,课程号,运用的是整数型。数据流图:性能需求:系统处理的准确性和及时性:系统应该保证在一定的时间内准确的处理完信息。系统的可扩充性:课程的增加,学生信息的增加,系统不会因为增加信息反映过慢,不能给系统增加负担。系统的输入与输出:输入信息的时候能够快速的存储到数据库中,输出信息的时候要在短暂的时间内反应出来,否则的话就把错误信息反馈给用户。数据流名数据流来源数据流去向组成管理信息管理员学生表学生信息录入成绩教师学生表学生信息报表信息学生表成绩单学生信息华北科技学院计算机系综合性实验报告32.概念结构设计Student表:学号:Sno,姓名:Sn年龄:Age性别:Sex系部:Dept专业:Major年级:GradeCourse表:课程名:Cn课程号:Cno学分:Cs学时CtSC表:学号:Sno课程号:Cno成绩:Score职工号:WnoTeacher表:职工号:Wno职工姓名Wn年龄:Age职称:Prof薪水:Salarynn13.逻辑结构设计(1)关系模式的设计与优化学生学号姓名年级性别系部专业年龄学习课程成绩课程名课程号学分学时授课教师职称职工号姓名性别薪水华北科技学院计算机系综合性实验报告4关系模式的转换:Student(Sno,Sn,Age,Sex,Dept,Major,Grade)学号Sno是主码,Student关系模式中,Sno是唯一主码,也不存在部分依赖和传递依赖,所以Student关系也属于3NF,因为Student关系模式中,Sno是唯一决定因素,所以Student关系模式属于BCNF.Teacher(Wno,Wn,Age,Prof,Salary)职工号Wno是主码,Teacher关系模式中,Wno是唯一主码,没有任何属性对Wno有部分依赖和传递依赖,所以Teacher关系属于3NF,因为Teacher关系模式中,Wno是唯一决定因素,所以Teacher关系模式也属于BCNFCourse(Cno,Cn,Cs,Ct)课程号Cno是主码,Course关系模式中,Cno是唯一主码,不存在部分和传递依赖,Cno是唯一决定因素,所以Course关系模式属于BCNF.SC(Sno,Cno,Score)学号Sno和课程号Cno是主码,Sno和Cno共同决定成绩,没有其他属性对码有部分依赖和传递依赖,除了Cn和Sno以外没有其他决定因素,所以SC关系模式属于BCNF.关系模式的优化:Student(Sno,Sn,Age,Sex,Dept,Major,Grade)Teacher(Wno,Wn,Age,Prof,Salary)Course(Cno,Cn,Cs,Ct)(2)设计合适的视图视图v1:createviewv1(Sno,Sn,总学分,未修学分)asselectSC.Sno,Student.Sn,sum(Cs),24-sum(Cs)fromSC,Course,StudentwhereSC.Sno=Student.Snoandcourse.Cno=SC.CnoandSC.Score=60groupbySC.Sno,Student.Sn统计学生得到学分的情况,这样学生可以很清楚的看到自己所得到的学分的情况,能够时刻提醒自己还差多少分才修完课程,能够保证自己毕业前完成学业。视图AvgS:学生可以直接查询自己的各科平均成绩。createviewAvgS(Sno,Sn,AvgScore)asselectSC.Sno,Student.Sn,avg(Score)fromSC,StudentwhereSC.Sno=Student.SnogroupbySC.Sno,Student.Sn4.物理设计createuniqueindexSCIonSC(Sno,Cno)执行此命令后,为SC表建立一个索引名为SCI的唯一索引,此索引为Sno和Cno两列的复合索引,即对SC表中的行先按Sno的递增顺序索引,对于相同的Sno,又按Cno的递增顺华北科技学院计算机系综合性实验报告5序索引。系统本身已经有的索引是Student表是按照学号升序建立的唯一索引,Teacher表是按照职工号序建立的唯一索引,Course表是按照课程号的升序建立的唯一索引。5.数据库的实现(1)创建库、表应包括参照完整性、实体完整性、自定义完整性的定义createtableStudent(Snochar(10)primarykeynotnull,Snvarchar(20)notnull,Sexchar(2)check(Sexin('男','女')),Deptvarchar(20),Majorchar(20),Ageint,Gradeint,)createtableCourse(Cnochar(8)primarykeynotnull,Cnchar(10),Ctint,Csint,)(2)创建用户包括创建用户或角色,并授予相应的权限(用户设计至少3个,且设置合理)我为数据库创建了三个用户,分别是海艳,郭跃,系统管理员,对应的登录名分别是学生,老师,系统。华北科技学院计算机系综合性实验报告6创建一个学生用户,授予海艳查询自己的所有信息的成绩,自己只能查询自己的信息,具有一定的保密性。createlogin学生withpassword='123456'usecjbCreateuser海艳forlogin学生createviewv4asselect*fromSCwhereSno=(selectSnofromStudentwhereSn='海艳')grantselectonv4to海艳创建一个老师的用户,老师可以查询,修改学生的成绩。createlogin老师withpassword='111111'usecjbcreateuser郭跃forlogin老师grantselect(Score),update(Score)onSCto郭跃创建系统管理员用户,可以对所有信息的查询,删除,修改,插入。华北科技学院计算机系综合性实验报告7createlogin系统withpassword='112233'usecjbcreateuser系统管理员forlogin系统grantselect,insert,update,deleteonCourseto系统管理员grantselect,update,insert,deleteonStudentto系统管理员grantselect,update,insert,deleteonTeacherto系统管理员grantselect,update,insert,deleteonSCto系统管理员我还为数据库创建了一个角色,把学生表的查询权限给了李大伟,系统管理员,张丽华北科技学院计算机系综合性实验报告8(3)恰当使用触发器、存储过程和游标等相关技术(至少使用一种技术)。创建一个不能修改学生的姓名的触发器createtriggerS1onStudentforupdateasifupdate(Sn)beginprint'拒绝修改'rollbackend在Teacher表中创建一个如果插入记录就全部显示老师信息的触发器。createtriggerTonTeacherforinsertasselect*fromTeacher指定计算出王平的总成绩创建存储过程:createprocedurezcj(@snchar(10),@totalint)asselect@total=SUM(Score)华北科技学院计算机系综合性实验报告9fromStudent,SCwhereSn=@snandStudent.Sno=SC.SnogroupbyStudent.Sno执行部分:declare@totalintexeczcj'黄丽',@totaloutputselect'黄丽',@total四、实验结果及分析一开始学习数据库是觉得没什么用处,毕竟都自己没有什么实际的用处,随着长时间的学习,会的东西也越来越多,到现在能自己独立的完成《教务成绩管理系统》的数据库设计。觉得这是一门使用的语言。经过这次综合实验的设计,我们可以把以前的知识重新温习一遍,比如表的创建,插入语句,修改,查询的操作。还可以把以前不怎么理解的知识点,可以更好的掌握和理解。比如以前我对存储过程不是怎么清楚,通过我自己增加了一个指定计算出某学生的总成绩,我感觉对表建立一个存储过程,这样可以有针对性,能够更加直接的得到某人的信息,可以更加方便,快捷的查出某人的信息。以前我们查询某人的信息,得写出查询语句,如果要查询出来很多人得信息,要不断的写查询语句,浪费很长的时间。如果运用了存储过程,可以大大的减少时间,你只要把你要查找的姓名写上,就可以查找出你所想要的信息。综合实验的设计还可以使我们对建立一个比较大的数据库有整体的把握,可以知道用户的需求,数据的需求,功能需求,明白了建立一个数据库不是自己想怎么样就可以怎么样,要考虑到用户的要求。综合实验的设计,这样能让我们把所有的知识应用到实际当中,这样感觉自己真正的学到了一些东西,自己也有充实的感觉。通过一个学期对数据库的学习,自己可以很好的掌握一种编程的语言。华北科技学院计算机系综合性实验报告10教师评价评定项目ABCD评定项目ABCD需求分析清楚完整性设计概念结构符合需求数据库编程的使用逻辑结构设计合理操作熟练索引设计文字流畅安全性设计报告规范其他:评价教师签名:年月日
本文标题:数据库教务管理系统课程设计
链接地址:https://www.777doc.com/doc-3878131 .html