运动会管理系统 1.docx

上传人:b****5 文档编号:4503388 上传时间:2022-12-01 格式:DOCX 页数:27 大小:956.66KB
下载 相关 举报
运动会管理系统 1.docx_第1页
第1页 / 共27页
运动会管理系统 1.docx_第2页
第2页 / 共27页
运动会管理系统 1.docx_第3页
第3页 / 共27页
运动会管理系统 1.docx_第4页
第4页 / 共27页
运动会管理系统 1.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

运动会管理系统 1.docx

《运动会管理系统 1.docx》由会员分享,可在线阅读,更多相关《运动会管理系统 1.docx(27页珍藏版)》请在冰豆网上搜索。

运动会管理系统 1.docx

运动会管理系统1

一﹑设计目的:

按照关系型数据库的基本原理,综合运用所学知识,完成运动会管理数据库应用系统的设计全过程,包括需求分析、数据库设计、数据库建立,数据输入、应用系统的设计和开发、用户界面的设计和实现、系统安装和调试。

通过对一个实际问题的分析、设计实现,将原理与应用结合,学会学以致用,并能够解决实际问题。

二、实验平台:

1、visio2003:

E-R图;

2、SQL2005。

三、试题内容:

根据给定的“运动会管理系统”的需求分析,完成概念结构设计、

逻辑结构设计、数据库的物理设计、数据库的访问和数据库维护等内容,并提交完整的课程设计报告。

四、设计步骤

1.需求分析

引入计算机管理运动会,运动可以在运动会管理系统中查询自己的比赛项目及比赛结果,裁判员或工作人员可以通过系统记录运动员各个比赛项目的成绩、进行成绩统计等。

运动会管理系统保存运动员、比赛项目以及不同类型的比赛的参数数据。

对于运动员来说:

可以查看运动员所在代表队的名称、领队、本代表队的总积分、总名次;查看运动员参加比赛的项目、每个项目的成绩、积分等。

对于管理员来说:

可以记录并查看运动员参加比赛项目的成绩、积分、名次;查看各代表队的总积分、总名次等。

运动会管理系统同主要管理对象有代表队、运动员、比赛项目等。

对于代表队,需要有代表队号、代表队的名称、领队、本代表队的总积分、总名次等属性;对于运动员需要有运动员号、姓名、年龄、性别等属性;对于比赛项目,需要有项目号、项目类别、项目名称、成绩单位等属性。

在运动会管理系统中,基本规定为:

一个代表队包含多个运动员,一个运动员只能属于一个代表队;一个运动员可以参加多个比赛项目,一个比赛项目也可以被多个运动员参加;假设各个比赛项目结束后,按照成绩由高到低排出名次,并对前3名运动员给予相应的积分,如第1、2、3名分别积分为3分、2分、1分,而获得其他名次的运动员积分为0分,将代表队中所有成员的积分累加,得到各代表队总积分,将总积分由高到低排序,得到各个代表队的排名情况。

为简化系统需求,本系统只考虑代表队、运动员、比赛项目的关系,其他关系不考虑。

2.概念结构设计

(1)抽象出实体,并画出各实体的E-R图;

(2)分析各实体之间的联系及类型,设计运动会管理系统总体E-R图。

3.逻辑结构设计

逻辑结构设计:

根据E-R图,设计运动会管理数据库的关系模式。

(1)、运动员(运动员号,姓名,年龄,性别);

(2)、代表队(代表队号,队名称,领队,总积分,总名次);

(3)、比赛项目(项目号,项目类别,项目名称,成绩单位);

(4)、参加(运动员号,项目号,成绩,积分,名次)。

4.数据库物理设计与实现

(1)建立“运动会管理系统”数据库

其初始大小为100MB,增长率为10%,数据文件和日志文件名分别为:

“运动会管理系统_data”和“运动会管理系统_log”,存储路径为“E:

\data”文件夹下。

创建运动会数据库SQL代码如下:

CREATEDATABASE运动会管理系统--创建数据库

ON(

NAME=运动会管理系统1_data,--主数据文件的逻辑名

FILENAME='E:

\data\运动会管理系统.mdf',--主数据文件的物理名

SIZE=100MB,--初始大小

MAXSIZE=200MB,

FILEGROWTH=10%--增长率

LOGON(

NAME=运动会管理系统1_log,--日志文件的逻辑名

FILENAME='E:

\data\运动会管理系统.ldf',--日志文件的物理名

SIZE=1MB,

MAXSIZE=20MB,

FILEGROWTH=10%

GO

(2)建立基本表

①创建代表队表

创建代表队表SQL代码:

CREATETABLE代表队

代表队号CHAR(10)NOTNULLPRIMARYKEY,

队名称CHAR(20)NOTNULL,

领队CHAR(10)NOTNULL,

总积分INTNOTNULLCHECK(总积分>=0),

总名次INTNOTNULLCHECK(总名次>=0),

②创建运动员表

创建运动员表SQL代码:

CREATETABLE运动员

运动员号CHAR(6)NOTNULLPRIMARYKEY,

姓名CHAR(10)NOTNULL,

性别CHAR(10)NOTNULLCHECK(性别='男'or性别='女'),

年龄TinyintNOTNULLCHECK(年龄>1and年龄<100),

代表队号CHAR(10)NOTNULL,

③创建比赛项目表

创建比赛项目表SQL代码:

CREATETABLE比赛项目

项目号CHAR(6)NOTNULLPRIMARYKEY,

项目类别CHAR(10)NOTNULL,

项目名称CHAR(20)NOTNULL,

成绩单位CHAR(20)NOTNULL,

④创建比赛详情表

创建比赛详情表SQL代码:

CREATETABLE比赛详情

运动员号CHAR(6)NOTNULL,

项目号CHAR(6)NOTNULL,

成绩Float,

积分TinyintCHECK(积分>=0),

名次TinyintCHECK(名次>=0),

CONSTRAINT运动会管理系统_比赛详情_运动员号FOREIGNKEY(运动员号)REFERENCES运动员(运动员号),

CONSTRAINT运动会管理系统_比赛详情_项目号FOREIGNKEY(项目号)REFERENCES比赛项目(项目号),

(3)管理基本表

(3-1)向运动员表中增加“身高”列,其数据类型为整型。

SQL代码:

altertable运动员add身高INTNULL

原运动员表:

增加了身高列:

(3-2)将运动员表中的“身高”的数据类型改为浮点型。

SQL代码:

altertable运动员altercolumn身高float

(3-3)为运动员表中的“身高”属性增加取值必须大于0的约束条件。

SQL代码:

altertable运动员addconstraint运动会管理系统_运动员_身高check(身高>0)

(3-4)删除运动员表中的“身高”列。

altertable运动员dropconstraint运动会管理系统_运动员_身高

altertable运动员dropcolumn身高

身高列已删除:

(4)使用Insert语句插入数据,各表中的数据如下:

(4-1)代表队表数据

SQL代码:

代表队

insertinto代表队values('GLXY','管理学院','吴道福','7','2')

insertinto代表队values('JSJXY','计算机学院','张鹏','6','3')

insertinto代表队values('SXXY','数学学院','宋威','3','4')

insertinto代表队values('WYXY','外语学院','王光明','8','1')

打开代表队表:

(4-2)运动员表数据

SQL代码:

insertinto运动员values('G11001','钱翔','男','14','GLXY')

insertinto运动员values('G11002','吴帆','男','16','GLXY')

insertinto运动员values('G11003','石乔乔','女','16','GLXY')

insertinto运动员values('G11004','张桂芳','女','19','GLXY')

insertinto运动员values('G11005','洪雪','女','18','GLXY')

insertinto运动员values('J11001','张月','女','19','JSJXY')

insertinto运动员values('J11002','田楠','男','18','JSJXY')

insertinto运动员values('J11003','赵恒博','男','18','JSJXY')

insertinto运动员values('J11004','徐铜铃','男','15','JSJXY')

insertinto运动员values('J11005','李明','男','16','JSJXY')

insertinto运动员values('S11001','崔天齐','男','18','SXXY')

insertinto运动员values('S11002','王尹','女','16','SXXY')

insertinto运动员values('S11003','刘冰洁','女','18','SXXY')

insertinto运动员values('S11004','杨中华','男','15','SXXY')

insertinto运动员values('S11005','李雪平','女','15','SXXY')

insertinto运动员values('W11001','叶星','男','18','WYXY')

insertinto运动员values('W11002','顾羽翔','男','16','WYXY')

insertinto运动员values('W11003','袁建明','男','15','WYXY')

insertinto运动员values('W11004','刘琼','女','17','WYXY')

insertinto运动员values('W11005','孟储强','男','19','WYXY')

打开运动员表:

(4-3)比赛项目表数据

SQL代码:

insertinto比赛项目values('JS001M','径赛','男子米','秒')

insertinto比赛项目values('JS002W','径赛','女子米','分钟')

insertinto比赛项目values('TS001M','田赛','男子三级跳远','米')

insertinto比赛项目values('TS002W','田赛','女子铅球','米')

打开比赛项目表:

(4-4)比赛详情表数据

SQL代码:

insertinto比赛详情values('S11001','JS001M','12.91','3','1')

insertinto比赛详情values('J11005','JS001M','13.15','2','2')

insertinto比赛详情values('J11002','JS001M','13.19','1','3')

insertinto比赛详情values('S11004','JS001M','13.55','0','4')

insertinto比赛详情values('W11004','JS002W','1.24','3','1')

insertinto比赛详情values('J11001','JS002W','1.25','2','2')

insertinto比赛详情values('G11004','JS002W','1.32','1','3')

insertinto比赛详情values('G11003','JS002W','2.02','0','4')

insertinto比赛详情values('W11005','TS001M','5.47','3','1')

insertinto比赛详情values('W11002','TS001M','5.15','2','2')

insertinto比赛详情values('J11003','TS001M','5.11','1','3')

insertinto比赛详情values('S11004','TS001M','4.98','0','4')

insertinto比赛详情values('G11004','TS002W','5.72','3','1')

insertinto比赛详情values('G11003','TS002W','5.38','2','2')

insertinto比赛详情values('G11005','TS002W','5.21','1','3')

insertinto比赛详情values('W11004','TS002W','5.02','0','4')

打开比赛详情表:

(5)建立和管理视图

(5-1)生成一张“项目类别”为“田赛”的视图,并将该视图命名为“田赛项目”。

createview田赛项目asselect*from比赛项目where项目类别='田赛'

打开田赛项目视图:

(5-2)生成一张“项目类别”为“径赛”的视图,并将该视图命名为“径赛项目”。

createview径赛项目asselect*from比赛项目where项目类别='径赛'

打开径赛项目视图:

(6)建立和管理索引

(6-1)为运动员表中的“姓名”建立次索引。

createindexsportnameon运动员(姓名)

(6-2)为项目表中的“项目类别”建立次索引。

createindexclassificationon比赛项目(项目类别)

5.数据库访问

数据查询:

(1)查询姓名为“杨中华”的运动员的运动员号和所在的代表队号。

select运动员.运动员号,运动员.代表队号

from运动员

where姓名='杨中华'

(2)查询代表队号为“JSJXY”的所有成员姓名。

select姓名from运动员where代表队号='JSJXY'

(3)统计项目名称为“男子100米”比赛的参赛运动员名称、年龄、项目号、项目名称、成绩,并按成绩由高到低排列。

select运动员.姓名,运动员.年龄,比赛详情.项目号,比赛项目.项目名称,比赛详情.成绩

from运动员,比赛详情,比赛项目

where比赛详情.项目号=比赛项目.项目号and运动员.运动员号=比赛详情.运动员号and项目名称='男子米'

orderby比赛详情.成绩desc

(4)查询“杨中华”参加的比赛项目的情况。

select运动员.姓名,比赛详情.运动员号,比赛详情.项目号,比赛项目.项目名称,比赛详情.成绩,比赛详情.积分,比赛详情.名次

from运动员,比赛项目,比赛详情

where比赛详情.项目号=比赛项目.项目号and运动员.运动员号=比赛详情.运动员号and姓名='杨中华'

(5)列出运动员号为“G1104”的运动员的所有的个人信息及比赛信息。

select比赛详情.运动员号,运动员.姓名,运动员.性别,运动员.年龄,

运动员.代表队号,比赛详情.项目号,比赛项目.项目类别,

比赛项目.项目名称,比赛详情.成绩,比赛详情.积分,比赛详情.名次from运动员,比赛项目,比赛详情

where比赛详情.项目号=比赛项目.项目号and运动员.运动员号=比赛详情.运动员号and运动员.运动员号='G11004'

(6)统计代表队号为“JSJXY”的参加比赛的各个运动员的积分情况,并且按积分由大到小的顺序排序。

select比赛详情.运动员号,运动员.姓名,比赛详情.积分

from运动员,比赛详情

where运动员.运动员号=比赛详情.运动员号and运动员.代表队号='JSJXY'

orderby比赛详情.积分

desc

(7)统计所有比赛项目中,同一个运动员号的运动员的积分情况。

Select运动员.运动员号,运动员.姓名,比赛项目.项目号,比赛详情.积分

from运动员,比赛详情,比赛项目

where比赛项目.项目号=比赛详情.项目号

and比赛详情.运动员号=运动员.运动员号

(8)查询个人总积分大于等于3的运动员的情况。

Select运动员.运动员号,运动员.姓名,运动员.性别,运动员.年龄,运动员.代表队号

from运动员,比赛详情

where运动员.运动员号=比赛详情.运动员号

and比赛详情.积分>=3

数据更新:

(1)增加一名新的运动员,要求运动员号:

S11006;姓名:

王林;性别:

男;年龄:

17;代表队号:

SXXY。

insertinto运动员(运动员号,姓名,性别,年龄,代表队号)

values('S11006','王林','男','17','SXXY')

原来未增加运动员的运动员表:

增加了运动员的运动员表:

(2)将“王林”的年龄更新为16。

update运动员set年龄='16'where姓名='王林'

原来‘王林’的年龄为16,年龄家1后为17:

(3)将运动员号为“S11006”的运动员的代表队号更新为“GLXY”。

update运动员set代表队号='GLXY'where运动员号='S11006'

修改前运动员号为‘S11006’的运动员队号为:

SXXY,

修改后为‘GLXY’:

(4)将所有运动员的年龄加1。

update运动员set年龄=年龄+1

年龄增加前后运动员表年龄对比表:

(5)由于测算问题,需要将项目号为“TS001M”的比赛成绩全部减少0.5米。

update比赛详情set成绩=成绩-0.5where项目号='TS001M'

项目号为‘TS001M’的成绩减少前后对比表:

(6)删除运动员号为“S1106”的运动员信息。

Deletefrom运动员where运动员号='S11006'

删除后的运动员表:

(运动员号为:

S1106的王林运动员已被删除)

6.数据库备份

(1)使用SQL语句备份数据库

(1-1)创建备份设备

SQL代码:

EXECsp_addumpdevice'DISK','mybackup1',

'D:

\sql\mybackup'

(1-2)备份数据库

BACKUPDATABASE运动会管理系统ToDISK='D:

\sql\运动会管理系统.BAK'

5、课程设计小结:

通过这学期对SQL Server2005的实践设计,结合本学期对SQL Server2005的学习,使我较为熟练的掌握了SQL Server2005的使用。

 

这很大部分是老师的功劳。

这次我设计了一个“运动会管理系统”的数据库。

通过本次的试验,我基本掌握了设计一个数据库的方法。

在这次课程设计中,我体会了专注地工作的滋味。

翻书本,搜资源,请教老师和同学,循序渐进,一边做设计,一边学习到了设计之外的东西。

凡事要耐心专心,这样,事情就可以做好。

在做设计的时候,是一个学习认识的过程,在这个过程中,我受到了很多启发,获益菲浅。

由于我对编程和SQL语句的不熟悉,在这方面遇到了不少问题,不过老师将上次所设计的“图书管理系统”数据库的代码发给了我们,在代码上给了我很大的帮助。

由于自己知识的不足,在设计数据库时出现了不少大大小小的问题。

一个小小的、不经意的错误都可以让你百思不得其解。

这就要求我们在做课程设计时一定要小心又小心,千万不能有一丝的马虎。

一个极小的错误足让你所有的心血化为乌有。

 

另外,在这次的课程设计中,我得到了老师和同学的热心帮助,在此要感谢老师和同学。

很多时候,同学间的互助是较为直接和快捷的。

同学之间还可以互相讨论,研究。

许多的问题就是这样发现和得以解决的,也因此,我们同学间的合作更加紧密了。

六、主要参考文献:

1、《软件工程及实践》,电子工业出版社,窦万峰,郑阿奇。

2、《数据库技术与应用》,清华大学出版社,顾斌。

3、《数据库系统原理教程》,清华大学出版社,王珊、陈虹;

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1