校运动会管理系统分解_第1页
校运动会管理系统分解_第2页
校运动会管理系统分解_第3页
校运动会管理系统分解_第4页
校运动会管理系统分解_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理及应用课程设计题目:校运动会管理系统 院 系: 信息学院 专业班级: 08计本 学 号: 学生姓名: 胡坤月 指导教师: 目录一、概述(问题描述)1、编写目的32、背景33、定义34、目标35、软硬件平台设计3二、需求分析阶段1、功能需求描述32、系统功能模块图53、数据流图64、数据项和数据结构95、数据字典106、数据表字段字典10三、概念结构设计阶段11四、逻辑结构设计阶段17五、物理结构设计阶段19六、应用程序设计阶段1、表的建立(SQL)202、应用253、系统流程图26七、实施运行与维护27一、问题描述1.1 编写目的使用该文档的使用成员为实现SGS系统的开发人员以及学校的运动会具体组织管理人员。1.2 背景随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校运动会管理的工作量。该课程设计要求设计一个校运动会的数据库管理系统,数据库中要求包含学生的基本信息,参赛项目的基本信息,以及学生所参加项目的比赛成绩。通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。1.3 目标当学校运动会管理人员使用了学校运动会管理系统后,可以由计算机完成:运动员报名的自动核对;比赛时各种人员信息的查询、核对、更新、删除。学校运动会管理系统SGS用户分为两类:普通操作员:只须具有初级的计算机操作能力,一般高中生以上经过稍稍培训都可胜任,只是负责比赛进行时一些简单数据的插入、更新、查询。管理人员:这些人员应具备一定的数据库知识,不过只要了解就行,这些人员负责对数据库中重要数据及基本数据的更新,如对静态表的重新定义,普通用户的权限分配。1.4软硬件平台设计(1) 软件平台: windowsXP操作系统、Sql-Server2000数据库(2) 硬件平台:普通微机二、需求分析阶段2.1功能需求描述运动会管理系统,它涉及人工智能,计算机科学,认知科学,教育学,心理学和行为科学等学科,其目的是赋予计算机系统以智能,由计算机系统在一定程度上代替人类实现运动会最佳管理的运作。运动会管理系统的目的是实现运动员可以方便的在系统上进行比赛报名,以及使用校园网的无权限方便的浏览查询运动会相关信息,了解运动会的最新动态,系统管理人员(有权限)对比赛成绩进行操作;实现运动员与管理人员之间,访问者与运动员之间的交流;实现运动会相关事务的管理。(l) 通过对运动会各个步骤、所需的各项信息等的分析,我们规定:项目有个人项目、集体项目之分对于团体项目,我们并不关心具体参加比赛的运动员在每一项团体项目中,每个学院的参赛人数不可超过限制的参赛人数,且必须是该学院的学生一个项目可有多名运动员参加,但一名运动员最多只能参加两项个人项目,且只能属于一个学院一个项目可由多名裁判主持,每一个裁判在此项目中所担任的职务不同,且有主、副裁判之分在同一时间内可同时举行多项比赛,但是只能进行一项径赛比赛在同一时间内,一名裁判只能主持一项比赛、担任一个职务但在不同的时间内,一名裁判可主持不同的项目、担任不同的职务一名运动员在同一时间内只能参加一项比赛在同一时间内,一个学院只能参加一项团体项目比赛在某一项目中,只有一个主裁判,其余都为副裁判一项个人项目可有多个同时破记录者,一名运动员同时破多项记录一项团体项目可同时有多个破记录的学院,一个学院可同时破多项记录。(2) 通过对运动会各方面分析,运动会中包含的实体有学院、运动员(不包含团体项目中的运动员)、项目(团体项目和个人项目)、裁判、职务、奖励(团体项目奖励和个人项目奖励,名次为0表示破记录)、赛事类别(田赛、径赛、团体项目等)团体项目奖励和个人项目奖励不同。包含的数据项分别如下:学院编号,学院名称,上届运动会名次,历史最高名次,本次运动会总分,本次运动会名次等运动员编号,学号,姓名,性别,所属学院,班级等项目编号,项目名称,参赛者性别(男或女或不限)、每个学院限参赛人次,比赛时间,结束时间等裁判编号,姓名,性别等职务编号,职务名称(如计时员、测量员、记录员等),职务级别(主裁判和副裁判)等名次,奖励分数,奖励物品(如奖状等),奖励金额等赛事类别编号,赛事类别名称等(3) 实体之间的联系有:学院与运动员之间(1:M)运动员、个人项目与个人项目奖励之间(1:M,1:1)学院、团体项目与团体项目奖励之间(1:M,1:1)赛事类别与项目之间(1:M)裁判、项目与职务之间(M:N)(4)通过以上分析,运动会数据库包含的模块有:1成绩模块分析:使用人员在管理系统总菜单下进入成绩模块管理菜单。输入正确的密码后进入,再选择是进入个人成绩管理还是还是团体成绩管理。通过设置密码来限定访问权限,无密码则无访问权限。可以对需要修改的相应个人比赛结果成绩进行修改,再提交给系统。(1)分权限的管理。在运动会成绩管理模块中教师可以对任一个学生的成绩进行查询和管理;但是对学生类用户,它只能对自己的成绩进行查看,而且绝对不能对其进行更改。(2)教师类用户可以对成绩按照运动项目进行管理,可以对每一项目所选的学生进行添加删除和修改。(3)教师类用户可以对成绩按照学生进行管理,可以对每一个学生所选的运动项目进行添加,删除和修改。(4)可以根据个人编号查询一个单位的成绩。(5)可以查询所有项目和单位成绩的成绩情况。(6)可以针对某一门课的学生列表及其成绩生成报表。(7)可以针对某一个学生所选运动会项目及其对应的成绩生成报表。(8)掌握每个学生每一门课的运动会成绩管理信息,并记录在数据库中以便其它管理信息系统的使用。2管理员模块分析:使用人员管理主菜单进入成绩模块菜单,输入正确密码进入选择项,选择是进入个人信息管理还是团体信息管理。和成绩模块一样,它也将拥有一个独立的密码作为访问权限限制。只有管理员类的用户才能对其进行进行增减数据,修改数据的一系列相关操作。3查询模块分析:该模块对任何访问的人员都开放。进入这一模块,只需要先选择进入个人成绩查询模块,还是团体成绩查询模块,输入需要查找人员或团体的唯一标识编号。(1)可以查询运动员和团体的信息。(2)可以查询运动员及团体参加的各项项目成绩。2.2、系统功能模块图 运动会管理系统统成绩模块管理员模块查询模块个人成绩管理团体成绩管理原始密码新密码个人成绩查询团体成绩查询2.3、数据流图数据流图表达了数据和处理的关系,下面是四个模块的数据流图。 1成绩模块:密码输入,判断?主菜单成绩模块团体成绩管理个人成绩管理判断成功选择项目选择项目个人信息操作团体信息操作判断信息合理?在成绩模块生成相关数据信息在其他模块中生成相关数据项成功失败2管理员模块主菜单管理员模块密码输入,判断?个人成绩管理判断成功选择修改项目信息修改审核信息提交在信息修改模块生成相关数据信息在其他模块中生成相应数据项审核成功失败判断错误3查询模块主菜单查询模块输入查询信息进行寻找查找失败显示查找信息成功2.4、数据字典2.4.1数据项数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,数据字典是对系统所用到的所有表结构的描述,运动会管理系统的主要数据见下表。表1 学院基本信息表序号字段别名数据类型数据长度码1academe_no编号char4Y2academe_name学院名称varchar20N3total_score总分数intN4Academe_position名次tinyintN5last_psition上届运动会名次tinyintN6max_position历史最高名次tinyintN表2运动员基本信息表序号字段别名数据类型数据长度码1athlete_no编号char4Y2stu_no学号varchar12N3athlete_name姓名varchar10N4athlete_sex性别char2N5academe_no学院编号vartrar20N表3比赛项目基本信息表序号字段别名数据类型数据长度码1item_no项目编号char4Y2item_name项目名称varchar20N3item_time比赛时间N4item_place比赛地点varchar20N5qty每个学院限参赛人数N表4职务信息表序号字段别名数据类型数据长度码1duty_no职务编号char4Y2duty_name职务名称varchar20N表5裁判基本信息表序号字段别名数据类型数据长度码1judge_no裁判编号char4Y2judge_name姓名varchar10N3judge_sex性别 char2N表6裁判安排表序号字段别名数据类型数据长度码1judge_no裁判编号char4Y2item_no项目编号char4Y3duty_no职务号char4N4Jisattend是否到场char1N表7成绩基本信息表序号字段别名数据类型数据长度码1athlete_no运动员编号char4Y2item_no项目编号char4Y3academe_name学院名称varchar20N4Aisattend是否参赛char1N5score最终成绩char20N6Athlete_position比赛名次tinyintN 表8奖励信息表序号字段别名数据类型数据长度码1athlete_no运动员编号char4Y2score成绩char20N3Athlete_position名次tinyintN4prize奖励内容vartrar20N2.4.2数据结构数据结构名含义说明组成部分运动员基本信息管理描述运动员的基本信息编号+学号+姓名+性别+学院编号比赛项目基本信息管理描述比赛项目基本信息项目编号+项目名称+比赛时间+比赛地点裁判、职务相关信息管理描述裁判信息、职务基本信息裁判编号+姓名+性别+项目编号+职务编号+职务名称成绩基本信息管理描述运动员得比赛成绩及结果运动员编号+项目编号+学院名称+最终成绩+比赛名次系统管理描述用户设置密码,修改数据信息等三、概念设计3.1 实体学院与运动员之间的联系学院学院编号学院名称总分名次历史最高名次上届运动会名次属于运动员学院名称学院名称学院名称学院名称1n相关说明:上述E-R图表示一个学院有多名运动员参加个人项目,一名运动员只能属于一个学院。3.2 运动员、个人项目和个人项目奖励之间的联系运动员运动员编号性别学号姓名名次项目编号奖励物品赛事类别编号比赛时间结束时间每个学院限参赛人数项目名称奖励金额分数个人项目奖励个人项目参赛mpn上述E-R图表示一个项目可有多项不同的奖励(如第一名、第二名等的奖励不同)对于每一项奖励可在不同的项目中出现;一名运动员最多只能有两项个人项目奖励(此时p=02),每一项奖励可有多名运动员获得;一名运动员最多能参加两项个人项目(此时m=12),一项个人项目可有多名运动员参加。3.3 学院、团体项目和团体项目奖励之间的联系运动员学院编号名次总分名次项目编号奖励物品赛事类别编号比赛时间结束时间每个学院限参赛人数项目名称奖励金额分数团体项目奖励个人项目参赛pnm历史最高名次上届运动会名次学院名称相关说明:上述E-R图表示一个学院可获得多项团体项目奖励、参加多项团体项目,一项团体项目可有多个学院参赛、有多项不同的奖励,一项团体项目奖励可被多个学院获得、可在多项团体项目中出现3.4 赛事类别与项目之间的联系赛事类别项目属于项目编号项目名称比赛时间结束时间赛事类别编号赛事类别名称赛事类别编号每个学院限参赛人数3.5 裁判、项目、职务之间的联系:项目职务裁判项目名称结束时间项目编号赛事类别编号每个学院限参赛人数比赛时间性别姓名职务名称性质职务名称职务号主持上述E-R图表示一名裁判在不同的时间内可主持多项比赛、担任多项职务,同一职务可被多名裁判担任、可出现在多项比赛中,一项项目可由多名裁判共同主持、可有多个职务(如计时员、测量员、记录员等)3.6 总E-R图将上述分E-R全部合并,并化简的到如下的总E-R图(为简化画图工作,上述各实体中的属性 未画出,并把集体项目和个人项目合并为项目、集体项目奖励和个人项目奖励合并):学院项目职务裁判运动员赛事类别奖励属于参赛属于主持上述E-R图中学院、项目和奖励之间的联系如上述中的E-R图一样,运动员、项目和奖励之间表示的联系如上述2中的E-R图一样。四 逻辑设计 4.1 数据表: (1)赛事类别表(match_sort):主键为赛事类别号sort_no sort_nochar(3)not null primary key赛事类别号sort_namechar(10)not null类别名称(2) 比赛项目表(match_item):主键为项目编号,其中对每个学院限参赛人数设置了check约束,并且类别编号也作为外键约束,受到赛事类别表中赛事类别号的约束Item_nochar(4)not nullprimary key项目编号Item_namechar(20)not null项目名称Item_sexchar(2)Not null项目性别sort_nochar(3)not null类别编号Qtysmallintnot null每个学院限参赛人数Start_timedatetimeNot null比赛开始时间finish_timedatetimeNull比赛结束时间(3) 裁判信息表(judge):主键为裁判编号,并在性别属性列上设置check约束(f表示女性,m代表男性) judge_nochar()Not nullPrimary key裁判编号judge_namechar(10)Not null姓名Sexchar(2)Not null性别(4) 职务表(duty):职务编号是主码 Duty_nochar(4)Not nullPrimary key职务编号Duty_namechar(20)Not null职务名称rankingchar(10)Null职务级别(5) 裁判安排表(judge_scheme):主码为(裁判编号,项目编号),设置了两个外键约束,外键项目编号item_no受到match_item表中item_no的约束,职务号duty_no受duty表中的duty_no约束judge_nochar()Not nullPrimary key裁判编号Item_nochar(4)Not null项目编号Duty_nochar(4)Null职务号isattendchar(1)Null是否到场(6) 学院信息表(collage):主键是学院编号,并在其上设置check约束collage_nochar(4)Not nullprimary学院编号collage_namechar(20)Not null学院名称last_positiontinyintNull上届运动会名次max_positiontinyintNull历史最高名次total_scoreintNull本届运动会总分positiontinyintNull本届运动会名次(7) 运动员信息表(athlete):运动员编号athlete_no是主键,并在学院编号属性列上设置外键约束athlete_nochar(4)Not nullprimary运动员编号stu_nochar(6)Not null学号athlete_namechar(10)Not null姓名sexchar(2)Not null性别collage_nochar(4)Not null学院编号(8) 个人项目比赛表(sig_match):运动员编号,项目编号为主码,外键有项目编号,运动员编号,名次分别受到表match_item,athlete及person_prize中相应属性的约束athlete_nochar(4)Not nullPrimary key运动员编号item_nochar(4)Not null项目编号resultChar(20)null成绩positionsmallintnull名次isattendchar(1)null是否参赛(9) 个人项目奖励表(person_prize):名次为主码 positionsmallintNot nullPrimary key名次scoretinyintNot null分数prizechar(40)null奖励物品moneytinyintnull奖励金额(10) 个人项目破记录表(sig_record):主码为项目编号+破记录者姓名 item_nochar(4)Not nullPrimary key项目编号stu_namechar(10)Not null破记录者姓名collage_nochar(4)Not null学院编号resultChar(20)Not null成绩timedatetimeNot null破记录时间(11) 团体项目比赛表(together_match):主码为学院编号+项目编号 collage_nochar(4)Not nullPrimary key学院编号item_nochar(4)Not null项目编号resultnumeric(9,2)null成绩positiontinyintnull名次isattendchar(1)null是否参赛(12) 个人项目奖励表(together_prize):名次做主键positiontinyintNot nullPrimary key名次scoretinyintNot null奖励分数prizechar(40)null奖励物品moneytinyintnull奖励金额(13)团体项目破记录表(together_record):团体项目编号+破记录学院编号做主键item_nochar(4)Not nullPrimary key团体项目编号collage_nochar(4)Not null破记录学院编号resultChar(20)Not null成绩timedatetimeNot null破记录时间五 物理设计为了加速表的查询,根据所设计的表的特点,我们决定在对比赛项目表中的项目编号item_no,运动员信息表中的运动员编号athlete_no,裁判信息表中的裁判编号judge_no 分别建立索引. CREATE INDEX IX_match_item ON dbo.match_item(item_no) GOCREATE INDEX IX_athlete ON dbo.athlete(athlete_no) GOCREATE INDEX IX_judge ON dbo.judge(judge_no) GO六 应用程序设计6.1表的建立赛事类别表create table match_sort( sort_no char(4) not null, /*类别编号*/ sort_name char(10) not null, /*类别名称*/ primary key(sort_no)go-插入数据-insert into match_sort values(a001,田赛)insert into match_sort values(a002,径赛)insert into match_sort values(a003,团体项目)-比赛项目表create table match_item( item_no char(4) not null primary key, /*项目编号*/ check(item_no like I0-90-90-9), item_name char(20) not null, /*项目名称*/ sort_no char(4) not null, /*类别编号*/ qty smallint not null, /*每个项目参赛人(队)数*/ start_time datetime not null, /*比赛开始时间*/ finish_time datetime null, /*比赛结束时间*/ foreign key(sort_no) references match_sort(sort_no), constraint ck_qty check (qty=8 and qty=50)go-插入数据-insert into match_item values(I005,男子跳高,a001,22,2006-10-25 10:50,null)insert into match_item values(I006,男子铅球,a001,20,2006-10-25 09:40,null)insert into match_item values(I007,女子铅球,a001,18,2006-10-25 10:40,null)insert into match_item values(I008,男子100m决赛,a002,8,2006-10-25 14:30,null)insert into match_item values(I034,女子4400m预决赛,a002,20,2006-10-27 15:20,null) go-裁判信息表create table judge( judge_no char(4) not null primary key, /*裁判编号*/ check (judge_no like J0-90-90-9), judge_name char(10) not null, /*姓名*/ sex char(1) not null, /*性别*/ check(sex in(f,m)go -插入数据-insert into judge values(J001,陈一帆,m)insert into judge values(J002,黎小垣,m)insert into judge values(J003,宋万达,m)insert into judge values(J004,李强,m)insert into judge values(J005,黄萧然,m)-职务表create table duty( duty_no char(4) not null, /*职务编号*/ duty_name char(20) not null, /*职务名称*/ ranking char(10) null, /*职务级别*/ primary key(duty_no)go-插入数据-insert into duty values(D001,计时员,副裁判)insert into duty values(D002,测量员,副裁判)insert into duty values(D003,记录员,主裁判)insert into duty values(D004,其它,副裁判) -裁判安排表create table judge_scheme( judge_no char(4) not null, /*裁判编号*/ item_no char(4) not null, /*项目编号*/ duty_no char(4) null, /*职务编号*/ isattend char(1) null, /*是否到场*/ constraint pk_judge_scheme primary key clustered(judge_no,item_no), foreign key(item_no) references match_item(item_no), foreign key(duty_no) references duty(duty_no), check(isattend in(y,n) go -插入数据-insert into judge_scheme values(J001,I001,D003,y)insert into judge_scheme values(J002,I001,D001,y)insert into judge_scheme values(J003,I001,D001,y)insert into judge_scheme values(J004,I001,D001,y)insert into judge_scheme values(J005,I001,D001,y)-if exists (select * from sysobjects where name=collage)drop table dbo.collagegoprint drop table collageprint create collageGO 学院信息表create table collage( collage_no char(4) not null primary key /*学院编号*/ check(collage_no like C0-90-90-9), collage_name char(20) not null, /*学院名称*/ last_position char(6) null, /*上届运动会名次*/ max_position char(6) null, /*历史最高名次*/ total_score int null, /*本次运动会总分*/ position char(6) null, /*本次运动会名次*/) go -插入数据-insert into collage values(C001,工商管理学院, ,第二名,0,null)insert into collage values(C002,会计学院,第二名,第一名,0,null)insert into collage values(C003,金融学院,第四名,第二名,0,null)insert into collage values(C004,公共管理学院,第六名,第三名,0,null)insert into collage values(C005,信息管理学院,第三名,第一名,0,null)-运动员信息表(只记录个人项目中的运动员信息)create table athlete( athlete_no char(4) not null primary key /*运动员编号*/ check(athlete_no like A0-90-90-9), stu_no char(7) not null, /*学号*/ athlete_name char(10) not null, /*姓名*/ sex char(1) not null, /*性别*/ collage_no char(4) not null, /*学院号*/ check(sex in(f,m), foreign key(collage_no) references collage(collage_no) go -插入数据-insert into athlete values(A001,胡东平,m,C001)insert into athlete values(A002,郑晓林,f,C001)insert into athlete values(A003,张超俊,m,C001)insert into athlete values(A004,刘 波,m,C001)insert into athlete values(A005,刘 伟,m,C001)go-个人项目奖励表(名次为0表示破记录)create table person_prize( position smallint not null primary key, /*名次*/ score tinyint not null, /*奖励分数*/ prize char(40) null, /*奖励物品*/ money tinyint null /*奖励金额*/) go-插入数据-insert into person_prize values(0,18,奖状,50)insert into person_prize values(1,9,奖状,25)insert into person_prize values(2,7,奖状,15)insert into person_prize values(7,2,NULL,NULL)insert into person_prize values(8,1,NULL,NULL)-个人项目比赛表create tabl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论