NBA球员数据管理系统.docx
《NBA球员数据管理系统.docx》由会员分享,可在线阅读,更多相关《NBA球员数据管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
NBA球员数据管理系统
数据库课程设计
题目:
NBA球员数据管理系统
学生姓名
唐力
班级
网络101
学生学号
2010121038
指导老师
方睿
1引言
1.1NBA球员数据管理系统简介:
本程序设计与实现开发出来的是一个用SQLServer2008软件编写而成的NBA球员数据管理系统。
本文重点讨论该系统的设计与实现,系统通过代码的方式写成,通过测试与分析说明该系统可稳定运行,具有一定程度的实现价值。
1.2本系统的主要工作:
NBA球员管理系统的主要任务是建立,维护用户信息档案,统计,更新现役NBA球员的数据信息,提供给用户方便了解NBA球员。
2本系统需求分析及系统运行环境:
2.1背景:
NBA是NationalBasketballAssociation的缩写。
成立于1946年6月6日。
成立时叫BAA,即全美篮协会(BasketballAssociationofAmerica),是由十一家冰球馆体育馆的老板为了让体育馆在冰球比赛以外的时间,不至于闲置而共同发起成立的。
BAA成立时共11支球队。
1949年BAA吞并了当时的另外一个联盟(NBL),并改名为NBA。
直到现在联盟共30支球队。
近些年,姚明成功的在NBA立足,成为世界巨星,且NBA也成功进入了中国这块市场,中国很多球迷开始迷恋NBA,而球迷们也对每支球队的球员非常感兴趣。
而开发的系统是统计了每个球员的年龄,位置,籍贯,身高,所在球队,以及场均得分,场均助攻,场均篮板,每场比赛球员的各种数据统计,球员的日常生活信息等。
为广大篮球fans提供了更为方便的去了解NBA以及各个球员,也让球迷们对自己喜爱的球员有直观的透彻的了解到他们的情况。
2.2系统需求规格说明:
3
(1)系统管理员为球迷建立信息档案,用户进入系统前需身份验证,用户名、密码输入正确后方可进入系统。
用户分为管理员,球迷,他们分别拥有不同的使用权限和不同的功能。
管理员拥有最高权限和最大限度的功能。
(2)系统为球迷建立档案,可按球迷ID或者名称查询,档案主要包括球员ID,名字,居住地,年龄等。
(3)在系统中,管理员需要对球员数据随时录入,更新,维护,方便球迷得到球员最新动态的数据。
(一般一轮比赛完就更新)
(4)系统的客户端在Windows平台下运行,服务器可在Windows平台或UNIX平台下运行。
系统需要有较好的安全性和可扩展性,并提供简洁方便的图形用户界面。
球迷流程
管理员流程
2.3NBA球员管理系统具备的主要功能:
本系统的主要功能如下:
(1)球迷信息管理:
对球迷的基本信息(如ID,姓名,年龄,居住地等)进行录入和修改。
(2)球员数据信息管理:
对球员的数据信息(如球员场均得分,场均篮板,场均助攻,场均抢断,场均失误等)录入和更新。
(3)管理员信息管理:
管理个人用户信息的录入和修改。
(管理员只属于重庆,北京,上海等城市)
(4)每支球队信息管理:
对球队的数据信息(如球队ID,球队名,战绩等)录入和更新。
(5)球员年龄信息管理:
对球员年龄的数据信息(如球员ID,球员名,player20to30等)录入和修改。
(6)球员号码信息管理:
对球员号码信息管理(如player11to20,player20to40等)录入和修改。
(7)球员信息管理:
对球员信息(如年龄,资金,所在球队,球员号码等)进行录入和修改。
功能模块如下:
2.4流程图:
2.5NBA球员管理系统的实体分析:
(1)实体图:
(2)ER图
2.5系统运行环境:
本系统是运行在WindowsXP、Windowswin7等操作系统环境;处理器型号及内存容量:
内存>=256M;输入及输出设备的型号和数量,联机或脱机:
待定。
3数据库分析:
3.1数据库的创建:
NBA球员数据管理系统数据库的创建:
CREATEDATABASEPlayer
ONPRIMARY
(
NAME=Player_Data,
FILENAME='G:
\C\数据库作业\Player_Data.MDF',
SIZE=10,
MAXSIZE=UNLIMITED,
FILEGROWTH=5
)
LOGON
(
NAME=Player_Log,
FILENAME='G:
\C\数据库作业\Player_Data.LDF',
SIZE=10,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
GO
3.2数据库表的创建:
(1)球员数据表:
CREATETABLEplayerdata
(
playerIDchar(10)NOTNULL,
playernamechar(25)NOTNULL,
ppgfloatNOTNULL,
rpgfloatNOTNULL,
apgfloatNOTNULL,
spgfloatNOTNULL,
bpgfloatNOTNULL,
mpgfloatNOTNULL,
FTfloatNOTNULL,
FromthreefloatNOTNULL,
jumpershotfloatNOTNULL,
PRIMARYKEY(playerID,playername)
)
(2)球员表:
CREATETABLEplayer
(
playerIDchar(10)NOTNULL,
playernamechar(25)NOTNULL,
playercapitalmoneyNOTNULL,
playeragesmallintNOTNULL,
teamnamechar(30)NOTNULL,
playerNOsmallintNOTNULL,
teamIDchar(15)NOTNULL,
PRIMARYKEY(playerID,playername)
)
(3)球员号码表:
CREATETABLEplayernum
(
playerIDchar(10)NOTNULL,
player1to20char(25)NOTNULL,
player20to40char(25)NOTNULL,
player40upchar(25)NOTNULL,
playernamechar(25)NOTNULL,
CONSTRAINTpkplayernumPRIMARYKEY(playerID,playername),
FOREIGNKEY(playername)REFERENCESscancategory(playername)
)
(4)球员年龄表:
CREATETABLEplayerage
(
playerIDchar(10)NOTNULL,
playeraddsmallintNOTNULL,
player20to23char(25)NOTNULL,
player23to27char(25)NOTNULL,
player27to32char(25)NOTNULL,
player32upchar(25)NOTNULL,
playernamechar(25)NOTNULL,
CONSTRAINTpkplayeragePRIMARYKEY(playerID,playername),
FOREIGNKEY(playername)REFERENCESscancategory(playername)
)(5)每支球队表:
CREATETABLEeveryteam
(
teamIDchar(15)NOTNULL,
teamnamechar(30)NOTNULL,
teamcapitalmoneyNOTNULL,
combatgainsfloatNOTNULL,
playernamechar(25)REFERENCESscancategory(playername),
CONSTRAINTpkeveryteamPRIMARYKEY(teamID)
)
(6)管理员表:
CREATETABLEAdministrator
(
ADMIDchar(10)NOTNULL,
namechar(25)NOTNULL,
agesmallintNOTNULL,
sexchar
(2)NOTNULL,
citychar(15)NOTNULLCONSTRAINTchkcityCHECK(cityIN('chongqing','sichuan','beijing','shanghai','xianggang','aomen','taiwan','dalian')),
PRIMARYKEY(ADMID,name)
)
(7)登录用户表:
CREATETABLERegistrant
(
funIDchar(10)NOTNULL,
lnamechar(25)NOTNULL,
lkeychar(16)NOTNULL,
agesmallintNOTNULL,
sexchar
(2)NOTNULL,
lcitychar(15)NOTNULLCONSTRAINTchklcityCHECK(lcityIN('chongqing','sichuan','beijing','shanghai','xianggang','aomen','taiwan','dalian')),
PRIMARYKEY(funID,lname)
)
(8)浏览目录表:
CREATETABLEscancategory
(
playernamechar(25)NOTNULL,
teamnamechar(30)NOTNULL,
playeragesmallintNOTNULL,
playerNOsmallintNOTNULL,
PRIMARYKEY(playername)
)
CREATEUNIQUENONCLUSTEREDINDEXidx_category
ONscancategory(playername)
3.3表的约束:
(1)检查约束:
管理员用户表:
CREATETABLEAdministrator
(
ADMIDchar(10)NOTNULL,
namechar(25)NOTNULL,
agesmallintNOTNULL,
sexchar
(2)NOTNULL,
citychar(15)NOTNULLCONSTRAINTchkcityCHECK(cityIN('chongqing','sichuan','beijing','shanghai','xianggang','aomen','taiwan','dalian')),
PRIMARYKEY(ADMID,name)
)
CREATETABLERegistrant
(
funIDchar(10)NOTNULL,
lnamechar(25)NOTNULL,
lkeychar(16)NOTNULL,
agesmallintNOTNULL,
sexchar
(2)NOTNULL,
lcitychar(15)NOTNULLCONSTRAINTchklcityCHECK(lcityIN('chongqing','sichuan','beijing','shanghai','xianggang','aomen','taiwan','dalian')),
PRIMARYKEY(funID,lname)
)
(2)外键约束:
球员年龄信息表:
CREATETABLEplayerage
(
playerIDchar(10)NOTNULL,
playeraddsmallintNOTNULL,
player20to23char(25)NOTNULL,
player23to27char(25)NOTNULL,
player27to32char(25)NOTNULL,
player32upchar(25)NOTNULL,
playernamechar(25)NOTNULL,
CONSTRAINTpkplayeragePRIMARYKEY(playerID,playername),
FOREIGNKEY(playername)REFERENCESscancategory(playername)
)
CREATETABLEplayernum
(
playerIDchar(25)NOTNULL,
player1to20char(25)NOTNULL,
player20to40char(25)NOTNULL,
player40upchar(25)NOTNULL,
playernamechar(25)NOTNULL,
CONSTRAINTpkplayernumPRIMARYKEY(playerID,playername),
FOREIGNKEY(playername)REFERENCESscancategory(playername)
)
(3)主键约束:
每支球队信息表:
CREATETABLEeveryteam
(
teamIDchar(15)NOTNULL,
teamnamechar(30)NOTNULL,
teamcapitalmoneyNOTNULL,
combatgainsfloatNOTNULL,
playernamechar(25)REFERENCESscancategory(playername),
CONSTRAINTpkeveryteamPRIMARYKEY(teamID)
)
3.4索引:
CREATETABLEscancategory
(
playernamechar(25)NOTNULL,
teamnamechar(30)NOTNULL,
playeragesmallintNOTNULL,
playerNOsmallintNOTNULL,
PRIMARYKEY(playername)
)
CREATEUNIQUENONCLUSTEREDINDEXidx_category
ONscancategory(playername)
3.5数据插入:
(1)目录数据插入:
INSERTscancategory(playername,teamname,playerNO,playerage)
VALUES('TracyMcGrady','DetroitPistons',1,32),('TayshaunPrince','DetroitPistons',22,31),('RichardHamilton','DetroitPistons',32,33),('GregMonroe','DetroitPistons',10,21),('RodneyStuckey','DetroitPistons',3,25),('CharlieVillanueva','DetroitPistons',31,27),('BenGordon','DetroitPistons',7,28),('JasonMaxiell','DetroitPistons',54,28),('BenWallace','DetroitPistons',6,37),('AustinDaye','DetroitPistons',5,23),
('KevinMartin','HoustonRockets',12,28),('LuisScola','HoustonRockets',4,31),('KyleLowry','HoustonRockets',7,25),('ChaseBudinger','HoustonRockets',10,23),('CourtneyLee','HoustonRockets',5,26),('ChuckHayes','HoustonRockets',44,28),('GoranDragic','HoustonRockets',3,25),('PatrickPatterson','HoustonRockets',54,24),('TerrenceWilliams','HoustonRockets',1,24),('HasheemThabeet','HoustonRockets',32,24),
('KevinDurant','OklahomaCityThunder',35,23),('RussellWestbrook','OklahomaCityThunder',0,23),('JamesHarden','OklahomaCityThunder','13',22),('(SergeIbaka','OklahomaCityThunder',9,22),('ThaboSefolosha','OklahomaCityThunder',2,27),('KendrickPerkins','OklahomaCityThunder',5,27),('NazrMohammed','OklahomaCityThunder',8,34),('EricMaynor','OklahomaCityThunder',6,24),('NateRobinson','OklahomaCityThunder',3,27),('NickCollison','OklahomaCityThunder','4',31),
('DerrickRose','ChicagoBulls',1,23),('LuolDeng','ChicagoBulls',9,26),('CarlosBoozer','ChicagoBulls',5,30),('KyleKorver','ChicagoBulls','26',30),('TajGibson','ChicagoBulls',22,26),('JoakimNoah','ChicagoBulls',13,26),('RonnieBrewer','ChicagoBulls',11,26),('C.J.Watson','ChicagoBulls',32,27),('KeithBogans','ChicagoBulls',6,31),('OmerAsik','ChicagoBulls',3,25),
('Amar`eStoudemire','NewYorkKnicks',1,29),('CarmeloAnthony','NewYorkKnicks',7,27),('ChaunceyBillups','NewYorkKnicks',4,35),('ToneyDouglas','NewYorkKnicks',23,25),('LandryFields','NewYorkKnicks',6,23),('ShawneWilliams','NewYorkKnicks',3,25),('BillWalker','NewYorkKnicks',5,24),('RonnyTuriaf','NewYorkKnicks',14,28),('SheldenWilliams','NewYorkKnicks',13,28),('DerrickBrown','NewYorkKnicks',2,24)
select*fromscancategory
(2)每支球队插入:
INSERTeveryteam(teamID,combatgains,teamcapital,teamname)
VALUES(001,0.54,2500,'HoustonRockets'),(002,0.75,2650,'ChicagoBulls'),(003,0.50,2750,'DetroitPistons'),(004,0.65,2700,'OklahomaCityThunder'),(005,0.54,3200,'NewYorkKnicks'),(006,0.61,2800,'PortlandTrailBlazers')
(3)球员数据插入:
INSERTplayerdata(playerID,playername,spg,rpg,ppg,bpg,apg,mpg,FT,Fromthree,jumpershot)
VALUES('a','TracyMcGrady',3.21,5.4,25.5,1.21,5.6,0.32,89.5,42.5,45.4),
('b','ThaboSefolosha',1.21,5.4,25.5,1.21,5.6,0.32,89.5,42.5,40.4),
('c','RodneyStuckey',2.21,5.4,25.5,1.21,5.6,0.32,89.5,42.5,30.4),
('d','ChaunceyBillups',2.21,5.4,25.5,1.21,5.6,0.32,89.5,42.5,45.4),
('e','AustinDaye',1.31,5.4,25.5,1.21,5.6,0.32,89.5,42.5,40.4),
('f','LandryFields',0.21,8.4,25.5,1.21,5.6,0.32,89.5,42.5,35.4)
(4)球员号码插入:
INSERTplayernum(playerID,player1to20,player20to40,player40up,playername)
VALUES('a',1,0,0,'TracyMcGrady'),('b',2,0,0,'ThaboSefolosha'),('c',3,0,0,'RodneyStuckey'),('d',4,0,0,'ChaunceyBillups'),('e',5,0,0,'AustinDaye'),('f',6,0,0,'LandryFields')
select*fromplayernum
(5)球员插入:
INSERTPlayer(playerID,playername,playerNO,playerage,playercapital,teamID,teamname)
VALUES('a','Trac