资源描述
经管学院数据库原理课程设计
第一章 系统概述
1.1项目开发背景和意义
随着经济的发展和消费水平的提高,人们消费越来越多样化,这就使游泳馆对顾客资料信息的管理更加繁琐。为了避免固定客流的流失推出了会员卡制度。会员管理系统能更好、更准、更方便的对会员的相关信息进行管理,并且更有效的维护游泳馆信息。这样不但有助于游泳馆会员秩序的管理与发展和信息维护,并且有助于提高游泳馆在用户中的形象,进而提高其知名度和竞争力。
会员管理系统相对于传统的管理而言具有查询方便、维护简易、精确性高等优点。计算机的使用能够大量节省人力、物力、财力,而且还可以大大提高会员资料的安全性和完整性。
系统采用SQL2008作为数据库开发平台,实现了管理员对会员信息的录入、更新和修改,并且可以按会员姓名、会员卡卡号查询会员的基本信息。
1.2 系统实现技术
1. 实验软件平台:Windows 8,PowerDesinger12.5
2. 数据库开发工具:Microsoft SQL 2008
第二章 需求分析
2.1 引言
随着社会发展,计算机的广泛应用已成为社会发展的重要标志。这个社会是个信息高速发展的社会,他不仅体现在高科技上,而且体现在我们日常的生活中。根据软件工程学的要求,开发软件首先要做的且也是开发过程中最主要的就是系统的需求分析,他同时也是软就爱你生存周期中关键的一步。根据要求,对游泳池会员管理系统的全部功能和相关技术进行具体的分析,分析时采用结构化的分析方法,自顶向下,逐步分解问题,下面就对游泳池会员管理系统进行系统分析,以确定软件的规模、应具有的功能提出的各项要求及所需要的硬件环境和软件支持,确定开发的软件与外界的接口。
2.2需求分析阶段的目标和任务
2.2.1处理对象
会员、消费记录、操作员、存款、参数表
2.2.2处理功能及要求
游泳池会员管理系统可实现七个功能,分别为售卡管理、会员资料管理、存款管理、退卡管理、会员禁用、消费管理、系统管理。其模块图如图2.1所示。
图2.1模块图
售卡管理:销售会员卡时要输入卡号、金额、折扣、类型(储值卡、折扣卡)以及持卡人基本资料(姓名、电话、证件号等)等信息,这些信息记录到会员资料中。
会员资料管理:查询和修改会员资料(其中卡号和金额不能修改)。可按照卡号、持卡人姓名查询信息。
存款管理:如果会员卡类别是储值卡,可根据卡号进行预存款操作。
退卡管理:执行退卡操作后该卡不可再使用,但保留该卡以前的消费记录。
会员禁用:用来挂失或是停止会员卡的使用(记录禁用的原因),实现对会员卡的安全管理可以通过解禁功能恢复会员卡的正常使用。
消费管理:记录会员的消费情况,可以查看会员的消费金额,存款金额、结存余额,可以查询任何一段时间内该卡的消费情况,也可以查询所有会员卡的汇总记录。
系统管理:包括参数设置、权限设置、更改密码等。
2.3游泳馆会员管理系统数据流图
2.3.1顶层数据流图
图2.2顶层数据流图
2.3.2游泳池会员管理第一层数据流图
图2.3会员管理第一层数据流图
2.3.3游泳池会员管理第二层数据流图
1) 售卡管理的数据流图
图2.4售卡管理的数据流图
2) 会员资料管理的数据流图
图2.5会员资料管理的数据流图
3) 存款管理的数据流图
图2.6存款管理的数据流图
4) 退卡管理的数据流图
图2.7退款管理的数据流图
5) 会员禁用的数据流图
图2.8会员禁用的数据流图
6) 消费管理的数据流图
图2.9消费管理的数据流图
7) 系统管理的数据流图
图2.10系统管理的数据流图
2.4游泳馆会员管理系统数据字典
1.数据流的定义
数据流名字:会员基本信息表
数据流描述:会员办理会员卡时需要登记的一些基本信息
数据流来源:会员
数据流去向:系统
数据流组成:会员基本信息表=会员姓名+会员电话+会员证件号
数据流量:10次/小时
高峰流量:30次/小时
数据流名字:办卡信息单
数据流描述:会员办理会员卡后收到的办理成功的信息单
数据流来源:操作员
数据流去向:会员
数据流组成:办卡信息单=办卡时间+办卡类型+客户名称+办卡金额+操作员编码
数据流量:10次/小时
高峰流量:30次/小时
数据流名字:查询会员记录单
数据流描述:通过卡号和持卡人姓名进行查询后的查询结果
数据流来源:操作员
数据流去向:会员
数据流组成:查询记录单=卡号+会员名称+会员基本资料
数据流量:30次/小时
高峰流量:50次/小时
数据流名字:查询条件
数据流描述:查询会员资料时输入的条件
数据流来源:操作员
数据流去向:会员
数据流组成:查询条件=卡号+持卡人姓名
数据流量:30次/小时
高峰流量:50次/小时
数据流名字:查询消费记录记录单
数据流描述:通过一定条件查询出来的结果
数据流来源:操作员
数据流去向:会员
数据流组成:查询记录单=卡号+持卡人姓名+持卡人资料+会员消费记录
数据流量:30次/小时
高峰流量:50次/小时
数据流名字:解禁命令
数据流描述:操作员对之前停止使用的会员卡进行权限处理操作,即可继续使用。
数据流来源:操作员
数据流去向:会员卡
数据流组成:
数据流量:5次/天
高峰流量:20次/天
数据流名字:消费情况单
数据流描述:会员的消费记录
数据流来源:操作员
数据流去向:会员
数据流组成:消费情况单=消费时间+消费金额+消费类型等
数据流量:50次/小时
高峰流量:100次/小时
2.数据存储的定义
数据存储名称:会员资料
数据存储描述:存储所有办理会员卡的会员的基本资料
数据存储组成:会员姓名+会员性别+会员电话+会员证件号
相关联的处理:登记会员信息 修改会员资料 确认会员信息
数据存储名称:卡务记录
数据存储描述:存储所有会员办理会员卡的记录
数据存储组成:会员姓名+办卡时间+办卡类型+办卡金额+会员证件号
相关联的处理:办卡处理 预存操作 注销管理 会员挂失 停止使用 解禁
数据存储名称:个人消费单据
数据存储描述:存储个人消费的时间、类型、金额等记录
数据存储组成:消费时间+消费类型+消费金额+卡号
相关联的处理:查询消费情况
数据存储名称:全体会员消费记录
数据存储描述:全体会员的消费记录
数据存储组成:消费时间+消费类型+消费金额+卡号
相关联的处理:查询所有会员卡的汇总记录
3.数据处理的定义
数据处理名称:登记会员信息
数据处理描述:售卡时将会员信息输入到系统数据文件中
输入的数据流:来源于已经核对的会员信息
处理:在系统中建立新的会员帐户信息
输出的数据流:正确有效的会员信息
数据处理名称:办卡处理
数据处理描述:输入会员卡的基本信息到系统数据文件中
输入的数据流:正确有效的会员信息
处理:将会员信息与会员卡信息进行绑定
输出的数据流:办卡信息单
数据处理名称:查询信息
数据处理描述:操作员根据卡号或持卡人姓名进行查询相关信息
输入的数据流:查询条件
处理:系统根据输入的卡号或姓名进行筛选相关的信息
输出的数据流:查询记录单
数据处理名称:修改会员信息
数据处理描述:操作员可以修改除卡号和金额以外的会员的信息
输入的数据流:核对信息
处理:系统更改会员的基本信息,更新数据库
输出的数据流:修改记录
数据处理名称:预存操作
数据处理描述:会员现在储值卡里存入一笔费用供以后使用
输入的数据流:储值卡信息
处理:向储值卡里预存一定金额的费用
输出的数据流:充值单
数据处理名称:注销管理
数据处理描述:进行退卡操作后,该卡就不再继续使用
输入的数据流:核对正确的持卡人信息
处理:注销此卡,结算余额
输出的数据流:注销清单
数据处理名称:会员挂失
数据处理描述:会员丢失会员卡,即可进行挂失处理
输入的数据流:核对正确的会员信息
处理:进行挂失操作,对原先相同卡号的卡进行权限处理,无法使用。
输出的数据流:卡被禁令
数据处理名称:停止使用
数据处理描述:停止会员卡的使用
输入的数据流:核对正确的会员信息
处理:对该卡进行权限处理,停止其使用,并输入合理的原因
输出的数据流:卡被禁令
数据处理名称:解禁
数据处理描述:操作员对之前停止使用的会员卡进行权限设置,能够继续使用
输入的数据流:解禁命令
处理:权限设置
输出的数据流:会员卡正常使用
数据处理名称:查询消费情况
数据处理描述:会员可以查询任何一段时间内该卡的消费情况
输入的数据流:会员信息
处理:卡务信息
输出的数据流:会员消费单据
数据处理名称:查询所有会员卡的汇总记录
数据处理描述:操作员可以查询所有会员卡的汇总记录
输入的数据流:所有会员的信息
处理:
输出的数据流:查询记录单
数据处理名称:登陆
数据处理描述:用户登录此系统
输入的数据流:用户名和密码
处理:识别输入的用户名和密码是否正确
输出的数据流:登录成功界面
4.数据元素的定义
数据元素名字:密码
数据元素别名:管理员密码
数据元素描述:管理员对系统进行操作前的准入口令
数据元素定义:密码=6{数字}
数据元素位置:登录
数据元素名字:存款金额
数据元素别名:存入额
数据元素描述:会员向会员卡里存入的金额数量
数据元素定义:存款金额={数字}
数据元素位置:会员卡
消费记录
数据元素名字:会员卡号
数据元素描述:会员建立的会员文件
数据元素定义:卡号=10{数字}10
数据元素位置:会员卡
消费记录
数据元素名字:消费编号
数据元素描述:会员消费的流水号
数据元素定义:消费编号=8{数字}8
数据元素位置:消费记录
数据元素名字:会员身份证号
数据元素别名:身份证
数据元素描述:识别会员的凭证
数据元素定义:身份证=18{数字}18
数据元素位置:会员卡
会员基本信息
数据元素名字:账户余额
数据元素描述:储户存储在银行的现有金额
数据元素定义:账户余额={数字}
数据元素位置:会员卡 消费记录
第三章 概念结构设计
3.1引言
系统开发的总体目标是实现游泳馆会员管理的系统化和自动化,减轻工作人员的工作量,方便工作人员对他的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高管理员管理效率的目的。
主要任务是对会员信息、会员卡信息、消费信息的操作及处理。
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。
3.2实体概念数据模型的设计
1) 会员的概念结构
图3.1会员的概念结构
2) 存款的概念结构
图3.2存款的概念结构
3) 消费记录的概念结构
图3.3消费记录的概念结构
4) 操作员的概念结构
图3.4 操作员的概念结构
5) 参数表的概念结构
图3.5参数表的概念结构
3.3系统概念结构设计
根据系统需求分析,可以得出游泳池会员管理系统的概念结构模型
图3.6游泳池会员管理系统的概念结构模型
第四章 逻辑结构设计
4.1逻辑设计阶段的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的CDM转化为选用DBMS产品所支持的数据模型相符合的逻辑结构。
4.2数据组织
4.2.1转化为关系模型
一个实体型转化为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体型间的联系则有一下不同的情况:
1) 一个1:1联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
2) 一个1:n联系可以转化为一个独立的关系模式,也可以与n端对应的关系模式合并。
3) 一个 m:n联系转化为一个关系模式。
会员和存款之间是1:n的关系,会员与消费记录之间也是1:n的关系,因此各实体对应的关系模式为:
会员(卡号、会员姓名、会员身份证号、类型、余额、状态、电话)其中,卡号为主键
存款(流水号、卡号、加款、状态、操作时间)其中,流水号为主键,卡号为外键
消费记录(消费编号、卡号、消费时间、消费金额)其中,消费编号为主键,卡号为外键
操作员(操作员号、操作员姓名、操作员口令)其中,操作员号位主键
参数表(编码、项目表、项目值)其中、编码为主键
4.2.2 模型优化
关系模式中,会员、会员卡、消费记录不存在非主属性与主属性的部分函数依赖,也不存在传递函数依赖,已达到3NF。
第五章 物理结构设计
5.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
1) 确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
2) 对物理结构进行评价,评价的重点是时间和空间效率。
5.2 CDM转化为PDM
将概念数据模型(CDM)转化成物理数据模型(PDM),根据以上CDM转化成的PDM如图所示。
图5.1游泳池会员管理系统的物理数据模型
5.3 PDM生成到数据库
物理数据模型生成数据库
图5.2数据库运行成功截图
5.4 PDM生成到数据库中各表的结构
图5.3会员信息结构图
图5.4操作员信息结构图
图5.5消费记录结构图
图5.6存款结构图
图5.7参数表结构图
第六章 数据库实施阶段
6.1数据插入
6.1.1会员基本信息表
1)手动插入三条记录
2)SQL语句插入两条记录
INSERT
INTO "会员"
VALUES ('2012200207','张三','230703188703061734','储值卡','500','正常','18335100803')
INSERT
INTO "会员"
VALUES ('2012200208','沈杨','26036717980423','折扣卡','0','正常','18335103587')
图6.1插入会员基本信息截图
3)插入后的数据
图6.2插入会员基本信息结果截图
6.1.2操作员基本信息表
1) 手动插入三条记录
2) SQL语句插入两条记录
INSERT
INTO "操作员"
VALUES ('1006','刘艺','687964')
INSERT
INTO "操作员"
VALUES ('1007','张鑫','239800')
图6.3插入操作员基本信息截图
3)插入后的数据
图6.4插入操作员基本信息结果截图
6.1.3消费记录基本信息表
1) 手动插入三条数据
2) SQL语句插入两条数据
INSERT
INTO "消费记录"
VALUES ('21100004','2012200207','2014-06-10 12:00','200')
INSERT
INTO "消费记录"
VALUES ('21100005','2012200208','2014-06-10 13:00','100')
图6.5插入消费记录基本信息截图
3)插入后的数据
图6.6插入消费记录信息结果截图
6.1.4参数表
1) 手动插入三条记录
2) SQL语句插入两条记录
INSERT
INTO "参数表"
VALUES ('10004','折扣D','7')
INSERT
INTO "参数表"
VALUES ('10005','折扣E','7.7')
图6.7插入参数基本信息截图
3) 插入后的数据
图6.8插入参数信息结果截图
6.1.5存款基本信息表
1)手动插入三条记录
2)SQL语句插入两条记录
INSERT
INTO "存款"
VALUES ('12200004','2012200207','500','可消费','2014-06-10 12:00')
INSERT
INTO "存款"
VALUES ('12200005','2012200206','1000','可消费','2014-06-20 12:00')
图6.9插入存款基本信息截图
3) 插入后的数据
图6.10插入存款信息结果截图
6.2记录查询
6.2.1按照持卡人姓名查询会员资料
SELECT "会员".*
FROM "会员"
WHERE "会员"."会员姓名"='张三'
图6.11按照持卡人姓名查询会员资料
6.2.2按照卡号查询会员资料
SELECT "会员".*
FROM "会员"
WHERE "会员"."卡号"='2012200204'
图6.12按照卡号查询会员资料
6.2.3查询会员的消费金额、存款金额、余额
SELECT "会员"."卡号","会员"."会员姓名","消费记录"."消费金额","存款"."加款","会员"."余额"
FROM "消费记录","存款","会员"
WHERE "会员"."卡号"="消费记录"."卡号"AND"消费记录"."卡号"="存款"."卡号"
图6.13查询会员的消费金额、存款金额、余额
6.2.4查询一段时间内该卡的消费情况
SELECT "消费记录".*
FROM "消费记录"
WHERE "消费记录"."卡号"='2012200206'AND"消费记录"."消费时间"BETWEEN'2014-03-01'AND'2014-07-01'
图6.14查询一段时间内该卡的消费情况
6.2.5查询所有会员卡的汇总记录
SELECT "会员".*,"消费记录".*
FROM "消费记录","会员"
WHERE "消费记录"."卡号"="会员"."卡号"
图6.15查询所有会员卡的汇总记录
6.3记录修改
6.3.1 修改会员姓名为张三的会员电话
UPDATE "会员"
SET "会员电话"='18335102345'
WHERE "会员"."会员姓名"='张三'
图6.16修改会员姓名为张三的会员电话
6.3.2 修改卡号为“2012200208”的消费金额
UPDATE "消费记录"
SET "消费金额"='300'
WHERE "消费记录"."卡号"='2012200208'
图6.17 修改卡号为“2012200208”的消费金额
6.3.3 挂失会员卡
UPDATE 会员
SET 状态='挂失'
WHERE 卡号='2012200208'
图6.18 挂失会员卡
6.3.4 禁用会员卡
UPDATE 会员
SET 状态='禁用'
WHERE 卡号='2012200205'
图6.19 修改卡号
6.3.5 恢复会员卡的正常使用
UPDATE 会员
SET 状态='正常'
WHERE 卡号='2012200208'
图6.20 恢复会员卡的正常使用
6.4记录删除
6.4.1 删除卡号为“2012200208”的消费记录
DELETE
FROM "消费记录"
WHERE "消费记录"."卡号"='2012200208'
图6.21 删除卡号为“2012200208”的消费记录
6.4.2删除卡号为“2012200204”的会员资料
DELETE
FROM "会员"
WHERE "会员"."卡号"='2012200204'
图6.22删除卡号为“2012200204”的会员资料
课程设计心得与体会
这次数据库课程设计我的题目是游泳池会员管理系统,本系统面对的对象分别为会员和会员卡和消费记录,实现了管理员对会员基本资料和消费记录的查询与管理员对其的插入、删除、修改、查询。在设计过程中熟练掌握了数据库的使用。不仅巩固了书本上的只是,而且学到了很多课堂上学不到的东西。以前没有做过系统软件开发,只是书本上固定的思维模式,对软件开发只是一个模糊的概念,通过这次实践,让我们对软件开发有了切身体会,对系统有了一个整体的认识,在开发系统的时候思考问题更加全面。
在本次设计过程中遇到了很多问题,比如概念结构设计中存在很多问题,还有就是连接到数据库中的插入记录,查询记录等,最终在老师和同学的帮助下顺利解决。此次课程设计过程中,让我体会到了开发系统是一个不断学习的过程,尤其是数据库的使用更加重要,通过这次实际操作,真正领悟到了理论与实践相结合的重要性。
此次数据库课程设计,我深刻意识到了一点,就是对待繁琐的事情要有耐心。没有解决不了的问题,但是哪怕是小问题在心里静不下来的时候也是无法解决的。所以要我很好的心态,要有解决问题的耐心。比如,数据字典的书写在刚开始的时候,因为太多而一度不想再进行下去。但是经过自己的调节,意识到了一步一步地解决,对待一切要有耐心才是硬道理。
参考文献
[1]萨师煊,王珊.数据库系统概论.北京:高校教育出版社2002;
[2]白尚旺,党伟超等.软件分析建模与PowerDesigner实现.北京:清华大学出版社,2010;
32
展开阅读全文