1、数据库系统原理课程设计报告数据库系统原理课程设计报告项目名称: 游泳馆会员管理系统数据库设计 专 业: 计算机科学与技术 班 级: 163 姓 名: 吉力 学 号: 5011212305 指导老师: 杜义君 摘 要随着经济的发展和消费水平的提高,人们消费越来越多样化,这就使游泳馆对顾客资料信息的管理更加繁琐.会员管理系统能更好、更准、更方便的对会员的相关信息进行管理,并且更有效的维护游泳馆信息。这样不但有助于游泳馆会员秩序的管理与发展和信息维护,并且有助于提高游泳馆在用户中的形象,进而提高其知名度和竞争力.系统采用access作为开发工具。实现了管理员对会员信息的录入、更新和修改,并且可以按会
2、员姓名、会员卡卡号查询会员的基本信息。本文首先分析了会员管理程序的必要性,由此提出了自己的会员管理程序思想。然后阐述了系统的设计原则,功能实现过程,最后阐述了本系统的实用性,并说明了需完善之处。关键字:会员;会员卡;信息管理;Access;目 录1引言32。需求分析阶段32.1 引言32.2 需求分析阶段的目标与任务42。3 需求分析阶段成果53概念设计阶段83。1 引言83.2 任务与目标83.3 阶段结果84逻辑设计阶段104.1逻辑设计的任务和目标104。2数据组织104.2。1将E-R图转换为关系模型114。2.2模型优化114。2.3数据库模式定义114.2.4 用户子模式定义124
3、.3数据处理135物理设计阶段145。1物理设计阶段的目标与任务145。2数据存储方面145.3系统功能模块155.3。1 会员基本信息的查询和更新模块155。3.2 会员卡信息的建立模块166数据库实施阶段166.1建立数据库、数据表、视图、索引166。1.1 建立数据库166.1.2 建立数据表166。1.3 建立窗体197系统调试和测试208实习心得209存在的问题及建议20参考文献21附录1存储过程定义22附录2 数据查看和存储过程功能的验证23附录3 登录界面源代码231引言当今中国游泳馆产业发展正盛,大量游泳馆涌现于各个城市,很大程度上为人们的生活提供了快乐,游泳馆为了避免固定客流
4、的流失推出了会员卡制度。游泳馆会员管理系统就是为了更好管理会员信息而产生的,它能使游泳馆管理员快速注册新会员,能修改和更新会员信息,能通过姓名、会员卡卡号等条件查询会员的消费信息。会员管理系统相对于传统的管理而言具有查询方便、维护简易、精确性高等优点。计算机的使用能够大量节省人力、物力、财力,而且还可以大大提高会员资料的安全性和完整性.本系统的开发要求是利用Access开发会员管理系统,满足游泳馆对会员管理的要求,能够为会员信息管理提供便利。全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程。在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。采用结构化的功能
5、模块设计系统功能,可读性好,易于扩充。2.需求分析阶段2.1 引言随着社会发展,计算机的广泛应用已成为社会发展的重要标志。这个社会是个信息高速发展的社会,它不仅体现在高科技上,而且体现在我们日常的生活中。根据软基工程学的要求,开发软件首先要做的且也是开发过程中最主要的就是系统的需求分析,它同时也是软件生存周期中关键的一步。根据软件工程学开发软件的要求,对游泳馆会员管理系统的全部功能和相关技术进行具体的分析,分析时采用结构化的分析方法,自顶向下,逐步分解问题,下面就对游泳馆会员管理系统进行系统分析,以确定该软件的规模、应具有的功能提出的各项要求及所需要的硬件环境和软件支持,确定开发的软件与外界的
6、接口。根据用户的情况确定软件对操作的要求,以及待开发软件总体上的约束和限制.在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统.这里把系统的层次划分为了两个部分:管理员部分与会员部分.能够实现以下功能: 进行会员信息的录入、修改、删除及查询等; 实现卡的发行、卡的注销、更改信息; 定义会员的种类及优惠信息;2。2 需求分析阶段的目标与任务2。2。1处理对象会员基本信息:会员卡卡号,姓名,性别,年龄,联系方式,购卡日期会员卡信息:会员卡卡号,会员卡编号,会员卡种类消费项目信息:项目编号,项目名称,项目种类,单价会员消费信息
7、:会员卡卡号,项目编号,数量优惠信息:会员卡卡号,会员卡种类,折扣2.2。2处理功能及要求1能够存储会员的基本信息,并方便有效的进行相应的会员信息数据操作和管理,这主要包括:1)会员信息的录入、删除及修改.2)会员信息的多关键字检索查询.能够对游泳馆项目的种类价格等进行相应的信息存储与管理,这其中包括:1) 游泳项目信息的及时添加删除及更新.2)会员的消费信息的管理3)会员消费信息的统计与查询。3能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。2.2.3.安全性和完整性要求1) 安全性要求 系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过窗体
8、机制,不同的用户只能访问系统授权的窗体,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。2) 完整性要求系统完整性要求系统中数据的正确性以及相容性.可通过建立主、外键,使用check约束更新。2。3 需求分析阶段成果2。3。1 游泳馆会员管理系统数据流程图顶层数据流图:游泳馆会员管理数据流图: 查询信息管理会员信息信息反馈信息反馈查询修改信息游泳馆会员管理系统消费项目信息会员管理会员卡日常管理会员基本信息管理会员基本信息管理数据流图:会员
9、基本信息管理消费项目办卡日期会员卡类会员卡号会员名称打折信息会员管理数据流图: 会员信息管理会员卡折扣状况会员入会2。3。2游泳馆会员管理系统数据字典名字:会员基本信息描述:记录会员的姓名,性别,购卡日期,使用期限基本状况。定义:会员基本信息=姓名+性别+卡号+会员种类位置:消费者名字:会员卡描述:成为会员的一种凭证,可以享受购物的一定优惠。定义:会员卡=限会员本人使用+优惠位置:会员拥有名字:报表描述:打印会员购物基本信息定义:报表=购物物品+物品名称+物品件数+目前价格+所有物品总价位置:输出到打印机名字:会员政策描述:会员卡具体优惠政策定义:会员政策=会员所享受的各种优惠具体内容位置:会
10、员管理系统3概念设计阶段 3。1 引言系统开发的总体目标是实现游泳馆会员管理的系统化和自动化,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高游泳馆管理效率的目的。主要任务是对会员信息、会员卡信息、消费项目信息、优惠信息、会员消费信息的基本信息的操作及外理.概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。3。2 任务与目标(1)选择中层数据流为切入点,通常选择实际系统中的子系统;(2)设计分ER图,即各子模块的E-R图;(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联
11、系统一;(4)生成全局E-R图,通过消除冲突等方面。3.3 阶段结果(1)根据不同的对象,分别画出各分ER图:(a)从会员基本信息抽象出的分ER图:会员卡卡号会员姓名性别年龄联系方式购卡日期(b)从会员卡信息抽象出的分ER图:会员卡会员卡卡号会员卡编号会员卡种类(c)从游泳馆消费项目信息抽象出ER图:项目项目编号项目名称项目种类价格(2)合并各分图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步ER图,再消除不必要冗余,得到的基本ER图如下所示:全局E-R图属于会员会员类别消费项目管理员会员卡管理办理(3)各ER图各实体的属性如下所示:会员(会员卡卡号,姓名, 性别, 年龄, 联系方式,
12、 购卡日期, 会员种类,折扣)会员卡(会员卡卡号,会员姓名,会员性别,会员年龄 ,会员卡编号, 会员卡种类, 办卡日期)消费信息(会员卡卡号,消费项目编号,项目名称,项目种类,价格,数量)4逻辑设计阶段4。1逻辑设计的任务和目标以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。4.2数据组织4。2.1将E-R
13、图转换为关系模型实体型转换为关系模式.实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况: 一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并.如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连
14、的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并.将联系转化成独立的关系模式,具体的基本ER图向关系模型的转化如下:会员:会员(会员卡卡号,姓名,性别,年龄,联系方式,购卡日期,会员种类,折扣)会员卡:会员卡(会员卡卡号,会员姓名,会员性别,会员年龄,会员卡编号,会员卡种类,办卡日期)消费信息:消费信息(会员卡卡号,消费项目编号,项目名称,项目种类,价格,数量)4.2.2模型优化关系模式会员,会员卡,消费项目,优惠规则 不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。消费信息则存在部分依赖.4。2.3数据库模式
15、定义表2。1会员基本信息表列名数据类型可否为空会员卡卡号Charnot null姓名Charnot null性别Charnot null年龄Charnot null联系方式Charnot null购卡日期Date/time表2.2 会员卡信息表列名数据类型可否为空会员卡卡号Charnot null会员卡编号Charnot null会员卡种类Charnot null表2.3物品信息表列名数据类型可否为空消费项目编号Charnot null项目名称Charnot null项目种类Charnot null价格Monetarynot null表2.4 会员购物信息表列名数据类型可否为空会员卡卡号Cha
16、rnot null消费项目编号Charnot null数量Digital表2。5 优惠信息表列名数据类型可否为空会员卡卡号Charnot null会员卡种类Charnot null折扣Digitalnot null4。2.4 用户子模式定义表2.7 用户子模式定义编号用户子模式(View)作用(共性:提供数据保密和安全保护机制)V1会员便于查询和修改会员的基本信息V2会员卡便于查询和修改会员卡的基本信息V3会员消费信息便于会员消费历史信息的查询V4优惠规则用于设置、查询卡的优惠信息V5消费项目信息用于建立更新消费项目信息表2.8 会员基本信息视图列名数据类型可否为空说明VIPNoCharnot
17、 null会员编号VIPNameCharnot null会员姓名VIPSexCharnot null会员性别VIPTypeCharnot null会员类型VIP contact informationCharnot null会员联系方式Conduction dateDate/time办卡日期表2。9 会员卡基本信息视图列名数据类型可否为空说明CardNoCharnot null会员卡卡号Card TypeCharnot null会员卡的种类表2.10 会员购物信息视图列名数据类型可否为空说明CardNoCharnot null会员卡卡号VIPNameCharnot null会员姓名Consum
18、ptionItemNameCharnot null消费项目名称Item TypeCharnot null项目种类Unit priceMonetarynot null价格NumberDigitalnot null数量PriceMonetary总价表2.11 优惠规则信息视图列名数据类型可否为空说明CardNoCharnot null会员卡卡号Card TypeCharnot null会员卡种类DiscountDigitalnot null折扣表2.12 商品信息视图列名数据类型可否为空说明Consumption Item IDCharnot null项目标号Item NameCharnot nu
19、ll消费项目名称Item TypeCharnot null项目种类Unit priceMonetarynot null单价4.3数据处理系统功能模块图:会员管理系统会员基本信息会员卡管理会员消费管理项目管理会员姓名会员性别消费情况会员卡卡号性别卡类型购卡日期新卡发行卡注销办卡日期更改卡信息消费项目项目编号项目名称项目编号5物理设计阶段5.1物理设计阶段的目标与任务 数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。5。2数
20、据存储方面为数据库中各基本表建立的索引如下:1. 由于基本表会员基本信息表、会员卡信息表,消费项目信息表的主码会员卡卡号,项目编号经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;2. 由于基本表会员卡信息表的属性会员种类的属性经常在查询条件中出现在两个属性上建立聚簇索引;3. 会员消费信息表的属性会员卡卡号,项目编号,经常在查询条件中出现,考虑在其之上建立聚簇索引;5.3系统功能模块5.3.1 会员基本信息的查询和更新模块将实现对会员基本信息的查询和更新(修改、添加、删除)操作,具体的功能模块图如下:5.3。2 会员卡信息的建立模块将完成对会员卡信息的建立
21、注册操作,用于发行新卡,具体的功能模块图如下所示:6数据库实施阶段6.1建立数据库、数据表、视图、索引6。1.1 建立数据库6。1.2 建立数据表(1)会员基本信息表的建立:(2)会员卡信息表的建立:(3)消费项目信息表的建立:(4)会员购物信息表的建立:(5)优惠规则表的建立:6。1.3 建立窗体(1)用于会员基本信息的窗体定义如下: (2)用于会员卡信息查询的窗体定义如下:(3)用于显示会员消费信息的窗体定义如下:(4)用于项目信息的窗体定义如下:7系统调试和测试对该超市会员管理系统进行测试,验证每个功能是否符合要求,具体的测试如下:(1)通过视图查看各个基本表和视图中的数据(见附录1)(
22、2)检测各个存储过程的功能:(见附录2)8实习心得1. 这次课程设计使我熟悉了系统设计的整体步骤.系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。在具体的实施阶段中,表的建立及表间关系最为重要,其实这也是需求分析重要性的体现。2. 这次课程设计加深了我对数据库系统概论相关知识和Access相关功能的理解。但由于缺乏知识的整合,有些功能在具体操作上无法实现,导致所建系统只是雏形,很不完善。例如在卡的挂失及解挂上我没能实现。9存在的问题及建议1我觉得在这次课程设计中,需求分析阶段是致关重要的,但由于同学们都是第一次做这样的系统设计,都不是很熟悉需求分析的主
23、要方法和主要任务,所以都很盲目,认为随便从网上搜点相关的知识就可以了,但其实,这直接影响着后面的各个阶段的工作的进行。所以希望老师在实习前能给我们对需求分析阶段的工作进行一定的指导。 -18-参考文献1 Access课程设计案例精编 作者:毕超 出版社:中国水利水电出版社2 Access数据库开发经典案例解析作者: 王晟 出版社: 清华大学出版社3 Access进销存管理数据库开发作者 凯际资讯工作室 出版社:中国青年出版社4 VISUAL BASIC 6。0信息管理系统开发实例导航作者:求是科技 出版社:人民邮电出版社5 ACCESS数据库系统项目开发实践作者: 苏瑞 出版社:科学出版社6
24、VISUAL BASIC+ACCESS数据库应用实例完全解析作者:李敏业 出版社:人民邮电出版附录1存储过程定义1) 查看会员基本信息表中的数据2) 查看会员卡信息表中的数据:3) 查看信息表中的数据:4)查看优惠规则表中的数据5)查看消费信息表中的数据:6)查看会员基本信息窗体中的数据:7)查看会员卡信息窗体的数据:数据库系统原理课程设计报告附录2 数据查看和存储过程功能的验证1. 基本表的数据录入:1) 会员基本信息表中的数据附录3 登录界面源代码Private Sub cmdOK_Click() If IsNull(Me.cboUserName) Then MsgBox 请输入您的用户名
25、!, vbQuestion Exit Sub End If If login = True Then DoCmd。Close acForm, Me.Name DoCmd.OpenForm 超市会员管理系统” Else MsgBox 用户名或密码不正确!”, vbCritical Exit Sub End IfEnd SubPublic Function login() As Boolean Dim rst As New ADODB.Recordset Dim strSQL As String strSQL = SELECT 员工Id, 密码 FROM 员工表 WHERE 员工Id = & Me
26、。cboUserName rst.Open strSQL, CurrentProject.Connection, adOpenStatic If rst.RecordCount 0 Then If rst(密码”) = Me。TxtPwd Then login = True End IfEnd FunctionPrivate Sub cmdOK_Click() If IsNull(Me.cboUserName) Then MsgBox 请输入您的用户名!”, vbQuestion Exit Sub End If If login = True Then DoCmd。Close acForm,
27、Me。Name DoCmd.OpenForm 超市会员管理系统 Else MsgBox ”用户名或密码不正确!”, vbCritical Exit Sub End IfEnd SubPublic Function login() As Boolean Dim rst As New ADODB.Recordset Dim strSQL As String strSQL = ”SELECT 员工Id, 密码 FROM 员工表 WHERE 员工Id = ” Me。cboUserName rst.Open strSQL, CurrentProject.Connection, adOpenStatic
28、If rst。RecordCount 0 Then If rst(”密码) = Me。TxtPwd Then login = True End IfEnd FunctionPrivate Sub cmdOK_Click() If IsNull(Me。cboUserName) Then MsgBox 请输入您的用户名!, vbQuestion Exit Sub End If If login = True Then DoCmd。Close acForm, Me.Name DoCmd.OpenForm 超市会员管理系统” Else MsgBox 用户名或密码不正确!, vbCritical Exit Sub End IfEnd Sub21