资源描述
NBA球员球队信息管理系统项目设计方案
专业
物联网应用技术
班级
12届1班
姓名
刘啸尘
学号
日期
12月3日
第1章 系统概述 3
第2章 系统需求分析 4
2.1系统功效结构图 4
4
2.2系统可行性分析 4
第三章 系统数据库设计 5
3.1 数据库概念设计 6
3.2数据库逻辑设计(关系模式) 6
3.3数据库物理设计 9
第1章 系统概述
NBA是National Basketball Association缩写。成立于1946年6月6日。成立时叫BAA,即全美篮协会(Basketball Association of America),是由十一家冰球馆体育馆老板为了让体育馆在冰球比赛以外时间,不至于闲置而共同提议成立。BAA成立时共11支球队。1949年BAA吞并了当初另外一个联盟(NBL),并更名为NBA。直到现在联盟共30支球队。
近些年,伴随姚明在NBA成功,华裔球员林书豪大红大紫,NBA也逐步地成功进入了中国这块市场,中国很多球迷开始迷恋NBA ,而球迷们也对每支球队球员很感爱好。
而设计这个系统就是想统计了东部冠亚军和西部冠亚军四个球队中关键球员年纪、位置、籍贯、身高、所在球队、加盟时间、年薪、场均得分、个人奖项及该球队在季前赛、常规赛、季后赛胜率和名次多种数据统计。
为广大篮球fans提供了更为方便去了解NBA,也让球迷们对自己喜爱球员有直观透彻了解到她们情况。
该“NBA球员球队信息管理系统”只是对数据库应用技术一个样本数据库实例,重在对数据库部分方法熟悉和掌握,其中包含从数据库概念模型到ER图绘制,再到数据库模式建立(即为数据库及其基础表建立),以后数据录入,最终完成部分简单关系运算表示式表示和相关Select 查询语句使用。
第2章 系统需求分析
2.1系统功效结构图
系统功效结构图
查询球员个人具体信息
查询东西部冠亚军信息
查询各队赛事胜率名次
查询赛事开始及结束时间
查询各项赛区具体信息
图1-1 系统功效结构图
2.2系统可行性分析
时代发展,技术进入,大家生活水平提升,大家对体育热爱,使体育产业发展快速,越来越多参与到体育运动中,成为体育爱好者,成为体育职业运动员。对应,体育产业发展愈加专业化,愈加职业化,愈加复杂庞大,组织、管理工作量度增大了不少。
以篮球为例,欧美发达国家职业篮球机构(比如美职篮)已经有近百年历史。伴随和平和发展主旋律,全球化时代,参与者增加,职业篮球竞争也愈加猛烈,对职业球员需求也在增加,职业球员数量增加快速,流动性也大了很多,跨国间球员转会数量越来越多,频率越来越快。
这些使其组织、管理工作量增大了不少。为了快捷方便完成工作,提升运行,管理水平,必需开发球员管理信息系统,方便于篮球界各方组织管理、参与关注。从而促进篮球运动、篮球产业发展。综上分析,本系统能够立即开发。
第三章 系统数据库设计
本数据库使用是DBMS中DQL (数据查询语言 Data Query Language)。该查询语言能够按一定查询条件从数据库对象中检索符合条件数据,该查询语言愈加适合本数据库使用。
3.1 数据库概念设计
该数据库含有四个实体,分别为赛区,球队,球员,比赛。实体之间关系转换为其它两个表(球队参赛表,球员参赛表)。
赛区为实体,赛区名和地理位置是赛区属性
球队是实体,球队名,城市,球员数,总冠军数,赛区名和赛区名次是球队属性
球员是实体,球员姓名,年纪,身高,体重,国籍,位置,球队名,年薪和加盟时间是球员属性
比赛是实体,比赛类型,开始时间和结束时间是比赛属性
球队参赛是球队和比赛表关系转换得来,所以球员参赛是实体,球队名,比赛类型,名次和胜率是球队参赛属性
球员参赛是球员和比赛表转换得来,所以球员姓名,比赛类型,场均得分和个人奖项是球员参赛属性
3.2数据库逻辑设计(关系模式)
赛区(赛区名,地理位置)
球队(球队名,城市,球员数,总冠军数,赛区名,赛区名次)
球员(球员姓名,年纪,身高,体重,国籍,位置,球队名,年薪,加盟时间)
比赛(比赛类型,开始时间,结束时间)
球队参赛(球队名,比赛类型,名次,胜率)
球员参赛(球员姓名,比赛类型,场均得分,个人奖项)
球队
城市
赛区名
赛区
名次
总冠
军数
球员数
球队名
球队参赛
胜率
名次
比赛类型
比赛
开始
时间
结束
时间
E-R图 图示 2-1
球员
体重
年纪
身高
国籍
位置
球队姓名
球员参赛
个人
奖项
场次
得分
比赛类型
比赛
开始
时间
结束
时间
年薪
加盟
时间
E-R图 图示3-1
赛区名
地理
位置
赛区
E-R图 图示4-1
3.3数据库物理设计
赛区表
序号
列名
数据类型
宽度
是否主外键
是否为空
描述
1.
赛区
Varchar
10
PK
Not Null
赛区
2.
地理位置
Varchar
10
Not Null
地理位置
赛区表建表T-SQL语句
--创建赛区表
create table Division(
赛区名char(10) not null primary key,
地理位置char(10)not null,
)
球队表
列名
数据类型
宽度
是否主外键
是否为空
描述
1.
球队名
Varchar
20
PK
Not Null
球队名
2
城市
Varchar
20
Not Null
城市
3.
球员数
Int
Not Null
球员数
4.
总冠军数
Int
Not Null
总冠军数
5.
赛区名
Char
10
赛区表FK
Not Null
赛区名
6.
赛区名次
Int
Not Null
赛区名次
球队表建表T-SQL语句
--创建球队表
create table team
(球队名char(20) not null primary key,
城市char(20) not null,
球员数int not null,
总冠军数int not null,
赛区名char(10) null,
赛区名次int not null,
)
球员表
列名
数据类型
宽度
是否主外键
是否为空
描述
1.
球员姓名
Varchar
20
PK
Not Null
球员姓名
2.
年纪
Int
Not Null
年纪
3.
身高
Int
Not Null
身高
4.
体重
Int
Not Null
体重
5.
国籍
Varchar
10
Not Null
国籍
6.
位置
Varchar
10
Not Null
位置
7.
球队名
Varchar
20
球队表FK
Not Null
球队名
8.
年薪
Int
Not Null
年薪
9.
加盟时间
Datime
Not Null
加盟时间
球员表建表T-SQL语句
--创建球员表
create table player
(球员姓名char(20) not null primary key,
年纪int not null,
身高int not null,
体重int not null,
国籍char(10) not null,
位置char(10) not null,
球队名char(20) not null,
年薪int not null,
加盟时间datetime not null,
)
--创建外键球队名
Alter Table player Add Constraint FK_球队名
Foreign Key(球队名)References team (球队名)
比赛表
序号
列名
数据类型
宽度
是否主外键
是否为空
描述
1.
比赛类型
Varchar
10
PK
Not Null
比赛类型
2.
开始时间
Datime
Not Null
开始时间
3.
结束时间
Datime
Not Null
结束时间
比赛表建表T-SQL语句
--创建比赛表
create table race(
比赛类型char(10) not null primary key,
开始时间datetime not null,
结束时间datetime not null,
)
球队参赛表
列名
数据类型
宽度
是否主外键
是否为空
描述
1.
球队名
Varchar
20
球队表FK
Not Null
球队名
2
比赛类型
Varchar
10
比赛表FK
Not Null
比赛类型
3.
名次
Int
Not Null
名次
4.
胜率
Float
Not Null
胜率
球队参赛建表T-SQL语句
--创建球队参赛表
create table QC(
球队名char(20) not null ,
比赛类型char(10) not null ,
名次int not null,
胜率float not null,
)
--创建外键--球队名
Alter Table QC Add Constraint FK_球队名_QC
Foreign Key(球队名)References Team(球队名)
--创建外键--比赛类型
Alter Table QC Add Constraint FK_比赛类型
Foreign Key(比赛类型)References race(比赛类型)
球员参赛表
列名
数据类型
宽度
是否主外键
是否为空
描述
1.
球队名
Varchar
20
球队表FK
Not Null
球队名
2
比赛类型
Varchar
10
比赛表FK
Not Null
比赛类型
3.
场均得分
Float
Not Null
场均得分
4.
个人奖项
Varchar
15
个人奖项
球员参赛表建表T-SQL语句
--创建球员参赛表
create table PC(
球员姓名char(20)not null,
比赛类型char(10) not null,
场均得分float not null,
个人奖项char(15),
)
--创建外键--球员姓名
Alter Table PC Add Constraint FK_球员姓名
Foreign Key(球员姓名)References player(球员姓名)
--创建外键--比赛类型
Alter Table pc Add Constraint FK_比赛类型_PC
Foreign Key(比赛类型)References race(比赛类型)
以上是六个表格建立及代码,下面是数据库插入数据和创建索引,代码以下:
--向赛区表加入数据
Insert into Division values ('EN', '东北')
insert into Division values ('WS', '西南')
insert into Division values ('ES','东南')
insert into Division values ('WN','西北')
--向球队表加入数据
insert into Team values('凯尔特人','波士顿', '14', '17', 'EN', '7')
insert into Team values('热火','迈阿密','15','2','ES','2')
insert into Team values('湖人','洛杉矶','15','16','WS','11')
insert into Team values('雷霆','俄荷拉何马','14','1','WN','2')
--向球员表加入数据
insert into player values ('Kobe Byrant','34','198','93','美国','得分后卫','湖人','','1996-08-12')
Insert into player values('Dwight Howard','27','211','120','美国','中锋','湖人','1700','-08-09')
insert into player values('Steve Nash','38','191','80','加拿大','控球后卫','湖人','1200','-08-22')
insert into player values('Dwyane Wade','30','193','99','美国','得分后卫','热火','1700','-09-11')
insert into player values('Chris Bosh','28','211','106','美国','中锋','热火','1665','-07-25')
insert into player values('Leborn James','28','203','113','美国','得分后卫','热火','1770','-07-31')
insert into player values('Kevin Garnett','36','211','115','美国','大前锋','凯尔特人','1455','-08-01')
insert into player values('Leandro Babosa','30','191','88','巴西','小前锋','凯尔特人','774','-08-06')
insert into player values('Paul Pierce','35','201','106','美国','得分后卫','凯尔特人','1520','-07-09')
insert into player values('Russel Westbrook','24','191','85','美国','控球后卫','雷霆','1600','-03-06')
insert into player values('Kevin Durant','24','206','106','美国','得分后卫','雷霆','1863','-03-15')
insert into player values('Serge Ibaka','23','208','106','西班牙','中锋','雷霆','236','-04-05')
--向比赛表加入数据
insert into race values ('常规赛','-10-03 ','-04-22')
insert into race values ('季前赛','-08-31','-09-30')
insert into race values ('季后赛','-04-22','-07-25')
--向球队参赛表加入数据
insert into QC values ('凯尔特人','季前赛','2','0.8')
insert into QC values ('凯尔特人','常规赛','4','0.32')
insert into QC values ('凯尔特人','季后赛','3','0.47')
insert into QC values ('热火','季前赛','1','0.88')
insert into QC values ('热火','常规赛','2','0.76')
insert into QC values('热火','季后赛','4','0.36')
insert into QC values('湖人','季前赛','3','0.54')
insert into QC values('湖人','常规赛','1','0.90')
insert into QC values('湖人','季后赛','1','1')
insert into QC values('雷霆','季前赛','4','0.25')
insert into QC values('雷霆','常规赛','3','0.66')
insert into QC values('雷霆','季后赛','2','0.88')
--向球员参赛表加入数据
insert into PC values('Kobe Byrant', '常规赛','28','MVP')
insert into PC values ('Dwight Howard', '季前赛','22','篮板王')
insert into PC values ('Steve Nash', '季后赛','17','助攻王')
insert into PC values ('Dwyane Wade', '常规赛','26',null)
insert into PC values ('Chris Bosh', '季后赛','15',null)
insert into PC values ('LeBorn James', '常规赛','31','盖帽王')
insert into PC values ('Kevin Garnett', '季前赛','12',null)
insert into PC values ('Leandro Babosa', '季前赛','6',null)
insert into PC values ('Paul Pierce', '季后赛','20','抢断王')
insert into PC values ('Russel Westbrook','季前赛','24','最好新秀')
insert into PC values ('Kevin Durant','常规赛','32','得分王')
insert into PC values ('Serge Ibaka','季后赛','22',null)
--创建索引--球队名
create unique index IX_球队名on team(球队名)
--创建索引--身高
create index IX_身高on player(身高)
--创建索引--球员姓名
create index IX_球员姓名on player(球员姓名)
该数据查询功效—查询语句
多条件组合查询
-查询球员表中国籍是美国全部球员
select * from player where 国籍='美国'
截图结果
--查询球员表中加盟时间在-08-01到-08-01球员
select * from player where 加盟时间between '1996-08-01 00:00:00.000'and'-08-01 00:00:00.000'
截图结果
--查询球员表中球员年纪不超出人数
select Count (*) AS '年纪不超出人数'
from player
截图结果
--查询球员表中球员平均年纪
select Sum(年纪)/12 AS '平均年纪'
from player
截图结果
--统计球员表中球员年纪总和
select Sum(年纪)From player
截图结果
--查询各队季前赛名次和胜率
select * from QC where 比赛类型='季前赛'
截图结果
--查询常规赛mvp具体信息
select * from pC where 个人奖项='MVP'
截图结果
未知值(null)查询
--查询在各项比赛中没有取得任何个人奖项球员信息
select * from PC where 个人奖项IS NULL
截图结果
--查询场均得分超出分人数
select Count (*) AS '场均得分超出28人数'
from pc
截图结果
--查询场均得分最高前%球员信息
select top 10 percent * from pc
order by 场均得分desc
截图结果
--排序增加删除数据
--按名次从大到小,胜率从小到大排序
select * from QC
order by 名次Desc,胜率asc
截图结果
--需要向表中增加数据代码
--为表球员参赛表(pc)增加列Comments,能够为空Null
Alter Table PC
Add Comments varchar(20)
select * from pc
截图结果
--需要向表中删除数据代码
--删除一列
Alter Table pc DROP COLUMN comments
SELECT * FROM pc
截图结果
展开阅读全文