健身中心管理系统sql.docx
《健身中心管理系统sql.docx》由会员分享,可在线阅读,更多相关《健身中心管理系统sql.docx(21页珍藏版)》请在冰豆网上搜索。
健身中心管理系统sql
课程设计IV
设计说明书
健身中心管理系统的数据库设计与数据操作
学生
志新
学号
1118064047
班级
网络1102班
成绩
指导教师
肖海蓉
数学与计算机科学学院
2014年6月27日
课程设计任务书
2013—2014学年第二学期
课程设计名称:
课程设计IV
课程设计题目:
健身中心管理系统的数据库设计与数据操作
完成期限:
自2014年6月17日至2014年6月27日共2周
设计依据、要求及主要容:
调查健身中心相关行业,根据其实际情况设计健身中心管理系统。
1.系统功能基本要求:
(1)会员管理功能:
包括不同连锁店会员的入会申请、会员选课、会员卡管理及会员活动安排功能;
(2)教练管理功能:
包括教练基本信息管理及教练授课信息管理;
(3)课程管理功能:
包括课程类别、课程基本信息及最新课程介绍、机械使用介绍、课程安排、课表查询及下载打印功能;
(4)系统权限设置管理功能:
包括不同角色的管理、不同用户权限的设置等。
2.具体要求如下:
(1)在小组进行分工,进行系统调查,搜集资料。
(2)系统的需求分析:
根据自己的选题,确定系统的功能需求,性能需求,绘制的DFD,DD图表以及书写相关的文字说明。
(3)概念结构设计:
绘制所选课题详细的E-R图。
(4)逻辑结构设计:
将E-R图转换数据库的逻辑结构,并进行优化;
(5)物理结构设计:
选定实施环境,确定系统数据库的存储结构和存取方法等;
(6)数据实施和维护:
用DBMS建立数据库结构,加载数据,实现各种查询,应用程序,设计库中触发器、存储过程等对象,并能对数据库做简单的维护操作。
指导教师(签字):
教研室主任(签字):
课程设计评阅
评语:
指导教师签名:
年月日
摘要
本设计采用SQLServer2005数据库进行开发。
本文首先对健身中心管理系统的设计进行了详细的需求分析;然后给出了健身中心管理系统的设计方案,实现了健身中心管理系统的构建,主要包括系统会员信息添加,会员信息查询,会员信息的修改,会员注销时删除会员信息。
关键字:
SQLServer,数据库,健身中心
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数据库,代码如下:
CREATEDATABASEJSGL
ON
(NAME=JSGL_dat,
FILENAME='D:
\JSGL_dat.mdf',
SIZE=5,
MAXSIZE=10,
FILEGROWTH=10%)
LOGON
(NAME=XSGL,
FILENAME='D:
\JSGL.ldf',
SIZE=5,
MAXSIZE=10,
FILEGROWTH=15%)
图4.1JSGL数据库
(2)建立数据表:
(1)会员表的建立,代码如下:
USEJSGL
GO
CREATETABLEHuiy
(char(30)NOTNULLPRIMARYKEY,
性别char(30)NOTNULLDEFAULT'男',
年龄decimalCHECK(年龄>0and年龄<150),
健身项目char(50)NOTNULL,
联系方式char(50)NOTNULL
)
图4.2会员表
将会员表插入数据,代码如下:
USEJSGL
GO
insertintoHuiy(,性别,年龄,健身项目,联系方式)
values('明','男',19,'散打','')
insertintoHuiy(,性别,年龄,健身项目,联系方式)
values('平','女',19,'街舞','')
insertintoHuiy(,性别,年龄,健身项目,联系方式)
values('亮','男',20,'器械健身','')
insertintoHuiy(,性别,年龄,健身项目,联系方式)
values('王丽','女',19,'跆拳道','')
insertintoHuiy(,性别,年龄,健身项目,联系方式)
values('强','男',21,'街舞','')
图4.3插入数据后的会员表
(2)会员卡表的建立,代码如下:
USEJSGL
GO
CREATETABLEKab
(卡号char(30)NOTNULLPRIMARYKEY,
char(30)NOTNULL,
卡类型char(30)NOTNULL,
缴费时间smalldatetimeNOTNULL,
过期时间smalldatetimeNOTNULL
)
图4.4会员卡表
(3)管理员表的建立,代码如下:
USEJSGL
GO
CREATETABLEGly
(账号char(30)NOTNULLPRIMARYKEY,
密码char(30)NOTNULL,
性别char(30)NOTNULLDEFAULT'男',
年龄decimalCHECK(年龄>0and年龄<150)
)
图4.6管理员表
4.数据库实施和维护
(1)将会员卡表插入数据,代码如下:
USEJSGL
GO
insertintoKab(卡号,,卡类型,缴费时间,过期时间)
values('1001','平','年卡','2011-03-22','2011-03-22')
insertintoKab(卡号,,卡类型,缴费时间,过期时间)
values('1002','王丽','季卡','2011-05-11','2012-08-11')
insertintoKab(卡号,,卡类型,缴费时间,过期时间)
values('1003','强','年卡','2011-06-15','2011-06-15')
insertintoKab(卡号,,卡类型,缴费时间,过期时间)
values('1004','明','季卡','2011-07-09','2011-10-09')
insertintoKab(卡号,,卡类型,缴费时间,过期时间)
values('1005','亮','月卡','2011-02-24','2011-03-24')
图4.1插入数据后的会员卡表
(2)将管理员表插入数据,代码如下:
USEJSGL
GO
insertintoGly(账号,密码,性别,年龄)
values('无痕','AH883721','男','32')
insertintoGly(账号,密码,性别,年龄)
values('断剑','ZDK12345','男','28')
insertintoGly(账号,密码,性别,年龄)
values('痕迹','XP154321','男','28')
图4.2插入数据后的管理员表
(3)创建规则-卡上余额控制
creatrule余额控制asrange>$10
go
execsp_bindrule‘余额控制’,‘会员卡上余额’
图4.3卡上余额显示图
(3)建立索引:
为了提高查询和更新速度、保证数据一致性,本课程设计建立如下索引:
对于HuiY表,按建立主键索引(primarykey约束)索引组织方式为聚集索引。
对于Kab表,按卡号建立主键索引(primarykey约束)索引组织方式为唯一聚集索引。
代码如下:
USEJSGL
GO
CREATECLUSTEREDINDEXIX_name
ONHuiY()
WITHFILLFACTOR=20
USEJSGL
GO
CREATEUNIQUECLUSTEREDINDEXIX_number
ONKab(卡号)
WITHFILLFACTOR=40
删除卡表中的索引IX_number:
USEJSGL
GO
DROPINDEXKab.IX_number
(4)建立视图:
为了更加详细的查询会员的信息特建立以下会员信息视图并使用select语句进行查询,代码如下:
useJSGL
GO
createview会员信息视图
as
selectHuiy.,Huiy.性别,Huiy.联系方式,Kab.卡号,Kab.卡类型,
Kab.缴费时间,Kab.到期时间
fromHuiy,Kab
whereHuiy.=Kab.
select*from会员信息视图
图4.4会员信息视图
现只需查询季卡会员的信息,特将会员信息视图修改如下:
useJSGL
GO
ALTERview会员信息视图
as
selectHuiy.,Huiy.性别,Huiy.联系方式,Kab.卡号,Kab.卡类型,
Kab.缴费时间,Kab.到期时间
fromHuiy,Kab
whereHuiy.=Kab.
ADDKab.卡类型='季卡'
select*from会员信息视图
图4.5修改后的视图
(5)存储过程的建立
创建名为select_Huiy的存储过程,该过程可查询所有会员信息,代码如下:
USEJSGL
GO
IFEXISTS(EXISTSnameFROMsysobjectsWHEREname='select_Huiy'ANDtype='P')
DROPPROCEDUREselect_Huiy
GO
CREATEPROCEDUREselect_Huiy
AS
SELECT*FROMHuiy
ORDERBYHuiy.年龄
GO
EXECselect_Huiy
GO
当需要改为能检索街舞会员的信息时,用ALTERPROCEDURE重新定义该存储过程代码如下:
USEJSGL
GO
ALTERPROCEDUREselect_Huiy
WITHENCRYPTION
AS
SELECT*FROMHuiy
WHERE健身项目='街舞'
ORDERBYHuiy.年龄
GO
EXECselect_Huiy
GO
删除存储过程Huiy_information,代码如下:
USEJSGL
GO
DROPPROCEDUREHuiy_information
(6)触发器的建立
此触发器是建立在Kab表上,进行修改操作forinsert。
在有会员车时间与系统时间进行比较。
如果系统时间大于发车时间即列车已开走则不允许退票代码如下:
USEJSGL
GO
ifexists(selectnamefromsysobjects
wherename='Huiy_delete'andtype='tr')
droptriggerHuiy_delete
go
createtriggerHuiy_deleteonKab
insteadofdelete
as
deletefromKab
where到期时间IN(select到期时间fromdeleted)
go
deleteKabwhere到期时间='2011-12-12'
select*fromKab
(7)数据库查询如图4.6-4.8
①select*fromGlywhere性别='男'
图4.6查询管理员
②select*fromHuiywhere联系方式like'182%'
图4.7查询会员
③select*fromKabwhere缴费时间>'2011-07-01'and过期时间>'2011-8-01'
图4.8会员卡信息查询
④select,count(*)fromKabwhere缴费时间>'2011-06-01'
groupbyorderbydesc
图4.9会员卡信息查询
5.总结
通过这次课程设计,我对数据库的基本知识有了进一步的了解:
存储过程的设计体现了程序和数据库的及具体程序如何将操作反应到数据库;视图是从一个或几个基本表(或视图)导出的表,其数据随基表中数据的变化而变化,通过它可以看到自己感兴趣的数据;对于触发器,我了解了建立的语法要求及所代表的意思,以及在维护数据库数据一致性方面的重要作用。
在数据库建立过程中,我对数据库的优化、完整性、一致性等有了更深的认识,熟悉了数据库建立的一般方法和过程。
但由于能力有限,此课程设计还有许多不足:
系统功能还不够完善,权限设置还不完整,数据库的设计也比较简单。
参考文献
[1]阿奇,启芬,顾韵华.SQLServer应用教程.人民邮电2009
[2]春葆,曾慧.SQLServer2000应用系统开发教程.清华大学2008