数据库课程设计-运动会成绩管理系统.doc
《数据库课程设计-运动会成绩管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计-运动会成绩管理系统.doc(33页珍藏版)》请在三一办公上搜索。
1、数据库原理与应用课程设计说 明 书题 目: 运动会成绩管理系统 学 院: 班 级: 完成人:组号: 姓名:XXX 学号:XXXX 成绩: 姓名:XXX 学号:XXXX 成绩: 指导教师: 山 东 科 技 大 学2014年6月27日课 程 设 计 任 务 书一、课程设计题目: 运动会成绩管理系统 二、课程设计应解决的主要问题:(按实现的系统功能)(1)运动项目、运动员、运动成绩以及班级名次的记录存储(2)添加修改和删除项目表、运动员表和成绩表信息 (3)自动生成班级名次表(触发器)(4)运动员表有改动时,自动更新班级名次表(触发器)(5)成绩表有改动时自动对成绩表中记录按项目排名次(触发器) (
2、6)成绩表自动排名自动更新班级名次表中班级总分(存储过程)(7)更新班级总分之后自动对班级排名(学院名次,学校名次)(存储过程)(8)对成绩表进行初次排名功能(9)通过项目号获得相应项目的排名表(表值函数)(10)通过学号或姓名或运动号获得某学生运动成绩表(表值函数) (11)通过班级名称获得某班所有运动员运动成绩表(表值函数) (12)通过学院名称获得学院所有运动员运动成绩表(表值函数) (13)获得全校所有运动员的运动成绩表(表值函数) (14)获得全校所有班级总分数以及在学院排名和早全校排名(表值函数) 3、 任务发出日期: 2014-4-25 课程设计完成日期: 2014-6-27 小
3、组分工说明小组编号 题 目: 运动会成绩管理系统 小组分工情况:XXX:参与数据库的讨论和设计;搜集整理数据、录入数据;设计了具体的逻辑结构,绘制E-R图;创建数据库以及项目表、运动员表、成绩表和班级名次表;实现了表之间的关联,创建必要的默认值、规则;创建了相应的索引;创建了班级名次表的视图。XXX:参与数据库的讨论和设计;创建某项目名次表值函数;创建触发器实现成绩表的按项目自动排名功能;创建存储过程实现班级名次表的班级总成绩的更新功能;创建存储过程实现班级名次表的排名功能;创建触发器实现运动员表改动时自动更新班级名次表的功能;创建多个表值函数用于实现不同的查询功能:项目查询函数,个人成绩查询
4、函数,班级成绩查询函数,学院成绩查询函数,全校成绩查询函数,全校班级名次查询函数。整个数据库部分的设计共创建了三个触发器,四个存储过程以及七个表值函数。另外还设计了本运动会成绩管理系统的界面部分,以及文档编辑工作。组长签字: 年 月 日指导教师对课程设计的评价成绩: 指导教师签字: 年 月 日 目 录1 需求分析111 数据事实112 主要用户视图22 概念结构设计221 局部ER图322 全局ER图33 逻辑结构设计44 物理结构设计45 主要功能详细设计551 创建数据库552 创建数据表553 添加数据(仅以一条为例)654 数据库完整性755 成绩表按成绩自动排名(触发器,函数,存储过
5、程)756 更新 clscore 表(触发器)1257 成绩表按照项目初始名次1358 查询某个项目的全部成绩和排名(表值函数)1459 查询某个班的运动员成绩(表值函数)14510 查询某个学生的所有成绩(表值函数)15511 查询某个学生的某个项目成绩(表值函数)16512 查询某个学院的运动员成绩(表值函数)16513 查询全校运动员成绩(表值函数)17514 通过学号和运动号查询成绩和名次(存储过程)17515 创建班级成绩和名次视图18516 创建索引186 界面设计主要过程186.1 界面总体设计196.2 登录界面设计196.3 成绩管理员界面设计206.4 运动员查询界面设计2
6、61 需求分析本系统是用于管理运动会成绩的系统,要实现的功能就是运动会成绩的增加,修改和删除,同时还应该具有运动员和运动项目的增加修改和删除功能。(1) 本系统面向用户有两种:成绩管理员、学生运动员。(2) 管理员功能介绍管理员正确登陆后,可以增加、删除、修改、查询运动员信息,比赛项目以及比赛成绩。(3) 学生运动员主要功能介绍学生登录后,可以查询(比赛成绩、运动动员信息、运动项目)。11 数据事实数据实例 12 主要用户视图用户需求成绩管理员登录(正确输入用户名及密码登录)增加、删除、修改、查询运动员信息,比赛项目以及比赛成绩学生登录(默认用户名)查询(比赛成绩、运动动员信息、运动项目)2
7、概念结构设计学生登录管理员登入学生登录查询查询查询查询查询与修改查询与修改查询与修改基本信息查询成绩查询基本信息查询成绩查询基本信息查询成绩查询信息录入比赛成绩录入添加比赛项目添加学生信息成绩表项目表运动员表全校名次查询全校成绩查询学院成绩查询班级成绩查询项目成绩查询个人成绩查询图2.1系统边界21 局部ER图运动号性别项目二姓名学院学生表学号项目一班级项目表项目号项目名称图1 项目表图2 学生表成绩表学号项目号成绩名次班级名次表班级名班级得分在学院排名在校排名图3 成绩表图4 班级名次表mn22 全局ER图学生表项目表成绩表班级名次表选择排名3 逻辑结构设计关系模式如下:运动员(学号、姓名、
8、性别、学院、班级、运动号、项目一、项目二)运动项目(项目号、项目名称)成绩(学号、项目号、成绩、名次)班级排名(学院、班级、总成绩、在学院名次、在校名次)4 物理结构设计 学生表列名数据类型允许空说明SNO Int否学生编号SNameVarchar(50)否姓名SDeptVarchar(50)是系别SClassNOVarchar(50)是班级SportsNO Int否运动编号项目表列名数据类型允许空说明SportsNOInt否项目编号SportsNameVarchar(50)否项目名称项目成绩表列名数据类型允许空说明SNOInt否学生编号SportsNOInt否项目编号ScoreVarchar
9、(50)否成绩Srankint否名次班级名次表列名数据类型允许空说明sdeptnameVarchar(20)是学院sclassnameVarchar(20)否班级sclscoreint是总分sclrankindeptint是 学院名次sclrankinschint是 学校名次5 主要功能详细设计51 创建数据库CREATE DATABASE sportsON ( NAME = 运动会数据, FILENAME = D:SQLsports.MDF, SIZE = 10MB, MAXSIZE = 100MB )LOG ON ( NAME = 运动会数据日志, FILENAME = D:SQLspor
10、ts_Log.LDF, SIZE = 5MB, MAXSIZE = 25MB)52 创建数据表1、 创建项目表use sportscreate table sp(sportno int NOT NULL PRIMARY KEY, sportname varchar(30) not null)2、 创建学生表create table stu(sno int NOT NULL PRIMARY KEY, sname varchar(10)not null, sdept varchar(20), sclassname varchar(20), ssex varchar(2), spno int not
11、 null unique, sportno1 int foreign key references sp(sportno) not null, sportno2 int foreign key references sp(sportno) ) 3、 创建成绩表 -全体运动员的各个项目的成绩表create table sc(sno int FOREIGN KEY references stu(sno), sportno int FOREIGN KEY references sp(sportno), score varchar(10), srank int primary key (sno,spo
12、rtno)4、 创建名次表-记录全校所有班级的得分以及在学院的名次和在全校的名次create table clscore(sdeptname varchar(20),-学院名 sclassname varchar(20) primary key,-班级名称 sclscore int,-班级成绩 sclrankindept int,-班级在学院中的名次 sclrankinsch int-班级在学校中的名次)53 添加数据(仅以一条为例)1、 添加运动项目表记录use sports insert into sp values (1,男子一百),(2,男子二百)2、 添加学生表记录use sport
13、sinsert into stu values(10103,赵浩,数学,数学一班,男,10001,1,3),(10105,钱浩,数学,数学一班,男,10002,2,4)3、 添加比赛成绩表记录use sportsinsert into sc (sno,sportno,score) values(10103,1,12.2)54 数据库完整性1、 绑定列上默认值use sportsgocreate default ssex as 男goexec sp_bindefault ssex,stu.ssexgo2、 绑定规则create rule rule_sportno as c1 between 1
14、and 12gocreate rule rule_sno as c1 between 10101 and 40340goexec sp_bindrule rule_sportno,sp.sportno goexec sp_bindrule rule_sno,stu.sno go55 成绩表按成绩自动排名(触发器,函数,存储过程)功能简介:当sc 表有成绩插入删除或者修改时就触发,实现对sc表中单项目名次nrank属性的及时更新,更新完之后,调用存储过程,实现对clscore表中班级成绩和班级排名的更新。551 更新项目名次触发器-触发器-及时更新 sc 表-当有成绩插入删除或者修改sc 表时就
15、触发-实现对sc表中单项目名次nrank属性的及时更新use sportsgo-插入更新与删除操作sc 表if exists(select * from sysobjects where name = trSC and type = TR)drop trigger trSCgocreate trigger trSCon sc after insert,update,deleteasdeclare sportno0 int,sno0 int,sportno1 int,sportno2 intselect sno0=sno,sportno0=sportno from insertedselect
16、sportno1=sportno1,sportno2=sportno2 from stu where sno = sno0if sportno0 not in(sportno1,sportno2)-if sportno0!=sportno1 and sportno0!=sportno2beginprint 操作有误,此记录与运动员表不一致,请先修改运动员表!rollbackendelsebegin-更新名次-声明变量declare sno int,sportno int,rank intdeclare iu_scSportno_cursor CURSOR forselect sportno f
17、rom spopen iu_scSportno_cursorfetch next from iu_scSportno_cursor into sportnowhile fetch_status = 0beginset rank = 1-声明游标declare iu_sc_cursor CURSOR forselect sno from scRankFun(sportno)-打开游标open iu_sc_cursor-提取第一行fetch next from iu_sc_cursor into snowhile FETCH_STATUS = 0beginupdate scset srank =
18、rankwhere sno = sno and sportno = sportnoset rank = rank+ 1fetch next from iu_sc_cursor into snoendclose iu_sc_cursordeallocate iu_sc_cursorfetch next from iu_scSportno_cursor into sportnoendclose iu_scSportno_cursordeallocate iu_scSportno_cursorend-执行存储过程updateClscore,更新clscore 表-exec updateClscore
19、goGo测试代码及截图如下:552 计算班级总成绩存储过程存储过程:当sc 表名次有变动时,及时更新clscore表中的班级总成绩-当sc 表有更新时,及时更新clscore表中每个班的总分数-use sportsgoif exists(select * from sysobjects where name = updateClscore and type = P)drop procedure updateClscoregocreate procedure updateClscore asbegindeclare classname varchar(20),srank int,srankTot
20、al intdeclare cursor_class cursor forselect sclassname from stu group by sclassnameopen cursor_classfetch next from cursor_class into classnamewhile FETCH_STATUS = 0beginset srankTotal = 0declare cursor_srank cursor forselect srank from sc where sno in(select sno from stu where sclassname = classnam
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 运动会 成绩管理系统
链接地址:https://www.31ppt.com/p-1603701.html