足球联赛管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
职业足球联赛管理系统
学 院: 专业班级: 姓 名: 学 号: 指导老师:
计算机学院 计 Y111 班
201100403025 原庆能
2014 年 1 月 8 日
一、引言
足球管理信息系统,其目的在于利用现代化的计算机及其网络手 段,对足球联赛进行数据管理,提高技术统计和计分工作的工作效率, 确保数据的安全性和准确性,实现自动化数据统计。系统作用在于信 息及时传递;协同工作,提高效率;保证资料的完整性和连续性,信 息、设备、资源共享,加强安全保密。
足球联赛管理信息系统建立的整体解决方案涵盖了编辑录入和数 据查询 2 大部分,其下又含有人员资料录入、比赛信息录入,以及各 种技术统计、数据查询等多种业务工作流程。
实训项目要实现的功能如下: 1.球员的查询
通过存储过程输入球员的姓名,来查询球员的相关信息,包括 姓名、所属球队、位置、身高、体重、年龄。 2.查询球员表 通过存储过程,把球员表的所有相关信息都显示出来。 3.查询积分榜 通过存储过程,把积分榜中的所有相关信息都显示出来。 4.球员的插入 通过存储过程,输入球员的相关信息,包括姓名、所属球队、 位置、身高、体重、年龄。把这些信息插入到球员表中。在插入 的同时,与球员相关的积分榜也插入该球员信息。 5.球员的删除 通过存储过程,输入球员的姓名,然后查询到该球员,把该球 员所在的表:球员表、积分榜中都删除该球员的信息。 6.统计球队球员数 通过存储过程,输入所要统计的球队名,把该球队的球员数统 计出来。 7.统计球队数 通过存储过程,把球队表中的球队统计出来 8. 修改球员位置
)
end
create procedure p_球队球员 @球队名 varchar(20)
as begin
select 球队名,球员姓名 from v_球队球员 where 球队名=@球队名 end exec p_球队球员 '巴塞罗那
6、创建视图
create view v_球队球员 (球队名,球员姓名) as
球员表 ([年龄]>(20) AND [年龄]<(40) AND [体重]>(60) AND [体 重]<(100) AND [身高]>(160) AND [身高]<(200))
5、创建存储过程
/********************************* 插入
************************************/ create procedure 插入球员
1、概念模型设计
根据需求分析,可以抽象出球队、球员、比赛进程、射手榜、积 分榜 5 个实体
足球联赛管理数据库全局 ER 图:
失球数 场
产生
进球 数场
平场 场
积分榜 1
N 名称
主场
总场 数
主教练
胜场
负场 场 积分
姓名
净胜球
年龄
位置
主队
球队 2
1 属于
主队比分
N 球员 N
身高 体重
客队
进行
1 比赛进程
declare @球员姓名 varchar(20), @球队名 varchar(20)
select @球员姓名=球员姓名 , @球队名=球队名
from inserted insert into 射手榜(球员姓名,球队名) values (@球员姓名,@球队名) go
五、JSP 界面显示
点击进入查询功能 点击球队查询
create procedure 统计球队球员数 @球队名 varchar(20)
as begin
select 球队名 , COUNT(球员姓名)as 球员数 from 球员 where 球队名 in(
select 球队名 from 球队 where 球队名=@球队名 ) group by 球队名 end exec 统计球队球员数 '巴塞罗那' /*******************/ create procedure 统计球队数 as begin select COUNT(球队名)as 球队总数 from 球队 end /*****************************/
客队比分 M
统计 1 射手榜
轮次
排名
2、逻辑模型设计 将足球联赛管理系统的 ER 图转换成如下关系模式集: 比赛进程(主队名,客队名,比赛轮次,主队比分,客队比分) 候选键:(主队名、客队名)
不存在局部依赖和传递,属于第三范式
wk.baidu.com
积分榜(名次,球队名,总场数,胜场,平场,负场,进球数,
失球数,净胜球,积分)
@姓名 varchar(20), @球队名 varchar(20), @位置 varchar(6), @身高 float, @体重 float, @年龄 int as begin insert into 球员(球员姓名,球队名,位置,身高, 体重,年龄) values(@姓名,@球队名,@位置,@身高,@体重, @年龄) end exec 插 入 球 员 ' 张 二 ',' 皇 家 马 德 里 ',' 门 将 ','176','74','27' select * from 球员 /*********************************
候选键:球队名
球队名—>(胜场,平场,负场,进球数,失球数)
(胜场,平场,负场)
(总场数,积分)
(进球数,失球数)
净胜球
属于第二范式
球队(球队名,主场,主教练)
候选键:球队名
球队名—>(主场,主教练)
属于第三范式。
球员(球员姓名,球队名,位置,身高,体重,年龄)
候选键:(球员姓名,球队名)
(球员姓名,球队名)
(位置,身高,体重,年龄)
属于第三范式
射手榜(名次,球员姓名,球队名,进球数)
候选键:(球员姓名,球队名)
(球员姓名,球队名)
(名次,进球数)
属于第三范式
3、物理模型设计
球队表
属性
数据类 宽 主



度键


球队名 VARCHAR 20 是


主场
VARCHAR 30 否


主教练 VARCHAR 20 否
修改 ************************************/ create procedure 修改球员位置
@姓名 varchar(20), @位置 varchar(6)
as begin
update 球员 set 位置=@位置 where 球员姓名=@姓名 end exec 修改球员位置 '张三','中场'
create procedure 查询射手榜 as begin
select * from 射手榜 end
create procedure 查询球员表 as begin select * from 球员 end
/********************************* 统计
************************************/
二、需求分析
职业足球联赛管理系统所需要处理的数据有:球队名、主场、 主教练、球员姓名、位置、身高、体重、年龄、比赛轮次、主队、 客队、主队比分、客队比分、球队名次、总场数、胜场、负场、 平场、进球数、失球数、净胜球、积分、球员进球数等 23 项属性
1、功能分析
系统功能分析采用自顶向下的方法逐步细化系统的功能结构。根 据足球联赛信息管理的业务流程来识别系统的功能和过程。在此基础 上对系统的功能做出分析和设计。
通过存储过程,输入球员姓名和位置,查询到此人,并修改此
人的位置。
球队查询
三、系统总体结构
菜 单
查询 球员插入 球员修改
球员查询 赛事查询
四、运行环境及开发工具
积分统 计
Java 语言 Jdk1.7 tomcat 用 Eclipse 作为开发工具 后台数据库采用 SQL Server 2008
五、数据库设计
/********************************* 查询
************************************/ create procedure 查询球员
@姓名 varchar(20) as begin
select 球员姓名,球队名,位置,身高,体重,年龄 from 球员 where 球员姓名=@姓名 end exec 查询球员 '张三'
select 球队.球队名,球员姓名 from 球队,球员 where 球队.球队名=球员.球队名
'
7、创建触发器
1、当添加一名球员时,要把这个球员的名称以及该球员的相关信息一并插到积分榜中,这 样能够保证球员表与积分榜的球员一致, 2、当删除一名球员时,要在球员表,积分榜等表中,把这个球员的所有信息都删除
宽主


度键

名次
INT
否是否
球员姓名 球队名
VARCHA R
2 是否否
0
VARCHA R
2 是否否
0
进球数
INT
否是否
3、表的数据 球员表
球队表
比赛进程表
积分榜
射手榜
4、check 约束 球队表 ([胜场]>=(0) AND [总场数]>=(0) AND [平场]>=(0) AND [负
场]>=(0) AND [进球数]>=(0) AND [失球数]>=(0) AND [净胜 球]>=(0) AND [积分]>=(0))


球员表
属性
数据类型

主键 空



姓名
VARCHAR
20



球队名 VARCHAR
20



位置
VARCHAR
6



身高 体重
float float






年龄
int



比赛进程表
属性
主队名 客队名 比赛轮次 主队比分
数据类型

主键


VARCHAR
20


外键 是
VARCHAR INT INT
点击插入
六、安全性
创建一个 winuser 用户,该用户只有查看表和查看视图的权限。
七、测试
1、存储过程测试
exec 插入球员 '张三','皇家马德里','门将','176','74','27' exec 查询球员 '张三'
exec 修改球员位置 '张三','中场'
exec 删除球员 '张三' exec 查询球员 '张三'
20

是 否






客队比分
INT



积分榜
属性
名次 球队名 总场数 胜场 负场 平场 进球数 失球数 净胜球
数据类型
宽主空外
度键

INT
否是否
VARCHAR 20 是 否 否
INT
否是否
INT
否是否
INT
否是否
INT
否是否
INT
否是否
INT
否是否
INT
否是否
积分
INT
否是否
射手榜
属性
数据类型
create procedure 统计某球队总场数以及积分 @球队名 varchar(20)
as
begin select 球 队 名 ,( 胜 场 + 负 场 + 平 场 ) as 总 场
数,(胜场*3+平场) as 积分 from 积分榜 where 球队名 in( select 球队名 from 球队 where 球队名=@球队名
exec 统计球队球员数 '巴塞罗那' exec 统计某球队总场数以及积分 '皇家马德里' exec p_球队球员 '巴塞罗那'
2、触发器测试
exec 插入球员 '张三','皇家马德里','门将','176','74','27' exec 查询球员表 exec 查询射手榜
3、安全性测试 Winuer 登录 数据库中不存在存储过程
删除
************************************/ create procedure 删除球员
@姓名 varchar(20) as begin
delete from 球员 where 球员姓名=@姓名 end exec 删除球员 '张三' /*********************************
CREATE TRIGGER 球员变更 on 球员 for delete as
declare @球员姓名 varchar(20) select @球员姓名=球员姓名 from deleted delete from 射手榜 where 球员姓名=@球员姓名
go
create trigger tr_插入球员 on 球员 for insert as
拥有查看功能
不拥有插入和删除功能
八、总结
这次实训虽然只有短短的三天半,但实际上花的时间并不只有三 天半,连续了三周,心里一直惦记着如何去做好这次实训,一开始实 训的时候,完全不知道怎么起手。分析了一上午,才决定从概念设计 开始设计起来。但是看到周围的同学都在做表,心里面也挺着急的, 分析了一上午都没能分析个所以然出来,第一次设计的 ER 图也很糟 糕,很乱没有条理,看到别人都把表做完了,心里面更着急了。但是, 慢慢的,我发现了 ER 图设计好之后,我的数据库设计就更加有逻辑 性了,并不像他们那样,做着做着,主键,外键等都不知道如何去设 置,表与表之间经常出现冲突的现象。我觉得这是从概念设计到逻辑 设计再到物理设计的好处,这次实训的内容不复杂,万一在设计一个 更为复杂的数据库时,直接建表导致的错误就会很麻烦。所以,我是
相关文档
最新文档