健身中心管理系统sql

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

课程设计IV
设计说明书
健身中心管理系统的数据库设计与数据操作
学生志新
学号1118064047
班级网络1102班
成绩
指导教师肖海蓉
数学与计算机科学学院2014年 6 月 27 日
课程设计任务书
2013 — 2014 学年第二学期
设计依据、要求及主要容:
调查健身中心相关行业,根据其实际情况设计健身中心管理系统。

1. 系统功能基本要求:
(1)会员管理功能:包括不同连锁店会员的入会申请、会员选课、会员卡管理及会员活动安排功能;
(2)教练管理功能:包括教练基本信息管理及教练授课信息管理;
(3)课程管理功能:包括课程类别、课程基本信息及最新课程介绍、机械使用介绍、课程安排、课表查询及下载打印功能;
(4)系统权限设置管理功能:包括不同角色的管理、不同用户权限的设置等。

2.具体要求如下:
(1)在小组进行分工,进行系统调查,搜集资料。

(2)系统的需求分析:根据自己的选题,确定系统的功能需求,性能需求,绘制的DFD,DD图表以及书写相关的文字说明。

(3)概念结构设计:绘制所选课题详细的E-R图。

(4)逻辑结构设计:将E-R图转换数据库的逻辑结构,并进行优化;
(5)物理结构设计:选定实施环境,确定系统数据库的存储结构和存取方法等;
(6)数据实施和维护:用DBMS建立数据库结构,加载数据,实现各种查询,应用程序,设计库中触发器、存储过程等对象,并能对数据库做简单的维护操作。

指导教师(签字):教研室主任(签字):
课程设计评阅
本设计采用SQL Server 2005数据库进行开发。

本文首先对健身中心管理系统的设计进行了详细的需求分析;然后给出了健身中心管理系统的设计方案,实现了健身中心管理系统的构建,主要包括系统会员信息添加,会员信息查询,会员信息的修改,会员注销时删除会员信息。

关键字:SQL Server,数据库,健身中心
1.绪论 (1)
2.需求分析 (2)
2.1系统需求分析 (2)
2.2数据库需求分析 (2)
3. 数据库设计 (5)
3.1数据库的概念设计 (5)
3.2 数据库的逻辑结构设计 (7)
3.3数据库物理结构设计 (7)
4. 数据库实施和维护 (11)
5.总结 (17)
参考文献 (18)
1.绪论
信息时代已经来临,信息处理的利器——计算机应用于各行各业日常管理,为各行各业现代化带来了从未有过的动力和机遇,为各行各业飞速发展提供了无限潜力。

采用计算机管理信息系统已成为现代管理科学化和现代化的重要标志,给各种行业带来了明显的经济效益和社会效益。

通过对各种数据库管理系统的模型分析,结合现代人们精神物质的实际需求,和对健身消费的需求,本文说明了健身中心管理系统的开发过程及各种技术细节。

本系统是适应时代发展的需要,提高管理的效率而开发设计的。

健身中心管理系统的主要任务,通过实现会员信息的计算机管理,以提高工作效率。

实现计算机管理的最佳技术就是数据库技术。

我们可以利用数据库将所有会员信息情况存入计算机,再配置上功能丰富的用户接口,以满足用户需求。

一个会员信息管理系统应达到的目标是提供及时、广泛的信息服务,加快信息检索的效率,实况灵活的查询,减轻管理人员制作报表和统计分析的负担,且系统规模不太大但又要保证支持日常工作的要求,以便系统应易于扩充,方便日后统一联网与管理,提高管理水平。

2.需求分析
2.1系统需求分析
系统分析是开发管理信息系统的关键性阶段,是一个从不断认识和逐步细化的过程,是下一阶段的工作基础,是为下一阶段进行物理方案设计、解决“怎么做”提供依据,基关键性主要体现在“理解需求”和“表达需求”两方面。

通过对现行系统的详细调研,主要是从系统的角度理解用户的需要,确定新系统的综合要求,并提出这些需求的实现条件以及需求应达到的标准,也就是确定新系统要做什么,做到什么程度。

通过调查,要求系统需要有以下功能:
(1)由于该系统的使用对象多,要求有较好的权限管理;
(2)原始数据修改简单方便,支持多条件修改
(3)方便的数据查询,支持多条件查询;
(4)在相应的权限下,删除数据方便简单,数据稳定性好;
2.2数据库需求分析
2.2.1数据流图
数据流图如图2.1-2.3
图2. 1 数据流图
图2.2 数据流图
图2.3 数据流图
2.2.2数据字典
数据字典是以数据库中数据基本单元为单位,按一定顺序排列,对其容作详细说明的数据集。

针对健身中心会员管理系统得到过程和数据流程分析,设计得到如下的数据项和数据结构:会员,包括的数据项主要有:,性别,年龄,健身项目,联系方。

会员卡,包括的数据项主要有:卡号,,卡类型,缴费时间,到期时间。

管理员,包括的数据项主要有:账号,密码,性别,年龄。

教练,包括的数据项主要有教练编号,教练,,职称,工时,健身项目编号。

健身房,包括的数据项主要有健身房编号,健身房名称,健身场馆编号。

健身项目,包括的数据项包括健身项目编号,健身项目名称,会员人数,教练人数,健身房编号。

会员,包括的数据项主要有会员编号,会员,性别,,消费时间,会员等级,教练编号,健身项目编号。

3.数据库设计
3.1数据库的概念设计
在本系统中,主要功能包括:
(1)会员信息的录入、修改、查询和删除。

(2)管理员管理健身中心系统。

根据所学数据库基础知识和以上对本次课程设计系统的分析,最终画出系统的实体关系图(E-R图)如图3.1-3.5所示。

图3.1分E-R图
图3.2分E-R图
图3.3分E-R图
图3.4分E-R图
图3.5总E-R图
3.2 数据库的逻辑结构设计
将图3.1的概念模型转换为下列关系模型:
健身房(健身房编号,健身房名称,健身场馆编号)
教练(教练编号,教练,性别,,职称,工时,工资,健身项目编号)
健身项目(健身项目编号,健身项目名称,会员人数,教练人数,健身房编号)会员(会员编号,会员,性别,,消费时间,会员等级,教练编号,健身项目编号)会员卡(会员卡编号,日期,会员编号)
器材(器材编号,器材名称,健身项目编号)
消费单(消费单编号,消费时间,教练编号,会员,健身房编号,健身项目编号)健身房-健身项目(健身房编号,会员编号,健身项目类别)
3.3数据库物理结构设计
(1)创建JSGL数据库,代码如下:
CREATE DATABASE JSGL
ON
(NAME=JSGL_dat,
FILENAME='D:\JSGL_dat.mdf',
SIZE=5,
MAXSIZE=10,
FILEGROWTH=10%)
LOG ON
(NAME=XSGL,
FILENAME='D:\JSGL.ldf',
SIZE=5,
MAXSIZE=10,
FILEGROWTH=15%)
图4.1 JSGL数据库(2)建立数据表:
(1)会员表的建立,代码如下:
USE JSGL
GO
CREATE TABLE Huiy
(char(30) NOT NULL PRIMARY KEY,
性别char(30) NOT NULL DEFAULT '男',
年龄decimal CHECK(年龄>0 and 年龄<150), 健身项目char(50) NOT NULL,
联系方式char(50) NOT NULL
)
图4.2 会员表将会员表插入数据,代码如下:
USE JSGL
GO
insert into Huiy( ,性别,年龄, 健身项目,联系方式) values('明','男',19,'散打','')
insert into Huiy( ,性别,年龄, 健身项目,联系方式) values('平','女',19,'街舞','')
insert into Huiy( ,性别,年龄, 健身项目,联系方式) values('亮','男',20,'器械健身','')
insert into Huiy( ,性别,年龄, 健身项目,联系方式) values('王丽','女',19,'跆拳道','')
insert into Huiy( ,性别,年龄, 健身项目,联系方式) values('强','男',21,'街舞','')
图4.3 插入数据后的会员表(2)会员卡表的建立,代码如下:
USE JSGL
GO
CREATE TABLE Kab
(卡号 char(30) NOT NULL PRIMARY KEY,
char(30) NOT NULL,
卡类型 char(30) NOT NULL,
缴费时间smalldatetime NOT NULL,
过期时间smalldatetime NOT NULL
)
图4.4 会员卡表(3)管理员表的建立,代码如下:
USE JSGL
GO
CREATE TABLE Gly
(账号 char(30) NOT NULL PRIMARY KEY,
密码 char(30) NOT NULL,
性别 char(30) NOT NULL DEFAULT '男',
年龄 decimal CHECK(年龄>0 and 年龄<150)
)
图4.6 管理员表
4.数据库实施和维护
(1)将会员卡表插入数据,代码如下:
USE JSGL
GO
insert into Kab(卡号,,卡类型,缴费时间,过期时间)
values('1001','平','年卡','2011-03-22','2011-03-22') insert into Kab(卡号,,卡类型,缴费时间,过期时间)
values('1002','王丽','季卡','2011-05-11','2012-08-11') insert into Kab(卡号,,卡类型,缴费时间,过期时间)
values('1003','强','年卡','2011-06-15','2011-06-15') insert into Kab(卡号,,卡类型,缴费时间,过期时间)
values('1004','明','季卡','2011-07-09','2011-10-09') insert into Kab(卡号,,卡类型,缴费时间,过期时间)
values('1005','亮','月卡','2011-02-24','2011-03-24')
图4.1 插入数据后的会员卡表(2)将管理员表插入数据,代码如下:
USE JSGL
GO
insert into Gly(账号,密码, 性别,年龄)
values('无痕','AH883721','男','32')
insert into Gly(账号,密码, 性别,年龄)
values('断剑','ZDK12345','男','28')
insert into Gly(账号,密码, 性别,年龄)
values('痕迹','XP154321','男','28')
图4.2 插入数据后的管理员表
(3) 创建规则-卡上余额控制
creat rule 余额控制 as range>$10
go
exec sp_bindrule ‘余额控制’,‘会员卡上余额’
图4.3卡上余额显示图
(3)建立索引:
为了提高查询和更新速度、保证数据一致性,本课程设计建立如下索引:
对于HuiY表,按建立主键索引(primary key约束)索引组织方式为聚集索引。

对于Kab表,按卡号建立主键索引(primary key约束)索引组织方式为唯一聚集索引。

代码如下:
USE JSGL
GO
CREATE CLUSTERED INDEX IX_name
ON HuiY()
WITH FILLFACTOR=20
USE JSGL
GO
CREATE UNIQUE CLUSTERED INDEX IX_number
ON Kab(卡号)
WITH FILLFACTOR=40
删除卡表中的索引IX_number:
USE JSGL
GO
DROP INDEX Kab. IX_number
(4)建立视图:
为了更加详细的查询会员的信息特建立以下会员信息视图并使用select语句进行查询,代码如下:use JSGL
GO
create view 会员信息视图
as
select Huiy.,Huiy.性别,Huiy.联系方式,Kab.卡号,Kab.卡类型,
Kab.缴费时间,Kab.到期时间
from Huiy,Kab
where Huiy.=Kab.
select *from 会员信息视图
图4.4 会员信息视图
现只需查询季卡会员的信息,特将会员信息视图修改如下:
use JSGL
GO
ALTER view 会员信息视图
as
select Huiy.,Huiy.性别,Huiy.联系方式,Kab.卡号,Kab.卡类型,
Kab.缴费时间,Kab.到期时间
from Huiy,Kab
where Huiy.=Kab.
ADD Kab.卡类型='季卡'
select *from 会员信息视图
图4.5 修改后的视图
(5)存储过程的建立
创建名为select_Huiy的存储过程,该过程可查询所有会员信息,代码如下:
USE JSGL
GO
IF EXISTS(EXISTS name FROM sysobjects WHERE name='select_Huiy'AND type='P') DROP PROCEDURE select_Huiy
GO
CREATE PROCEDURE select_Huiy
AS
SELECT * FROM Huiy
ORDER BY Huiy.年龄
GO
EXEC select_Huiy
GO
当需要改为能检索街舞会员的信息时,用ALTER PROCEDURE 重新定义该存储过程代码如下: USE JSGL
GO
ALTER PROCEDURE select_Huiy
WITH ENCRYPTION
AS
SELECT * FROM Huiy
WHERE 健身项目='街舞'
ORDER BY Huiy.年龄
GO
EXEC select_Huiy
GO
删除存储过程Huiy_information,代码如下:
USE JSGL
GO
DROP PROCEDURE Huiy_information
(6)触发器的建立
此触发器是建立在Kab表上,进行修改操作 for insert 。

在有会员车时间与系统时间进行比较。

如果系统时间大于发车时间即列车已开走则不允许退票代码如下:
USE JSGL
GO
if exists (select name from sysobjects
where name='Huiy_delete'and type='tr')
drop trigger Huiy_delete
go
create trigger Huiy_delete on Kab
instead of delete
as
delete from Kab
where 到期时间 IN(select 到期时间 from deleted)
go
delete Kab where 到期时间='2011-12-12'
select *from Kab
(7)数据库查询如图4.6-4.8
①select * from Gly where 性别='男'
图4.6 查询管理员
②select * from Huiy where 联系方式like '182%'
图4.7 查询会员
③select * from Kab where 缴费时间>'2011-07-01' and 过期时间>'2011-8-01'
图4.8 会员卡信息查询
④select ,count(*) from Kab where 缴费时间>'2011-06-01'
group by order by desc
图4.9 会员卡信息查询
5.总结
通过这次课程设计,我对数据库的基本知识有了进一步的了解:存储过程的设计体现了程序和数据库的及具体程序如何将操作反应到数据库;视图是从一个或几个基本表(或视图)导出的表,其数据随基表中数据的变化而变化,通过它可以看到自己感兴趣的数据;对于触发器,我了解了建立的语法要求及所代表的意思,以及在维护数据库数据一致性方面的重要作用。

在数据库建立过程中,我对数据库的优化、完整性、一致性等有了更深的认识,熟悉了数据库建立的一般方法和过程。

但由于能力有限,此课程设计还有许多不足:系统功能还不够完善,权限设置还不完整,数据库的设计也比较简单。

参考文献
[1]阿奇,启芬,顾韵华.SQL Server应用教程.人民邮电 2009
[2]春葆,曾慧.SQL Server 2000 应用系统开发教程.清华大学 2008。

相关文档
最新文档