数据库课程设计报告——足球联赛管理系统的设计与实现

数据库课程设计报告

足球联赛管理系统的设计与实现

    级:

组长:

学号:

姓名:

组员1:

学号:

姓名:

组员2:

学号:

姓名:

指导教师:

年  月    日

目  录

一、问题描述.... 3

二、任务要求.... 3

1.必做任务... 4

2.选做任务一... 4

3.选做任务二... 4

三、数据库设计.... 4

1.E/R图... 5

2. 属性的说明... 5

3.数据依赖关系说明.. 6

4.关系的模式描述... 7

四、关系数据库创建.... 8

1.建立数据库的SQL定义.. 8

2.数据库关系图.. 8

五、数据库其他设计.... 8

1.索引... 8

2.视图... 8

3.存储过程... 8

4.触发器... 8

六、功能实现.... 8

七、设计总结.... 8

八、小组分工.... 8

九、参考文献... 9

十、附件... 9

一、问题描述

拟为足球联赛设计一个管理系统,记录球队、赛事的相关信息,已经获取的需求信息如下:

(1) 球队信息主要包括:球队编号,名称,成立时间,人数,主场地址,主教练。

(2) 球员信息主要包括:姓名,身份证号,生日,身高,家庭住址。

(3) 主教练信息主要包括:姓名,身份证号,生日,资格证书号,级别。

(4) 主裁判信息主要包括:姓名,身份证号,生日,资格证书号,证书获得日期,级别。

(5) 每支球队有一名主教练,若干名球员。

(6) 一名主教练只能受聘于一支球队。

(7) 一名球员只能效力于一支球队。

(8) 每支球队都有一个主场地,且不与其他球队的主场重合。

(9) 联赛采用主客场循环制,每周进行一轮比赛,且每一轮的所有比赛同时进行,每支球队都要和其它球队分别比赛最少一次。

(10) 联赛的排名采用积分制,赢一场3分,平一场1分,输一场0分。

同分情况下一般考虑:相互间的净胜球、进球数、红牌数、黄牌数,总的净胜球、进球数、红牌数、黄牌数等。

(11) 赛后需要根据进球数,处罚情况评球员个人奖项。

二、任务要求

每一组需要完成必做任务、选做任务一中的一个任务,选做任务二中的一个任务,用MySQL建立数据库,用Java语言实现选做任务的功能。老师将根据系统的完成度、图形用户界面设计的合理性、操作的流畅性、代码的可读性、代码的健壮性以及说明书的规范性等方面进行评分。

1.必做任务

数据库的完整的设计与创建

2.选做任务一

1)基础数据维护模块

为赛事组织方,实现对球队信息的浏览、添加、修改、删除、查询等功能。

2)基础数据维护模块

为赛事组织方,实现队员信息的浏览、添加、修改、删除、查询等功能。

3)基础数据维护模块

为赛事组织方,实现裁判员信息的浏览、添加、修改、删除、查询等功能。

4)基础数据维护模块

为赛事组织方,实现教练员信息的浏览、添加、修改、删除、查询等功能。

3.选做任务二

1)安排比赛模块

为赛事组织方,实现循环赛的赛事(包括比赛及裁判)安排、浏览、查询功能。

2)比赛数据管理模块

为赛事的组织方,实现浏览、填写、修改比赛结果(包括进球、黄牌,红牌等)及成绩(自动计算)的功能。

3)赛事发布模块

为足球爱好者提供浏览、查询(允许用户给出查询条件)所有比赛及成绩及排名功能。

4)赛事统计功能

为足球爱好者提供可视化(诸如柱状图,饼形图,雷达图、折线图等)的分类统计分析功能。

为赛事的组织方提供可视化的分类统计分析功能。

三、数据库设计

1.E/R图

E-R图


说明:可以画成多个图,也可以一张图

2. 属性的说明

关于各个实体的属性的特性的说明

实体名:球队

属性名

属性的描述

属性的约束等说明

属性的特性说明

球队编号

编号

主码

非空

名称

名称

非空

成立时间

成立时间

非空

人数

球队人数

主场地址

地址

非空

实体名:球员

属性名

属性的描述

属性的约束等说明

属性的特性说明

姓名

姓名

非空

身份证号

身份证号

主码

非空

生日

生日

非空

身高

身高

非空

家庭住址

住址

非空

实体名:主教练

属性名

属性的描述

属性的约束等说明

属性的特性说明

姓名

姓名

非空

身份证号

身份证号

主码

非空

生日

出生日期

非空

身高

身高

非空

家庭住址

住址

非空

实体名:裁判

属性名

属性的描述

属性的约束等说明

属性的特性说明

姓名

姓名

非空

身份证号

身份证号

主码

非空

生日

生日

非空

资格证书号

资格证书号

非空

级别

级别

非空

资格证书获得日期

资格证书获得日期

非空

3.数据依赖关系说明

球队:球队编号->名称;球队编号->成立时间;球队编号->主场地址;球队编号->人数。

球员:身份证号->姓名;身份证号->生日;身份证号->身高;身份证号->家庭住址。

主教练:身份证号->姓名;身份证号->生日;资格证书号->级别。

裁判:身份证号->姓名;身份证号->生日;资格证书号->级别;资格证书号->证书获得日期。

4.关系的模式描述

关系名:球队

函数依赖

球队编号à名称, 成立时间,人数,主场地址

范式级别

2NF

属性名

属性的描述

属性的类型

约束

备注

球队编号

编号

单值

主码

非空

名称

队名

单值

非空

成立时间

成立时间

单值

非空

人数

人数

派生

非空

主场地址

主场球馆

多值

非空

主教练

主教练

单值

外码

非空

关系名:球员

函数依赖

身份证号à姓名,生日,身高,家庭住址

范式级别

2NF

属性名

属性的描述

属性的类型

约束

备注

身份证号

身份证号

单值

主码

非空

姓名

姓名

单值

非空

生日

出生日期

单值

非空

身高

身高

简单

非空

家庭住址

家庭住址

复合

非空

关系名:主教练

函数依赖

身份证号à姓名,生日,资格证书号,级别

范式级别

2NF

属性名

属性的描述

属性的类型

约束

备注

身份证号

身份证号

单值

主码

非空

姓名

姓名

单值

非空

生日

出生日期

单值

非空

资格证书号

资格证书号

单值

非空

级别

级别

多值

非空

四、关系数据库创建

1.建立数据库的SQL定义

TEAM:

字段

数据类型

长度

是否主键

是否可空

NAME

VARCHAR

20

HOME

VARCHAR

30

COACH

VARCHAR

20

MEMBER:

字段

数据类型

长度

是否主键

是否可空

NAME

VACHAR

20

TEAMNAME

VACHAR

20

MUMBER

INT

POSITION

VARCHAR

6

HEIGHT

INT

WEIGHT

INT

BIRTHDATE

DATETIME

course:

字段

数据类型

长度

是否主键

是否可空

home

VACHAR

20

away

VACHAR

20

turn

INT

matchdate

DATETIME

6

homescore

INT

awayscore

INT

goal:

字段

数据类型

长度

是否主键

是否可空

teamname

VACHAR

20

MUMBER

INT

turn

INT

goaltime

DATETIME

score:

字段

数据类型

长度

是否主键

是否可空

place

INT

NAME

VACHAR

20

turn

INT

won

INT

even

INT

beaten

INT

goal

INT

lost

INT

net

INT

POINT

INT

goalscore:

字段

数据类型

长度

是否主键

是否可空

place

INT

NAME

VACHAR

20

teamname

VARCHAR

20

NUMBER

INT

goals

INT


2.数据库关系图

五、数据库其他设计

1.索引

2.视图

3.存储过程

4.触发器

插入球队触发插入积分表

--当向球队表Team中插入一行数据时,会自动向积分榜Score中插入一条对应的数据

create trigger teaminsert on team

for insert

as

declare @name varchar(20)

select @name=NAME from inserted

insert into score(PLACE,NAME,TURN,WON,EVEN,BEATEN,GOAL,LOST,NET,POINT) values(0,@name,0,0,0,0,0,0,0,0)

修改球队名称时自动调整相关表格中的球队名称

create trigger TeamUpdate

on Team

instead of update

as

declare @oldName varchar(20)

declare @oldHome varchar(30)

declare @oldCoach varchar(20)

declare @newName varchar(20)

declare @newHome varchar(30)

declare @newCoach varchar(20)

select @oldName=name, @oldHome=home, @oldCoach=coach from deleted

select @newName=name, @newHome=home, @newCoach=coach from inserted

if (@oldName<>@newName)

begin

       begin transaction

              insert into team(name,home,coach) values(@newName,@newhome,@newCoach)

              delete from score where name=@newName

              update goal set teamname=@newName where teamname=@oldName

              update member set teamname=@newName where teamname=@oldName

              update course set home=@newName where home=@oldName

              update course set away=@newName where away=@oldName

              update score set name=@newName where name=@oldName

              delete from team where name=@oldName

       commit

end

else

       update team set home=@newhome, coach=@newCoach where name=@oldName

六、功能实现

每一位同学分别描述自己所实现的功能,实现的方法和效果

七、设计总结

每一位同学分别谈谈你在设计中遇到的问题,解决的过程及收获及不足等。

八、小组分工

九、参考文献

1.数据库应用技术《北京邮电大学出版社》

2.mysql数据库设计和优化 - 简书 (jianshu.com)

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值