资源描述
数据库课程设计报告
课程设计名称:世界杯赛事信息管理系统
专 业: 信息与计算科学
班 级:
学 生 姓 名:
指 导 教 师:
目 录
一:需求分析 3
1.1 系统背景 3
1.2 系统目标 3
1.3 系统功能 3
1.3.1 功能模块 4
1.3.2 子模块功能描述 4
1.4 数据需求 4
1.5 系统数据流图 5
二:概念结构设计 6
2.1 用户信息实体 6
2.2 赛事信息实体 6
2.3 球员信息实体 6
2.4 球队信息实体 7
2.5 新闻信息实体 7
2.6 图片信息实体 7
2.7 留言信息实体 8
2.8 积分信息实体 8
2.9 射手榜实体 8
2.10 总体信息实体 9
三:逻辑结构设计 10
3.1 初始关系模式 10
3.2 数据模型优化 10
3.3 用户子模式 11
四:SQL语言描述 13
4.1 数据定义 13
4.2 数据查询与更新 18
五:触发器设计 19
六:后记 22
一:需求分析
1.1 系统背景
随着世界杯比赛不断推进,比赛战况也相应的发生变化,有关比赛的各种信息量也不断增加,面对着庞大的信息量,传统的人工方式管理会导致比赛信息管理上的混乱,人力与物力过多浪费,从而使网站站长的负担过重,影响整个信息发布系统的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的网站管理系统,对比赛及球员资料进行集中统一的管理。
另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。数据库管理系统已从管业的应用程序包发展成为通用的系统软件。目前,对数据库各种模型的研究以及理论上的探讨都还在蓬勃开展,其应用也从一般管理扩大到计算机辅助设计、人工智能以及科技计算等领域。
数据库系统提高信息管理工作效率,作到信息的规范管理,科学统计和快速查询,让用户更好、更快、更方便地查询到最新世界杯战况。
1.2 系统目标
A. 为了解决各位球迷查询比赛时间、比赛得分等信息的不方便性,让大家随时随地了解世界杯动态;
B. 方便球迷了解他们所喜欢球队的球队信息、球员信息、球队历史等消息,做出对比;
C. 减少网站信息整合的工作量,减少工作失误与出错,完善对世界杯数据库系统的管理。
1.3 系统功能
1. 录入比赛时间、比赛场次、分组信息、比赛得分等基本信息;
2. 录入每日最佳射手等信息;
3. 比赛得分及晋级情况的基本信息的更新与维护;
4. 用户可根据球队、球员等字段查询球队历史、球员资料、本届世界杯积分情况等信息。
1.3.1 功能模块
1.3.2 子模块功能描述
1.用户管理模块:通过账号、密码登入系统,可根据球队、球员等字段查询球队、球员、本届世界杯得分等信息,在新闻中进行留言;
2.球队管理模块:添加球队信息,对球队的各属性进行添加、修改、删除;
3.球员管理模块:添加球员信息,对球员的各属性进行添加、修改、删除,通过对球员的管理,在射手榜体现相应排名;
4.赛事管理模块:添加赛事信息,对赛事的各属性进行添加、修改、删除,通过对赛事的管理,在积分榜体现球队的相应排名;
5.新闻管理模块:通过赛事信息进行新闻信息添加,对新闻的各属性进行添加、修改、删除,通过新闻信息进行图片信息添加,对图片的各属性进行添加、修改、删除;
1.4 数据需求
1. 用户信息:用户编号、用户名称、账号、密码;
2. 赛事信息:场次编号、比赛时间、比赛地点、主队编号、客队编号、主队名称、客队名称、比赛结果、裁判;
3. 球员信息:球员编号、球员姓名、所属球队、队服号码、位置、身高、体重;
4. 球队信息:球队编号、球队名称、所在小组、所在地区、主教练名;
5. 新闻信息:新闻编号、新闻标题、标题图片、作者、创建时间、新闻内容、留言统计、编者;
6. 图片信息:用图编号、新闻编号、图片名、标题;
7. 留言信息:留言编号、新闻编号、留言用户编号、留言时间、留言内容;
8. 积分信息;球队编号、球队名称、比赛场数、胜场数、平场数、负场数、进球总数、失球数、积分;
9. 射手榜:球员编号、球员姓名、排名、所属球队、进球总数、点球总数、乌龙球数。
1.5 系统数据流图
二:概念结构设计
2.1 用户信息实体
用户信息
用户编号
用户名称
账号
密码
图2-1用户信息实体E-R图
2.2 赛事信息实体
赛事信息
客队编号
主队编号
场次编号
比赛时间
比赛地点
主队名称
客队名称
比赛结果
裁判
图2-2 赛事信息实体E-R图
2.3 球员信息实体
球员信息
体重
球员编号
球员姓名
队服号码
位置
身高
所属球队
图2-3 球员信息实体E-R图
2.4 球队信息实体
球队信息
球队编号
主教练
球队名称
所在小组
所在地区
2-4 球队信息实体E-R图
2.5 新闻信息实体
新闻信息
创建时间
作者
新闻编号
场次
新闻标题
标题图片
留言统计
编者
新闻内容
图2-5 新闻信息实体E-R图
图片信息
用图编号
新闻编号
图片名
标题
2.6 图片信息实体
图2-6 图片信息实体E-R图
2.7 留言信息实体
留言信息
留言编号
新闻编号
用户编号
留言时间
留言内容
图2-7 留言信息实体E-R图
积分信息
进球总数
失球数
球队编号
积分
球队名称
比赛场数
负场数
平场数
胜场数
2.8 积分信息实体
图2-8 积分信息实体E-R图
2.9 射手榜实体
射手榜信息
乌龙球数
球员编号
球员姓名
进球总数
点球总数
排名
所属球队
图2-9 射手榜实体E-R图
2.10 总体信息实体
图2-10 总体信息实体E-R图
三:逻辑结构设计
3.1 初始关系模式
1.用户实体可转化为如下的关系模式,其中用户编号为用户模式的码:
用户(用户编号,用户名,账号,密码)
2.赛事实体可以转化成如下的关系模式,其中场次编号为比赛模式的码:
赛事(场次编号,比赛时间,比赛地点,主队编号,客队编号,主队名称,客队名称,比赛结果,裁判)
3.球员实体可以转化成如下的关系模式,其中球员编号为球员模式的码:
球员(球员编号、球员名字,所属球队,队服号码,位置,身高,体重)
4.球队实体可以转化成如下的关系模式,其中球队编号为球队模式的码:
球队(球队编号,球队名称,球队编号,所在地区,所在小组)
5新闻实体可以转化成如下的关系模式,其中新闻编号为新闻模式模式的码;
新闻(新闻编号,新闻标题,标题图片,作者,创建时间,新闻内容,留言统计,编者,场次)
6.图片实体可以转化为如下的关系模式,其中图片编号为图片模式的码:
图片(用图编号,标题,新闻编号,图片名)
7.留言实体可以转化成如下的关系模式,其中留言编号为该模式的码:
留言(留言编号,留言用户编号,留言时间,留言内容)
8.积分榜实体可以转化成如下的关系模式,其中球队编号为积分模式的码:
积分榜(球队编号,球队名称,比赛场数,胜场数,平场数,负场数,进球总数,失球数,积分)
9.射手榜实体可以转化成如下的关系模式,其中球员编号为射手模式的码:
射手榜(球员编号、球员姓名、排名、所属球队、进球总数、点球总数、乌龙球数)
10.比赛(场次编号,球队编号)
11.组成1(球员编号,球队编号)
12.提供(留言编号,新闻编号)
13.参与(留言编号,用户编号)
14.组成2(新闻编号,用图编号)
3.2 数据模型优化
1.用户实体可转化为如下的关系模式,其中用户编号为用户模式的码:
用户(用户编号,用户名,账号,密码)
2.赛事实体可以转化成如下的关系模式,其中场次编号为比赛模式的码:
赛事(场次编号,比赛时间,比赛地点,主队编号,客队编号,主队名称,客队名称,比赛结果,裁判,球队编号)
3.球员实体可以转化成如下的关系模式,其中球员编号为球员模式的码:
球员(球员编号、球员名字,所属球队,队服号码,位置,身高,体重,球队编号)
4.球队实体可以转化成如下的关系模式,其中球队编号为球队模式的码:
球队(球队编号,球队名称,球队编号,所在地区,所在小组)
5新闻实体可以转化成如下的关系模式,其中新闻编号为新闻模式模式的码;
新闻(新闻编号,新闻标题,标题图片,作者,创建时间,新闻内容,留言统计,编者,场次)
6.图片实体可以转化为如下的关系模式,其中图片编号为图片模式的码:
图片(用图编号,标题,新闻编号,图片名)
7.留言实体可以转化成如下的关系模式,其中留言编号为该模式的码:
留言(留言编号,留言用户编号,留言时间,留言内容,新闻编号,用户编号)
8.积分榜实体可以转化成如下的关系模式,其中球队编号为积分模式的码:
积分榜(球队编号,球队名称,比赛场数,胜场数,平场数,负场数,进球总数,失球数,积分)
9.射手榜实体可以转化成如下的关系模式,其中球员编号为射手模式的码:
射手榜(球员编号、球员姓名、排名、所属球队、进球总数、点球总数、乌龙球数)
10.组成2(新闻编号,用图编号)
3.3 用户子模式
l 积分信息表(球队名称,主教练名,所在小组,所在地区,积分,比赛场数,胜场数,平场数,负场数,进球总数,失球数
CREATE VIEW jifenbang (球队名称,主教练名,所在小组,所在地区,积分,比赛场数,胜场数,平场数,负场数,进球总数,失球数)
AS
SELECT qiudui.qiuduimingcheng,qiudui.zhujiaolianming,qiudui.suozaidiqu,qiudui.suozaidiqu,jifen.jifen,jifen.bisaichangshu,jifen.shengchangshu,jifen.pingchangshu,jifen.fuchangshu,jifen.jinqiuzongshu,jifen.shiqiushu FROM jifen JOIN qiudui ON jifen.qiuduibianhao=qiudui.qiuduibianhao
#实现积分榜的详细信息,面向用户,是用户查看方便
l 新闻图片信息表(新闻标题,用图名,图片标题,作者,新闻内容,编者,留言统计,创建时间)
CREATE VIEW xinwentupian (新闻标题,用图名,图片标题,作者,新闻内容,编者,留言统计,创建时间)
AS
SELECT xinwen.xinwenbiaoti,tupian.tupianming,tupian.biaoti,xinwen.zuozhe,xinwen.xinwenneirong,xinwen.bianzhe,xinwen.liuyantongji,xinwen.chuangjianshijian FROM xinwen JOIN tupian ON xinwen.biaotitupian=tupian.yongtubianhao
#将新闻与图片信息融合显示
l 射手榜前十信息表(球员姓名,位置,所属球队,排名,进球总数)
CREATE VIEW sheshouqianshi (球员姓名,位置,所属球队,排名,进球总数)
AS
SELECT qiuyuan.qiuyuanxingming,qiuyuan.weizhi,qiuyuan.suoshuqiudui,sheshou.paiming,sheshou.jinqiuzongshu FROM sheshou JOIN qiuyuan ON sheshou.qiuyuanbianhao=qiuyuan.qiuyuanbianhao WHERE sheshou.paiming < 10
#显示射手榜前十的球员基本信息
四:SQL语言描述
4.1 数据定义
CREATE TABLE yonghu (
yonghubianhao INT(8) NOT NULL PRIMARY KEY,
yonghumingcheng VARCHAR(20),
zhanghao VARCHAR(20),
mima VARCHAR(20)
)
表4-1 用户信息表
列名
数据类型
是否为主键
Yonghubiaohao
Int(8)
是
yonghumingcheng
Varchar(20)
否
zhanghao
Varchar(20)
否
mima
Varchar(20)
否
CREATE TABLE saishi (
changcibianhao INT(8) NOT NULL PRIMARY KEY,
bisaishijian VARCHAR(20),
bisaididian VARCHAR(20),
zhuduibianhao INT(8),
keduibianhao INT(8),
zhuduiming VARCHAR(20),
keduimingcheng VARCHAR(20),
bisaijieguo VARCHAR(20),
caipan VARCHAR(20)
)
表4-2 赛事信息表
列名
数据类型
是否为主键
Changcibianhao
Int(8)
是
Bisaishijian
Varchar(20)
否
Bisaididian
Varchar(20)
否
Zhuduibianhao
Int(8)
否
Keduibianhao
Int(8)
否
Zhuduimingcheng
Varchar(20)
否
Keduimingcheng
Varchar(20)
否
Bisaijieguo
Varchar(20)
否
Caipan
Varchar(20)
否
CREATE TABLE qiuyuan(
qiuyuanbianhao INT(8) NOT NULL PRIMARY KEY,
qiuyuanxingming VARCHAR(20),
suoshuqiudui VARCHAR(20),
duifuhaoma INT(2),
weizhi VARCHAR(20),
shengao VARCHAR(20),
tizhong VARCHAR(10)
)
表4-3 球员信息表
列名
数据类型
是否为主键
Qiuyuanbianhao
Int(8)
是
Qiuyuanxingming
Varchar(20)
否
Suoshuqiudui
Varchar(20)
否
Duifuhaoma
Int(2)
否
Weizhi
Varchar(20)
否
Shengao
Varchar(20)
否
Tizhong
Varchar(10)
否
CREATE TABLE qiudui (
qiuduibianhao INT(8) NOT NULL PRIMARY KEY,
qiuduimingcheng VARCHAR(20),
suozaixiaozu VARCHAR(20),
suozaidiqu VARCHAR(20),
zhujiaolianming VARCHAR(20)
)
表4-4 球队信息表
列名
数据类型
是否为主键
Qiuduibianhao
Int(8)
是
Qiuduimingcheng
Varchar(20)
否
Suozaixiaozu
Varchar(20)
否
Suozaidiqu
Varchar(20)
否
Zhujiaolianming
Varchar(20)
否
CREATE TABLE tupian (
yongtubianhao INT(8) NOT NULL PRIMARY KEY,
xinwenbianhao INT(8),
tupianming VARCHAR(20),
biaoti VARCHAR(20)
表4-6 图片信息表
列名
数据类型
是否为主键
Yongtubianhao
Int(8)
是
Xinwenbianhao
Int(8)
否
Tupianming
Varchar(20)
否
Biaoti
Varchar(20)
否
CREATE TABLE xinwen(
xinwenbianhao INT(8) NOT NULL PRIMARY KEY,
xinwenbiaoti VARCHAR(50),
biaotitupian VARCHAR(100),
zuozhe VARCHAR(20),
chuangjianshijian VARCHAR(20),
xinwenneirong VARCHAR(200),
liuyantongji VARCHAR(20),
bianzhe VARCHAR(20)
)
表4-5 新闻信息表
列名
数据类型
是否为主键
Xinwenbianhao
Int(8)
是
Xinwenbiaoti
Varchar(50)
否
Biaotitupian
Varchar(100)
否
Zuozhe
Varchar(20)
否
Chuangjianshijian
Varchar(20)
否
Xinwenneirong
Varchar(200)
否
Liuyantongji
Varchar(20)
否
Bianzhe
Varchar(20)
否
CREATE TABLE liuyan (
liuyanbianhao INT(8) NOT NULL PRIMARY KEY,
liuyanyonghubianhao INT(8),
liuyanshijian VARCHAR(20),
liuyanneirong VARCHAR(50),
xinwenbianhao INT(8)
)
表4-7 留言信息
列名
数据类型
是否为主键
Liuyanbianhao
Int(8)
是
Liuyanyonghubianhao
Int(8)
否
Liuyanshijian
Varchar(20)
否
Liuyanneirong
Varchar(50)
否
Xinwenbianhao
Int(8)
否
CREATE TABLE jifen (
qiuduibianhao INT(8) NOT NULL PRIMARY KEY,
qiuduimingcheng varchar(20),
bisaichangshu INT(8),
shengchangshu INT(8),
pingchangshu INT(8),
fuchangshu INT(8),
jinqiuzongshu INT(8),
shiqiushu INT(8),
jifen INT(8)
)
表4-8 积分信息表
列名
数据类型
是否为主键
qiuduibianhao
Int(8)
是
Qiuduimingcheng
Varchar(20)
否
Bisaichangshu
Int(8)
否
Shengchangshu
Int(8)
否
Pingchangshu
Int(8)
否
Fuchangshu
Int(8)
否
Jinqiuzongshu
Int(8)
否
Shiqiushu
Int(8)
否
Jifen
Int(8)
否
CREATE TABLE sheshou (
qiuyuanbianhao INT(8) NOT NULL PRIMARY KEY,
qiuyuanxingming VARCHAR(20),
paiming VARCHAR(20),
suoshuqiudui VARCHAR(20),
jinqiuzongshu INT(8),
dianqiuzongshu INT(8),
wulongqiushu INT(8)
)
表4-9 射手榜信息
列名
数据类型
是否为主键
Qiuyuanbianhao
Int(8)
是
Qiuyuanxingming
Varchar(20)
否
Paiming
Varchar(20)
否
Suoshuqiudui
Varchar(20)
否
Jinqiuzongshu
Int(8)
否
Dianqiuzongshu
Int(8)
否
wulongqiushu
Int(8)
否
CREATE TABLE zucheng (
xinwenbianhao INT(8),
yongtubianhao INT(8)
)
表4-10 组成信息表
列名
数据类型
是否为主键
Xinwenbianhao
Int(8)
是
Yongtubianhao
Int(8)
是
4.2 数据查询与更新
a) 增:INSERT INTO xinwen VALUES ('3','巴西对荷兰','3','徐凡婷','0713','荷兰胜','2','徐凡婷') ;
b) 删:DELETE FROM xinwen WHERE xinwenbianhao=’1’;
c) 改:UPDATE qiuyuan set tizhong=’78’ WHERE qiuyuanbianhao=’1’;
d) 查:Select * From jifen;
五:触发器设计
n 在新闻表中创建触发器,增加从图片表里引用的图片信息时,新闻增加一条图片信息,从而在组成表里体现相关的新闻编号和图片编号。
DELIMITER |
CREATE TRIGGER xinwentupian AFTER INSERT
ON xinwen
FOR EACH ROW BEGIN
DECLARE c INT;
DECLARE d INT;
SET c = new.biaotitupian;
SET d = new.xinwenbianhao;
INSERT INTO zucheng (xinwenbianhao,yongtubianhao) VALUES (c,d);
END|
DELIMITER ;
#当向新闻表(xinwen)里添加记录时,向组成表(zucheng)里添加新闻编号及该新闻用到的图片编号
例如:
INSERT INTO xinwen VALUES ('3','巴西对荷兰','3','徐凡婷','0713','荷兰胜','2','徐凡婷') ;
n 在留言表中创建触发器,当留言表中添加一条记录时,留言编号加1,新闻表中相应的留言统计属性上同时加1.
DELIMITER |
CREATE TRIGGER liuyantongji AFTER INSERT
ON liuyan FOR EACH ROW
BEGIN
DECLARE c INT;
SET c = new.xinwenbianhao;
UPDATE xinwen SET liuyantongji = liuyantongji + 1 WHERE xinwenbianhao = c;
END|
DELIMITER ;
#当向留言表(liuyan)中添加记录时,会在留言对应的新闻记录下的留言统计字段(liuyantongji)加上1
例如:
INSERT INTO liuyan VALUES ('4','1','0710','阿根廷赢','2')
n 在赛事表里创建触发器,当向赛事信息中添加赛事信息时,在相应的积分表中,相应的比赛球队所对应的比赛场数加1。
DELIMITER |
CREATE TRIGGER bisaichangshu AFTER INSERT
ON saishi FOR EACH ROW
BEGIN
DECLARE c INT;
DECLARE d INT;
SET c = new.zhuduibianhao;
SET d = new.keduibianhao;
UPDATE jifen SET bisaichangshu = bisaichangshu + 1 WHERE qiuduibianhao = c;
UPDATE jifen SET bisaichangshu = bisaichangshu + 1 WHERE qiuduibianhao = d;
END|
DELIMITER ;
#当向赛事信息(saishi)中添加记录后,使积分表(jifen)里两队伍的bisaichangshu加上1
例如:
INSERT INTO saishi VALUES (5,'0714','马拉卡纳球场',1,6,'德国队','阿根廷','1-0','裁判4')
六:后记
通过这门课程的学习,我学到了很多,从最开始的无从下手,到最后对程序、系统的准确了解,短短两周,学到了很多,也认识了很多:
1、我们学的知识还不深,只是一些基本性的理论知识而已,对一个陌生、庞大、复杂的系统我们会摸不着头脑,也会不知道从何做起,这样我们也不能很好的、真正的把所学应用到实际中去,得到实践应有的效果。
2、这个系统的开发过程较好地体现了结构化方法的思想和原则,有关的文档也比较规范、详细。比较适合学习用,可以使我们很好的分工合作,并且我们对这个系统也比较熟悉,实践起来比较方便。
3、通过浏览了一些门户网站的世界杯专题后,我们有所启发,自己动手通过MYSQL完成数据库的实现。
22 / 22
展开阅读全文