本文将用户分为两类,普通用户和数据库管理用户,普通用户通过账号密码登陆可以访问数据库中比赛,球员,俱乐部的信息,并提供了联赛积分榜,联赛射手榜和联赛助攻榜等统计信息;数据库管理用户拥有对数据库进行增删改的权限。明确系统边界后进行详尽的需求分析,将系统划分为信息管理(增删改)、信息查询、积分榜查询模块。
1
需求分析阶段的目标
(1)了解比赛,俱乐部,球员数据信息的含义。
(2)了解三种信息之间的相互关系及约束关系,满足各主体之间的联系。
(3)了解球迷和系统管理员的要求,给予其不同权限,满足安全性要求,完整性要求。
2
需求分析阶段的任务
(1)处理对象:
球员,比赛,俱乐部信息的录入和修改;
按球员姓名查找球员信息;
按比赛队伍或者某联赛相应轮次查找比赛,按俱乐部名查找俱乐部;
(2)处理功能及要求:
a.能够存储一定数量的球员,比赛,俱乐部信息,可进行相应的数据操作和管理:
1)球员,比赛,俱乐部信息的录入,删除和修改。
2)球员,比赛,俱乐部信息的关键字查询。
b.数据库本身能够根据数据间的逻辑关系自动调整:
1)比赛记录的添加修改与删除会引起俱乐部胜/平/负,进球/失球信息的改变,并根据此自动生成正确的联赛积分及净胜球。
2)比赛的球队只能来自同一个联赛,不符合则不予通过。
3)提供给球迷的积分榜,射手榜,助攻榜都是根据联赛规则排序。
c.能够提供一定的安全机制,提供数据信息授权访问,修改和删除,防止随意查询,修改及删除。系统分为普通用户和数据管理员用户。
d.对查询,统计的结果能够列表显示。
3
概念设计阶段
概念设计阶段的任务和目标:
(1)选择底层数据流为切入点,即实际系统中的子系统;
(2)设计分E-R图;
(3)生成初步E-R图,通过合并方法,使各子系统实体、属性、联系统一;
(4)生成全局E-R图,消除冲突。
4
物理设计阶段
(1)物理设计阶段的目标及任务:
a)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
b)物理结构合理,查询时间快,占用空间小。
(2)创建各表的sql语句。
(3)触发器,视图等可编程性设计:
15个榜单提供排行榜快捷查找;
比赛的3个触发器用增删改时自动更改俱乐部表中的胜负平,进球,失球等;
比赛规范的2个触发器是规范比赛表中两队在同意联赛且不相同;
俱乐部的2个触发器是用来自动计算联赛积分和净胜球的。
5
数据库安全
(1)对软件的登陆用户进行区分,当输入账号密码admin时进入管理员界面。
(2)当输入账号密码user时进入用户查询界面。
(3)在安全管理中体现出视图机制、和数据库完整性的使用;视图机制的体现,查询积分榜只显示俱乐部相关的属性。
主体完整性体现:在比赛表中添加恒大对国安的比赛,由于两只球队不在俱乐部表中,且中超不在联赛范畴,故添加失败。
6
程序功能
打开进入登陆界面,输入 user user后进入用户界面;
输入admin admin后进入管理员界面,比用户界面多一个管理菜单;
登陆后点击文件菜单可以选择重新登录返回登陆界面,
还有管理,查询,排行榜菜单可以点击;
点击管理-添加修改删除比赛,填写轮次,主队,客队可删除比赛。
结语
本文通过sqlserver数据库设计了一个足球联赛信息数据库。给予不同用户不同的操作权限,可完成基本的增删查改等操作。查找速率快,占用空间小,界面设计合理,简单易学。能够满足球迷用户的基本需求。也满足本文的设计目标。
领取专属 10元无门槛券
私享最新 技术干货