学生成绩管理系统-数据库课程设计报告.doc
《学生成绩管理系统-数据库课程设计报告.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统-数据库课程设计报告.doc(13页珍藏版)》请在咨信网上搜索。
学生成绩管理系统 数据库课程设计报告 1需求分析 1.1 用户需求概述 本系统为学生成绩管理系统,该系统开发得主要目得就是使得学生得成绩管理工作更加清晰、条理化、自动化,实现对学生成绩得集中统一得管理。具体完成通过用户名与密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。本系统主要实现对学生成绩得管理,需要完成得主要功能有: (1)通过用户名与密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能,容易地完成学生信息得查询操作。 (2)设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份与恢复等方面得功能要求。 1、2 数据需求 Student表: sno Char(8) 不允许为空 sname Char(10) 不允许为空 Ssex Char(2) 不允许为空 sbirth Datetime(8) 允许为空 class Char(4) 不允许为空 type Char(7) 允许为空 score表结构: sno Char(8) 不允许为空 cno Char(5) 不允许为空 degree Float(8) 不允许为空 Course表: cno(主键) Char(5) 不允许为空 cname varchar(10) 不允许为空 tno char(3) 不允许为空 Teacher表 tno char(5) 不允许为空 tname varchar(10) 不允许为空 depart varchar(8) 不允许为空 Tsex char(2) 不允许为空 Tbirth datetime , 允许为空 prof char(6) 允许为空 2概念设计内容 2、1 概念设计综述 由需求分析得结果可知,本系统设计得实体包括: (1)学生基本信息:学号,姓名,性别,地址,年龄,专业. (2)课程基本信息: 课程名,课程号,分数,学时,学分。 这些实体间得联系包括: (1)学生(学号,姓名,性别,年龄,地址,系别),其主关键字为学号; (2)课程(课程名,课程号,学时,学分),其中主关键字为课程号; (3)成绩(课程号,学号,分数)其中主关键字为学号与课程号。可以与学生关系模式合并为:学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。 2.2 E—R模型如下: 3规范化设计 1。范式得判断条件: 第一范式:如果一个关系模式R得所有属性域都就是原子得,我们称关系模式R属于第一范式; 第二范式:若关系模式R满足第一范式,且每一个非主属性完全函数依赖于码,则关系模式R满足第二范式; BC范式:对于R中所有得函数依赖,下面至少有一个成立(α—>β就是平凡得,α就是模式R得一个超码); 第三范式:在BC范式得判断条件上加多一个条件:β-α中每个属性A都包含在R得一个候选码中。 2。本关系模型得判断: A、对于我设计得关系模式中所有实体集与关系集,每一个属性得属性域都就是不可再分得,都具有原子性,因此由该关系模式转换而来得关系模型符合第一范式得要求。 B、对于由关系模式中得联系集转换而来得关系模型,因为它们得属性都就是参加关系得实体集得主码,都完全依赖于对应关系集得主码且都就是非平凡得函数依赖,因此这些关系模型满足2NF,3NF,BCNF; 4数据库逻辑设计 4、1 关系模型 与设计得关系模式相对应得SQL语句如下: 4、2、1创建数据库: create database ssh on ( name=ssh, 'e:\database\ssh、mdf’, size=1) log on ( name=ssh1, ’e:\database\ssh1、ldf’, size=1) 4、2、2创建数据表 (1) student表 use ssh create table student ( sno char(8) primary key, sname char(10) not null, Ssex char(2) not null, Sbirth datetime, class char(4) not null semail varchar(20)) (2) score表 create table score (sno char(8) not null, cno char(4) not null, degree float not null) (3) course表 create table course (cno char(5) not null primary key, cname varchar(10) not null, tno char(3) not null ) (4) teacher表 create table teacher (tno char(5) not null primary key, tname varchar(10) not null, depart varchar(8) not null, Tsex char(2) not null, Tbirth datetime , prof char(6) ) 4、2 编程性结构 4、2、1创建存储过程 (1) 创建一个存储过程。 用来显示成绩表中得课程号在课程表中并且所任教师性别为男、所在部门就是计算机系得成绩表中得列 create proc student_11 as select * from score where cno in (select cno from course ,teacher where course、tno=teacher、tno and depart='计算机系’ and tsex='男') 调用此存储过程 Exec student_11 (2) 创建一个带输入参数得存储过程。 调用此存储过程时,给出一个学生名,显示出此学生得学号,姓名,所学课程号,课程名称与对应得成绩 create proc student_name sname varchar(10) as select student、sno,sname,scoreo,degree cname from student,score,course where student、sno=score、sno and scoreo=courseo and sname=sname 调用此存储过程,(此例就是输出姓名为历史得学生得信息) exec student_name '历史' (3) 创建一个存储过程,传递一个学生姓名. 先判断此学生就是否有邮箱,如果有,则显示此学生得姓名,邮箱地址,学号,班级;如果没有得话,输出此句话’the semail is empty' create proc student_email sname varchar(10) as begin if (select semail from student where sname=sname) is null begin print’the semail is empty' end else select sname,semail,sno,class from student where sname=sname end 调用此存储过程 exec student_email ’super' 当给出姓名得那个学生没有邮箱地址时,则会显示如下内容。 exec student_email dfdf’ 4、2、2触发器 (1) 创建一个触发器。 来检查学生得邮箱地址就是否相同,如果相同,输出’inserting fail’,并且回滚事务;如果不相同,则插入成功。 create trigger studentinsert on student after insert as if (select semail from inserted where semail in (select semail from student)) is not null begin print ’inserting fail' rollback transaction end else print’insering succeed’ 向学生信息表中插入一条记录,检验就是否成功插入 insert into student values('114',’lengbing’,’女',’1985-12-12’,'11’,'’,'一般’ ) (2) 在成绩表中建立一个触发器, 当向表中添加记录时,此学生得成绩都乘以1、2 create trigger scoreupdate on score after insert as update score set degree=degree*1、2 from score where sno in (select sno from inserted ) 向表中插入一条记录,检验触发器就是否有用。 insert into score values(’108','01’,'56’) 4、2、3自定义函数 (1) 创建一个用户自定义函数,输出与指定得学生同班得学生个数 create function studentcount(sno char(5))returns int begin declare counter int select counter=count(*) from student where class=(select class from student where sno=sno) return counter end 调用此自定义函数(本例就是查找与学号102同班得学生个数) declare a int set a=dbo、studentcount(’102’) print convert(char(3),a) (2) 创建一个用户自定义函数,用于输出同一个班级中得学生信息 create function studentclass (class char(5)) returns table return(select * from student where class=class) 调用自定义函数(本例就是输出12班得学生信息) select * from studentclass('12’) 4、3数据操作 4、3、1 插入 (1)向学生表插入信息 insert into student values(’101’,’生活’,'女',’1983-09-18’,’11') insert into student values('102','风尘',’男’,'1984—01—01','11') insert into student values('103’,’离开',’男’,’1984—01—01’,’11') insert into student values('104’,’流浪',’女’,'1984—11-11’,’11') insert into student values('105','生命','男','1984—12—05',’13') insert into student values(’106',’无悔’,'女’,’1984—11-01’,'13’) insert into student values(’107','历史','女’,'1984—10-01','12’) insert into student values('108’,’风尘',’男’,’1985-9-08’,’11’) insert into student values('109’,’活着’,’男’,’1985—12-12’,'12’) insert into student values(’110',’傻瓜’,’女’,'1985-08—28',’12') 查瞧记录 Select * from student (2)向成绩表中添加 insert into score values('101',’01',88) insert into score values('101’,’02',85) insert into score values(’102’,’02',80) insert into score values(’101’,'03',88) insert into score values(’102’,’02’,85) insert into score values(’102',’03',80) insert into score values('103','01',83) insert into score values('103','02',85) insert into score values(’103','03',90) insert into score values(’104’,’01’,60) 查瞧记录 Select * from score (3)向教师表中添加数据 insert into course values('01’,'计算机’,’11’) insert into course values('02','网络管理','12') insert into course values(’03’,’专业英语’,’13') insert into course values('04’,'软件工程',’14') 查瞧记录 Select * from course (4)向课程表中添加数据 insert into teacher values(’11’,'无意','计算机系',’男’,’1973-4—5',’教授') insert into teacher values(’12’,’生活’,'计算机系',’女','1975—12—1','副教授') insert into teacher values('13’,'没有',’管理系','女’,'1975-3—3’,’副教授’) insert into teacher values('14','离开','英语系','男','1973-5—5',’教授’) 查瞧记录 Select * from teacher 4、3、2查询 (1) 查询成绩大于学号为101得学生得课程为02得成绩得所有列。 select * from score where degree>(select degree from score where sno=’101' and cno='02’) (2) 查询课程号01大于课程号02得最大值、并以分数降序排序得成绩表中所有列 select * from score s where so='01’ and s、degree〉=(select max(degree) from score y where yo=’02’ ) order by degree desc go select max(degree) as ”02max" from score where cno='02’ (3) 查询性别为男得学号,姓名,班级,课程号与成绩得学生 select student、sno,student、sname,student、class,scoreo,score、degree from student,score where student、sno=score、sno and ssex=’男’ (4) 查询成绩在60到80之间得所有列 select * from score where degree between 60 and 80 (5) 查询score表中至少有5名学生选修得并以0开头得课程得平均分 select avg(degree) as "平均分",cno from score where cno like '0%’ group by cno having count(*)>=5 4、3、3创建数据类型 创建一个email自定义数据类型 exec sp_addtype email, 'varchar(20)’ , 'null’ 修改student表中得semail数据类型为email类型 alter table student alter column semail email 4、3、4向表中添加字段 向student表添加type,semail,,b并且邮件地址有check约束 alter table student add type char(7) alter table student add semail varchar(20) null constraint ck_sem check (semail like '%%') alter table teacher add tel varchar(15) 4、3、5创建视图 (1) 创建所有11班得学生信息得视图 create view student11 as select * from student where class=’11' 查瞧视图中得记录 select * from student11 (2) 创建视图course_degree 其中得内容就是选修计算机课程得学生信息,包括(sno,sname,cno,cname,degree),创建时加上with check option create view course_degree(sno,sname,cno,cname,degree) as select score、sno,sname,scoreo,cname,degree from course ,student, score where scoreo=courseo and student、sno=score、sno and cname=’计算机' with check option 查瞧视图中得记录 select * from course_degree (3) 创建一个视图,其中得内容就是成绩表中每门课程得 create view average as select avg(degree) as ’平均分' from score group by cno 查瞧视图中得记录 select * from average (4) 创建视图其中得内容就是所有男教师与男学生得name,sex,birth create view man as select sname as name,ssex as sex,sbirth as birth from student where ssex='男’ union select tname,tsex,tbirth from teacher where tsex='男’ 查瞧视图中得记录 select * from man 5实验总结与感想。 通过这次得课程设计,使我了解了更多数据库系统概念这门课程,对以前不太理解与熟悉得内容有更多得掌握。在我设计得学生成绩管理系统中,虽然一开始我对这个系统怎样设计完完全全没有概念,但就是如果仔细得想一下,还就是可以找到出发点得。首先要建立一个完整得管理系统,就必须明白这个系统所包含得基本内容、处理一些怎样得信息等。最主要得就是画出她们得E—R图,便可直观得瞧出她们关系。在设计得时候,有时候也会感到没有思路了,或许就是只有一点点得头绪,可经过对图得分析与认真观察她们得关系后,便有了新得思路与闪光点。最后根据自己得整理资料将每一步都运用SQL语言执行出来,并且瞧以下就是否符合结果要求。我想经过这次课程设计可以更好得将所学知识运用到实际中去,也让我加深了对数据库知识得认识与了解。在这次实践设计过程中,我懂得了如何将所学得理论知识运用到实际中去,使得所学得知识能够融会贯通。同时,在课程设计过程中,我懂得了许多知识,增加了我对数据库得兴趣 ,今后一定努力得学习,在实践中增加自己得学习乐趣,让自己更加充实。 最后,感谢老师一学期来对我们得辛勤教导.- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 数据库 课程设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文