数据库课程设计NBA选秀系统数据库模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NBA选秀系统数据库模型
一、需求分析
(1)、可行性需求分析
需求分析是指准确了解和分析用户的需求,这是最困难、最费时、最复杂的一步,但也是最重要的一步。

需求分析是整个设计过程的基础,它决定了以后各步设计的速度和质量。

进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。

NBA作为世界上水平最高的篮球俱乐部联盟,深受广大篮球爱好者的追捧,而一年一度的NBA 选秀活动,更成为球迷关注的焦点。

作为专门的NBA选秀数据库,一定会满足大众的信息需求。

(2)具体的系统信息
选秀系统信息包括三个方面,其具体功能如下:
A.新秀球员信息:包括球员姓名、年龄、籍贯、身高、顺位以及司职位置;新秀球员信息功能包括对球员信息的录入、删除和查询,以及被那个球队选中、选秀信息等。

B.NBA球队信息:包括球队名称、所在城市、上赛季战绩、球队主教练;NBA球队信息功能还包括对球队信息的录入、删除和查询,以及所选新秀、选秀信息等。

C.选秀信息:选秀信息包括新秀姓名、签约球队、入队时间、合同时间、合同金额、有无保障;选秀信息功能还包括各项数据的录入、删除和查询。

(3)具体的软件信息
在开发过程中,按照软件工程的步骤,从设计到开发采用了面向对象的思想和技术,采用了SQL SERVER 2008数据库服务器,运用c/s技术,使得本系统可以方便的和其他子系统进行数据交换。

同时,注意从软件的图形应用界面上优化软件质量,使得本系统具有很强的可操作性。

二、概念结构设计
概念结构设计是指对用户的需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,是整个数据库设计的关键。

根据各种信息的内容以及它们之间的关系,该数据库系统的E-R图如下:
2.nbateam(NBA球队信息)包括以下属性:球队名称、所在城市、上赛季排名、主教练
保障
四、数据库物理设计
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
1.确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(1)关系数据库的存取方法:
采用索引方法,主要是B+树索引方法。

(2)数据库的存储结构:
录入数据采用表格方式,限制录入数据类型及取值范围以保证数据的完整性及准确。

由于条件不允许,本系统没有将表和索引放在不同的磁盘,没有能够实现磁盘驱动器并行工作,降低了物理I/O读写的效率。

为了改进系统的性能,我选择把比较大的表分放在两个磁盘上,以加快存取速度。

2.对物理结构进行评价,评价的重点是时间和空间效率以及安全性。

评价物理结构:
(1)数据完成的时间性:
如成绩的录入,仅当师资科录入教学进程,教务科分发教师教学任务安排之后,各系方可录入成绩。

(2)数据安全性:
本系统采用二级安全保障:
第一级:依赖于网络本身对用户使用权限的规定。

第二级:在程序模块中通过使用密码控制功能对用户使用权限加以限制。

五、数据库实施
在数据库实施阶段,设计人员运用DBMS提供的数据库语言(如SQL)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

1.创建新数据库:
打开SQL工具“查询分析器”
在查询窗口中键入下列SQL语句:
create database NBAxuanxiu
执行上述SQL语句即可新建一名为NBAxuanxiu的数据库
2.创建数据表:要创建的数据表分别是:player、nbateam、xuanxiu
(1)创建player数据表:
A新建查询窗口
B在查询窗口中键入下列SQL语句
create table player ( //创建球员信息表
pid char(10) primary key, not null, //新秀顺位
pname char(20) not null, //球员姓名
phome char(20), //球员籍贯
page char(10), //球员年龄
phight char(10), //球员身高
psite char(10), //球员位置
)
执行上述SQL语句即可创建户信息窗口相关表格如下:(附player表数据)
(2)创建nbateam数据表:
create table nbateam ( //创建NBA球队信息表
tname char(50) primary key, not null, //NBA球队名称
tcity char(50) //球队所在城市
tlevel char(10) //上赛季战绩
tcoach char(30) //主教练姓名
)
执行上述SQL语句即可创建管理员信息表相关表格如下:(附nbateam表数据)
(3)创建xuanxiu数据表:
create table xuanxiu( //创建选秀信息表
pname char(20) primary key, not null //球员姓名
tname char(10) not null, //签约球队
intime date //入队时间
zongtime char(5) //合同时长
money char(10) //合同金额
baozhang char(2) //合同有无保障
)
执行上述SQL语句即可创建图书信息表相关表格如下:(附xuanxiu表数据)
六、数据库运行和维护
1. 数据定义:基本表的创建、修改及删除;视图的创建和删除。

(1)基本表的创建与删除(例:player表):
A、创建(修改)基本表
create table player ( //创建球员信息表
pid char(10) primary key, not null, //新秀顺位
pname char(20) not null, //球员姓名
phome char(20), //球员籍贯
page char(10), //球员年龄
phight char(10), //球员身高
psite char(10), //球员位置
)
B、删除基本表
drop table player cascade
(2)视图的操作:数据库视图的定义(创建和删除)、查询和更新
A、创建视图:
create view pidView
as
select pid pname phome page phight psite
from player
where phome =‘美国’
with check option;
B、对视图查询:找出所有来自美国的新秀的顺位和姓名:
select pid pname
from pidView;
C、删除视图:删除前面定义的pidView视图。

Drop view pidView
2.数据操作:即数据库查询操作(单表查询、连接查询、嵌套查询)
(1)单表查询
A、查询顺位(pid)为03的球员姓名(pname):
select pname,pid
from player
where pid=03
B、查询顺位(pid)前十位的球员所有信息:(top)
select top 10 *
from player
C、查询所有新秀的籍贯(phome):(distinct)
select distinct phome
from player
D、查询球员年龄(page)在21-23岁之间的球员信息:(between)
select*
from player
where page between 21 and 23
E、查询所有位置(psite)为控球后卫、得分后卫的球员姓名(pname):(in)
select pname
from player
where psite in('得分后卫','控球后卫')
F、查询所有新秀的平均年龄(avg)
select AVG(page)'平均年龄'
from player
G、把新秀顺位的后10位按降序排列:
select top 10 *
from player
order by pid desc
(2)连接查询
A、查询法国球员被哪个球队选走:
select nbateam.tname
from nbateam,player
where player.phome='法国'
B、查询球员姓名(pname)为保罗-乔治的顺位(pid)和签约球队(tname):
select player.pid,xuanxiu.tname
from player,xuanxiu
where player.pname='保罗-乔治'and xuanxiu.pname='保罗-乔治'(3)嵌套查询
查询埃文-特纳的选秀信息:
select*
from xuanxiu
where pname=(select pname
from player
where pname='埃文-特纳')
3、数据库的安全性
(1)创建与删除数据库登陆账户、用户名、数据库角色
A、创建SQLServer身份验证的登录账户BOBO、小爬爬、吉吉
EXEC sp_addlogin ‘BOBO’,‘123’,‘A’
EXEC sp_addlogin ‘小爬爬’,‘123’,‘A’
EXEC sp_addlogin ‘吉吉’,‘123’,‘A’
B、创建数据库用户
EXEC sp_adduser ‘小爬爬’
EXEC sp_adduser ‘吉吉’
EXEC sp_adduser ‘BOBO’, ‘BOBO’, ‘managers’
C、建立数据库角色
EXEC sp_addrole ‘managers’
D、删除SQLServer身份验证的登录账户‘吉吉’
EXEC sp_droplogin ‘吉吉’
E、从当前数据库中删除用户‘吉吉’
EXEC sp_dropuser ‘吉吉’
(2)授权与收回操作
A、把对表player的insert权限授予用户大力,并允许他再将此权限授予其他用户。

grant insert
on table player
to 小爬爬
with grant option
B、把查询表player和修改nowprice属性的权限授给用户小爬爬。

grant select,update(nowprice)
on table player
to 小爬爬
C、把用户大力查询表player权限收回。

revoke select
on table player
from 小爬爬cascade
4、数据库的完整性
对于player表:player (pid、pname、page、phight、psite),pid的值应该在0和10之间:
Create table player (
pid char(10) primary key, not null,
pname char(20) not null,
phome char(20) not null,
page char(10)not null,
phight char(10)not null,
psite char(10) not null,
check (pid >0 and pid <=10 )
)
七、总结
经过几周的设计和开发,数据库管理系统完成了所有的工作,其功能基本上符合用户的需求,能够完成各种任务。

通过课程设计了解并学习了掌握科学研究方法,提高分析问题、解决问题的能力。

通过自己单独编写代码使自己加强了学习计算机语言的兴趣,对各种语言有了更深的理解。

通过本次数据库课程设计,对数据库的相关知识得到了进一步的学习和理解,同时也把所学的数据库知识进行了一次梳理,对数据库这门课程的理解有了很大提高,同时利用这种模拟实际问题的课程设计,对我们的动手能力,考虑问题的严密性都有很大帮助,相信对今后工作会有很大帮助。

另外,在这里向许多帮助和指导这次程序设计的老师和同学们,表示感谢。

相关文档
最新文档