《校运动会管理系统.docx》由会员分享,可在线阅读,更多相关《校运动会管理系统.docx(21页珍藏版)》请在课桌文档上搜索。
1、数据库原理及应用课程设计题目:校运动会管理系统院系:信息学院专业班级:08计本学号:20083623015学生姓名:胡坤月指导教师:目录一、概述(问题描述)编写目的32、背景33、定义34、目标35、软硬件平台设计3二、需求分析阶段1、功能需求描述32、系统功能模块图53、数据流图64、数据项和数据结构95、数据字典106、数据表字段字典10三、概念结构设计阶段11四、逻辑结构设计阶段17五、物理结构设计阶段19六、应用程序设计阶段1、表的建立(SQL)202、应用253、系统流程图26七、实施运行与维护27一、问题描述1.1 编写目的使用该文档的使用成员为实现SGS系统的开发人员以及学校的运
2、动会具体组织管理人员。1.2 背景随着科技的开展,根本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校运动会管理的工作量。该课程设计要求设计一个校运动会的数据库管理系统,数据库中要求包含学生的根本信息,参赛工程的根本信息,以及学生所参加工程的比赛成绩。通过该课程设计,应该到达把数据库理论知识更加的稳固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。1.3 目标当学校运动会管理人员使用了学校运动会管理系统后,可以由计算机完成:运发动报名的自动核对;比赛时各种人员信息的查询、核对、更新、删除。学校
3、运动会管理系统SGS用户分为两类:普通操作员:只须具有初级的计算机操作能力,一般高中生以上经过稍稍培训都可胜任,只是负责比赛进行时一些简单数据的插入、更新、查询。管理人员:这些人员应具备一定的数据库知识,不过只要了解就行,这些人员负责对数据库中重要数据及根本数据的更新,如对静态表的重新定义,普通用户的权限分配。1.4 软硬件平台设计(1)软件平台:WindoWSXP操作系统、Sql-SerVer2000数据库(2)硬件平台:普通微机二、需求分析阶段功能需求描述运动会管理系统,它涉及人工智能,计算机科学,认知科学,教育学,心理学和行为科学等学科,其目的是赋予计算机系统以智能,由计算机系统在一定程
4、度上代替人类实现运动会最正确管理的运作。运动会管理系统的目的是实现运发动可以方便的在系统上进行比赛报名,以及使用校园网的无权限方便的浏览查询运动会相关信息,了解运动会的最新动态,系统管理人员(有权限)比照赛成绩进行操作;实现运发动与管理人员之间,访问者与运发动之间的交流;实现运动会相关事务的管理。(1)通过对运动会各个步骤、所需的各项信息等的分析,我们规定:工程有个人工程、集体工程之分.对于团体工程,我们并不关心具体参加比赛的运发动.在每一项团体工程中,每个学院的参赛人数不可超过限制的参赛人数,且必须是该学院的学生.一个工程可有多名运发动参加,但一名运发动最多只能参加两项个人工程,且只能属于一
5、个学院.一个工程可由多名裁判主持,每一个裁判在此工程中所担任的职务不同,且有主、副裁判之分.在同一时间内可同时举行多项比赛,但是只能进行一项径赛比赛.在同一时间内,一名裁判只能主持一项比赛、担任一个职务.但在不同的时间内,一名裁判可主持不同的工程、担任不同的职务.一名运发动在同一时间内只能参加一项比赛.在同一时间内,一个学院只能参加一项团体工程比赛.在某一工程中,只有一个主裁判,其余都为副裁判.一项个人工程可有多个同时破记录者,一名运发动同时破多项记录.一项团体工程可同时有多个破记录的学院,一个学院可同时破多项记录。(2)通过对运动会各方面分析,运动会中包含的实体有学院、运发动(不包含团体工程
6、中的运发动)、工程(团体工程和个人工程)、裁判、职务、奖励(团体工程奖励和个人工程奖励,名次为。表示破记录)、赛事类别(田赛、径赛、团体工程等).团体工程奖励和个人工程奖励不同。包含的数据项分别如下:学院编号,学院名称,上届运动会名次,历史最高名次,本次运动会总分,本次运动会名次等.运发动编号,学号,姓名,性别,所属学院,班级等.工程编号,工程名称,参赛者性别(男或女或不限)、每个学院限参赛人次,比赛时间,结束时间等.裁判编号,姓名,性别等.职务编号,职务名称(如计时员、测量员、记录员等),职务级别(主裁判和副裁判)等.名次,奖励分数,奖励物品(如奖状等),奖励金额等.赛事类别编号,赛事类别名
7、称等.(3)实体之间的联系有:学院与运发动之间(1:M).运发动、个人工程与个人工程奖励之间(1:M,1:1).学院、团体工程与团体工程奖励之间(1:M,1:1).赛事类别与工程之间.(1:M)裁判、工程与职务之间.(M:N)(4)通过以上分析,运动会数据库包含的模块有:1成绩模块分析:使用人员在管理系统总菜单下进入成绩模块管理菜单。输入正确的密码后进入,再选择是进入个人成绩管理还是还是团体成绩管理。通过设置密码来限定访问权限,无密码那么无访问权限。可以对需要修改的相应个人比赛结果成绩进行修改,再提交给系统。(1)分权限的管理。在运动会成绩管理模块中教师可以对任一个学生的成绩进行查询和管理;但
8、是对学生类用户,它只能对自己的成绩进行查看,而且绝对不能对其进行更改。(2)教师类用户可以对成绩按照运动工程进行管理,可以对每一工程所选的学生进行添加删除和修改。(3)教师类用户可以对成绩按照学生进行管理,可以对每一个学生所选的运动工程进行添加,删除和修改。(4)可以根据个人编号查询一个单位的成绩。(5)可以查询所有工程和单位成绩的成绩情况。(6)可以针对某一门课的学生列表及其成绩生成报表。(7)可以针对某一个学生所选运动会工程及其对应的成绩生成报表。(8)掌握每个学生每一门课的运动会成绩管理信息,并记录在数据库中以便其它管理信息系统的使用。2管理员模块分析:使用人员管理主菜单进入成绩模块菜单
9、,输入正确密码进入选择项,选择是进入个人信息管理还是团体信息管理。和成绩模块一样,它也将拥有一个独立的密码作为访问权限限制。只有管理员类的用户才能对其进行进行增减数据,修改数据的一系列相关操作。3查询模块分析:该模块对任何访问的人员都开放。进入这一模块,只需要先选择进入个人成绩查询模块,还是团体成绩查询模块,输入需要查找人员或团体的唯一标识编号。(1)可以查询运发动和团体的信息。(2)可以查询运发动及团体参加的各项工程成绩。2.2、 系统功能模块图2.3、 数据流图数据流图表达了数据和处理的关系,下面是四个模块的数据流图。1成绩模块:2管理员模块3查询模块查找失败2.4、 数据字典2.4.1
10、数据项数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,数据字典是对系统所用到的所有表结构的描述,运动会管理系统的主要数据见下表。表1学院根本信息表序号字段别名数据类型数据长度码1academeno编号char4Y2academename学院名称varchar20N3total_score总分数intN4Academeposition名次tinyintN5last_psition上届运动会名次tinyintN6maxposition历史最高名次tinyintN表2运发动根本信息表序号字段1 athleteno2 stu no3 athlete_name4 at
11、hlete_sex5 academeno编 名号号名别院 别编学姓性学号数据类数据长7型度只char4Yvarchar12Nvarchar10Nchar2Nvartrar20N表3比赛工程根本信息表序号字段别名数据类型数据长度码1item_no工程编号char4Y2itemname工程名称varchar20N3itemtime比赛时间N4item_place比赛地点varchar20N每个学院限参赛人5qty数N表4职务信息表序号字段别名数据类型数据长度码职务编1duty_no号char4Y2duty_name职务名称varchar20N表5裁判根本信息表序号字段别名数据类数据长型度码,裁判编
12、j1JUdgeJW号char4Y2judge_name姓名varchar10N3judge_sex性别char2表6裁判安排表N序号字段别名裁判编数据类数据长型度码1JUdgC_no工程编char4Y2item_no.char4Y3duty_no职务号是否到char4N4Jisattend&口场char1表7成绩根本信息表N序号字段别名饕类运发动编数据长m度码1athlete_nopchar号4Y2item_no工程编号char4Y3academe_name学院名称varchar20N4Aisattend是否参赛char1N5score最终成绩char20N6Athlete_position比
13、赛名次tinyint表8奖励信息表N序号字段别名赞类运发动编数据长加度码1athlete_nopchar号4Y2score成绩char20N3Athlete_position名次tinyintN4prize奖励内容vartrar20N2.4.2 数据结构数据结构名含义说明组成局部运发动根本信息描述运发动的根本信息编号+学号+姓名+性别+学管理院编号比赛工程根本信描述比赛工程根本信息工程编号+工程名称+比赛息管理时间+比赛地点裁判、职务相关信描述裁判信息、职务根本裁判编号+姓名+性别+工程息管理信息编号+职务编号+职务名称成绩根本信息管描述运发动得比赛成绩及运发动编号+工程编号+学理结果院名称+
14、最终成绩+比赛名次系统管理描述用户设置密码,修改数据信息等三、概念设计实体学院与运发动之间的联系上述E-R图表示一个学院有多名运发动参加个人工程,名运发动只能属于一个学院。3.2运发动、个人工程和个人工程奖励之间的联系运发动编号不同的三邨6现;学号;只能有两项个人奖励物品r、丁页不同的奖励如第分数对/一项奖励可在磁励可有多名运口两项个人工程(此时m=l2)项个人工程可有多名运发动参加。个人工程发动获得;名运发运发动和团体工程奖励之间的有多个学团体工程N次名次学院名分数上届运动会名次奖励物品涯笑丽被多个学院获得、项在多项团体工程中出现.运发动奖励金额3.5裁判、工程、职务之间的联系:上述E-R图
15、表示名裁判在不同的时间内可主持多项比赛、担任多项职务,同一职务可被多名裁判担任、可出现在多项比赛中,一项工程可由多名裁判共同主持、可有多个职务(如计时员、测量员、记录员等).3.6总E-R图将上述分ER全部合并,并化简的到如下的总ER图(为简化画图工作,上述各实体中的属性未画出,并把集体工程和个人工程合并为工程、集体工程奖励和个人工程奖励合并):上述E-R图中学院、工程和奖励之间的联系如上述3中的E-R图样,运发动、工程和奖励之间表示的联系如上述2中的E-R图一样。四逻辑设计数据表:(1)赛事类别表(match-sort:主键为赛事类别号SOrt_nosort_nochar(3)notnull
16、primarykey赛事类别号sort_namechar(10)notnull类别名称(2)比赛工程表(InatchJtem):主键为工程编号,其中对每个学院限参赛人数设置了CheCk约束,并且类别编号也作为外键约束,受到赛事类别表中赛事类别号的约束Item_nochar(4)notnullprimarykey工程编号Item_namechar(20)notnull工程名称Item_sexchar(2)Notnull工程性别sort_nochar(3)notnull类别编号Qtysmallintnotnull每个学院限参赛人数Start-timedatetimeNotnull比赛开始时间fin
17、ish_limedatetimeNull比赛结束时间(3)裁判信息表(judge):主键为裁判编号,并在性别属性列上设置CheCk约束(f表示女性,m代表男性)judge_nochar(4)NotnullPrimarykey裁判编号judge_namechar(10)Notnull姓名Sexchar(2)Notnull性别(4)职务表(duty):职务编号是主码Duty_nochar(4)NotnullPrimarykey职务编号Duty_namechar(20)Notnull职务名称rankingchar(10)Null职务级别(5)裁判安排表(judge_scheme):主码为裁判编号,工
18、程编号),设置了两个外键约束,外键工程编号item_no,受到match_item表中item_no的约束,职务号duty_no,受duty表中的duly_no约束judge_nochar(4)NotnullPrimarykey裁判编号Item_nochar(4)Notnull工程编号Duty_nochar(4)Null职务号isattendchar(1)Null是否到场学院信息表(COlage):主键是学院编号,并在其上设置CheCk约束collage_nochar(4)Notnullprimary学院编号collage_namechar(20)Notnull学院名称IasCposition
19、IinyintNull上届运动会名次max_positiontinyintNull历史最高名次total_scoreintNull本届运动会总分positiontinyintNull本届运动会名次(7)运发动信息表(athlete):运发动编号athlete.no,是主键,并在学院编号属性列上设置外键约束athlete_nochar(4)Notnullprimary运发动编号stu_nochar(6)Notnull学号athlete_namechar(10)Notnull姓名sexchar(2)Notnull性别collage_nochar(4)Notnull学院编号(8)个人工程比赛表(si
20、g_match):运发动编号,工程编号为主码,外键有工程编号运发动编号名次分别I受到表match_item,athlete及PerSOn_prize中相应属性的约束athlete_nochar(4)NotnullPrimarykey运发动编号item-nochar(4)Notnull工程编号resultChar(20)null成绩positionSmallintnull名次isattendchar(1)null是否参赛(9)个人工程奖励表(PerSon_PriZe):名次为主码positionSmallintNotnullPrimarykey名次scoretinyintNotnull分数pri
21、zechar(40)null奖励物品moneytinyintnull奖励金额(10)个人工程破记录表(sigecord):主码为工程编号+破记录者姓名(三)程比赛item_nochar(4)NotnullPrimarykey工程编号团体工表stu_namechar(10)Notnull破记录者姓名collage_nochar(4)Notnull学院编号resultChar(20)Notnull成绩timedatetimeNotnull破记录时间(together-match):主码为学院编号+工程编号collage_nochar(4)NotnullPrimarykey学院编号item_noch
22、ar(4)Notnull工程编号resultnumeric(9,2)null成绩positionIinyintnull名次isattendchar(1)null是否参赛(12)个人工程奖励表(IogetheJPriZe):名次做主键positiontinyintNotnullPrimarykey名次scoretinyintNotnull奖励分数prizechar(40)null奖励物品moneytinyintnull奖励金额(13)团体工程破记录表Itogetherjrecord):团体工程编号+破记录学院编号做主键item_nochar(4)NotnullPrimarykey团体工程编号co
23、llage_nochar(4)Notnull破记录学院编号resultChar(20)Notnull成绩timedatetimeNotnull破记录时间五物理设计为了加速表的查询,根据所设计的表的特点,我们决定在比照赛工程表中的工程编号item。,运发动信息表中的运发动编号athletjr,裁判信息表中的裁判编号judgjno分别建立索引.CREATEINDEXIX_match_itemONdbo.match_item(item_no)GOCREATEINDEXIX_athleteONdbo.athlete(athlcte_no)GOCREATEINDEXIXjudgeONdbo.judge(
24、judgeno)GO六应用程序设计表的建立赛事类别表createtablematch_sort(sort_nochar(4)notnull,*类别编号*/sort_namechar(10)notnull,*类别名称*/primarykey(sort_no)g插入数据insertintomatch_sortVahIeSCaooII田赛*)insertintomatch_sortVahIeSCaOO2;径赛)insertintomatch_sortVahIeS(a003,团体工程*)比赛工程表createtablematch_item(item_nochar(4)notnullprimarykey
25、,*工程编号*/check(item_nolikeI0-90-90-9),item_namechar(20)notnull,*工程名称*/sort_nochar(4)notnull,/*类别编号*/qtysmallintnotnull,/*每个工程参赛人(队)数*/start_timedatetimenotnull,/*比赛开始时间*/finish_timedatetimenull,/*比赛结束时间*/foreignkey(sort_no)referencesmatch_sort(sort_no),constraintck_qtycheck(qty=8andqty=5O)g插入数据insert
26、intomatch_itemValUeScloo5;男子跳高VaOor,22,2006-10-2510:50,null)insertintomatch_itemVaIUeS(I0067男子铅球,a001,20,2006-10-2509:40,null)insertintomatch_itemValUeS(I007J女子铅球,a001,18,2006-10-2510:40,null)insertintomatch_itemVaIUeS(I008,男子Ioom决赛,a002,8,2006-10-2514:30,null)insertintomatch_itemvaIues(I034,T4400m预
27、决赛,a002,20,2006-10-2715:20,null)go裁判信息表createtablejudge(judge_nochar(4)notnullprimarykey,*裁判编号5*7check(judge_nolikeJ0-90-90-9),judge_namechar(10)notnull,*姓名*/sexchar(1)notnull,*性别*/check(sexin(f5m)g。插入数据insertintojudgeVahIeS(J001;陈-帆,m)insertintojudgeValUeS(J002;黎小垣,m)insertintojudgeVaIUeSeJOO3?宋万达,
28、m)insertintojudgeVaIUeScJOO4?李强,rrf)insertintojudgeVaIUeS(J005?黄萧然,m)职务表createtableduty(duty_nochar(4)notnull,*职务编号*/duty_namechar(20)notnull,*职务名称*/rankingchar(10)null,/*职务级别*/primarykey(duty_no)go,插入数据insertintodutyValUeS(DOOl?计时员:副裁判)insertintodutyValUeS(D002?测量员?副裁判)insertintodutyVaIUeS(D003?记录员
29、主裁判)insertintodutyVaIUeS(D004,其它副裁判)裁判安排表createtablejudge_scheme(judge_nochar(4)notnull,*裁判编号*/item_nochar(4)notnull,*工程编号*/duty_nochar(4)null,/*职务编号*/isattendchar(1)null,/*是否到场constraintpkUdge.schemeprimarykeyclustered(judge_no,item_no),foreignkey(item_no)referencesmatch_item(item_no),foreignkey(du
30、ty_no)referencesduty(duty_no),check(isattendin(yn)g插入数据insertintojudge_schemevalues(,J001,1I001,D003,y)insertintojudge_schemevalues(J002,I001,D001,y)insertintojudge_schemevalues(,J003,I001,DOO1,y)insertintojudge_schemevalues(,J004,I001,DOO1,y)insertintojudge_schemevalues(,J005,1I001,D001,y)ifexists(
31、select*fromsysobjectswherename=collage)goprintdroptablecollageprintcreatecollageGOcreate table collage(collage_no char(4)学院信息表collage_namechar(20)notnull,*学院名称*/last_positionchar(6)null,*上届运动会名次*/max_positionchar(6)null,/*历史最高名次*/total_scoreintnull,/*本次运动会总分*/positionchar(6)null,/*本次运动会名次*/*学院编号*/no
32、tnullprimarykeycheck(collage_nolike,C0-90-90-9),g插入数据insertintocollageVahIeS(COoP,H商管理学院;第二名0,mH)insertintocollageVaIUeS(Coo2?会计学院:第二名?第名:0,null)insertintocollageVaIUeScCoO3,金融学院,第四名,第二名,0,HlH)insertintocollageVahIeS(Coo4;公共管理学院?第六名?第三名;0,null)insertintocollageVahIeS(CoO5;信息管理学院,第三名?第一名,0,null)运发动信息
33、表(只记录个人工程中的运发动信息)createtableathlete(athlete_nochar(4)notnullprimarykey*运发动编号*/check(athlete_nolike,A0-90-90-9),stu_noathlete_namesexcollage_nochar(7)notnull,*学号*/char(10)notnull,*姓名*/char(1)notnull,*性别*/char(4)notnull,*学院号*/check(sexin(T,m),foreignkey(collage_no)referencescollage(collage_no)g。插入数据in
34、sertintoathleteVaIUeS(A001,0050002,胡东平,m,C001)insertintoathleteValUeS(A002,0050113?关B晓,fC001)insertintoathleteValUeS(A003,0050241?张超俊,m,C001)insertintoathletevalues(,A004,0050143,(J波,m,C001)insertintoathleteValUeSCAOo5,0050201刘伟,m,C001)go个人工程奖励表(名次为0表示破记录)createtableperson_prize(positionSinallintnot
35、nullprimarykey,*名次*/scoretinyintnotnull,*奖励分数*/prizechar(40)null,*奖励物品*/moneytinyintnull/*奖励金额*/)g。插入数据insertintoperson_prizeVaIUeS(0,18;奖状,50)insertintoperson_prizeValUeS(1,9;奖状,25)insertintoperson_prizeValUeS(2,7;奖状,15)insertintoperson_prizeva!ues(7,2,NULL,NULL)insertintoperson_prizevalues(8,1,NUL
36、L,NULL)个人工程比赛表createtablesig_match(athlete_nochar(4)notnull,*运发动编号*/check(athlete_nolike,A0-90-90-9),item_nochar(4)notnull,*工程号*/resultnumeric(9,2)null,*成绩*/positionSmallintnull,*名次*/isattendchar(1)null,*是否参赛*/primarykey(athlcte_no,item_no),foreignkey(position)referencesperson_prize(position),foreig
37、nkey(athlete_no)referencesathlete(athlete_no),foreignkey(item_no)referencesmatch_item(item_no),check(isattendin(yn)g插入数据insertintosig_match(athlete_no,item_no,isattend)values(,A001,1001,y)insertintosig_match(athlete_no,item_no,isattend)values(A003I00,y)insertintosig_match(athlete_no,item_no,isattend
38、)values(,A022,I001,y)insertintosig_match(athlete_no,item_no,isattend)values(,A026,I001,y)insertintosig_match(athlete_no,item_no,isattend)values(,A036,I001,y)go个人工程破记录表createtablesig_record(item_nochar(4)notnull,*工程号*/stu_namechar(l0)notnull,*破记录者姓名*/collage_nochar(4)notnull,*学院编号*/resultchar(20)notn
39、ull,/*成绩*/timedatetimenotnull,/*破记录时间*/primarykey(item_no,stu_name),foreignkey(item_no)referencesmatch_item(item_no),foreignkey(collage_no)referencescollage(collage_no)Go集体工程奖励表(0表示破记录)createtabletogether_prize(positiontinyintnotnullprimarykey,*名次*/scoretinyintnotnull,*奖励分数*/prizechar(40)null,*奖励物品*
40、/moneytinyintnull,/*奖励金额*/)go插入数据insertintotogether_prizeVaIUeS(0,36,奖状,200)insertintotogether_prizeValUeS(1,18,奖状00)insertintotogether_prizevalues(6,8,NULL,NULL)insertintotogether_prizevalues(7,6,NULL,NULL)insertintotogether_prizeVaIUeS(8,4,NULL,NULL)集体工程比赛表createtabletogether_match(collage_nochar(4)notnull,*学院号*/item_nochar(4)notnull,*工程编号*/resultchar(20)null,*成绩*/positiontinyintnull,/*名次*/isattendchar(1)null,/*是否参赛*/primarykey(collage_no,item_no),foreignkey(collage_no)referencescollage(collage_no),forei