数据库课程设计实验报告.docx
- 文档编号:337478
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:17
- 大小:588.05KB
数据库课程设计实验报告.docx
《数据库课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
数据库课程设计实验报告
数据库课程设计
报告
班级
:
序号
:
姓名
:
指导老师
:
地球科学学院地信系
2011年6月23日
1.概述
酒店在正常运营中需要对各种信息进行管理,本系统以酒店会员管理为例,对各个信息的变更进行管理和维护,有利于提高酒店信息管理的效率。
由于本系统是面向酒店内部管理人员以及酒店会员,很少需要远程操作,故酒店会员管理系统主要采用C/S体系结构,主要开发环境有:
SQLServer2005、VisualStudio2008,编码语言主要采用C#。
2.数据库需求分析
用户的需求具体体现在对各种信息的提供、查询、更改和保持等方面,这就要求数据库的结构能够充分满足各种各样信息的输入和输出。
收集基本数据,数据结构以及数据处理的流程,组成一份详尽的数据字典,为数据库的具体设计打下基础。
在分析有关酒店会员管理信息的基础上,得到如图所示的数据处理流程。
在本系统中,主要存在3种角色:
管理员、普通会员、VIP会员,不同的角色有不同的权限,管理员负责系统的维护,普通会员和VIP会员可以通过本系统进行自己信息的管理,如浏览信息,修改密码,修改数据等。
3.数据库系统设计
包括系统模式、功能设计、界面设计等,绘制功能模块图
系统的总体任务是实现酒店会员信息的系统化、规范化和自动化,提高酒店的管理水平,帮助酒店更好的运营。
系统功能分析在总体任务的基础上完成。
本例中酒店会员管理系统需要完成的功能有:
有关会员标准的制定、标准信息的输入,包括会员卡号、姓名、单位、电话、密码、卡上金额、会员积分情况等。
会员信息的输入、修改、查询、删除等操作。
积分标准的制定,包括积分数量、兑换的物品、以及对应的消费等。
会员消费管理,主要包括会员在酒店的花费,金额的减少以及积分的增加。
积分兑换,主要是会员在积分达到一定量的时候,可以通过积分兑换来获得相应的物品和酒店的对应消费等。
对上述各项功能进行集中,分块分析按照结构化程序设计的要求,得到如图所示的系统功能模块。
系统界面设计:
利用VS2008系统的主要界面如下:
4.数据库概念设计
根据以上分析,系统主要存在三个实体,即卡号实体、会员实体、消费实体,可以得出数据库的E-R图如下:
一、各个实体的E-R图
(1)会员卡
(2)会员实体
(3)消费类型
二、实体间的联系
(1)会员与会员卡间的联系,会员卡属于会员
(2)会员与消费类型间的联系,消费和兑换关系。
三、E-R图的合并
考虑到会员卡与会员之间是1:
1的关系,为了消除冗余,可以将其合并为一个实体集。
合并后的整体E-R图
5.数据库逻辑设计与物理实现
将上述分析所得到的E-R图转换为与选用的DBMS产品(本例中为:
SQLServer2005)所支持的数据模型相符合的逻辑结构。
1)数据库逻辑设计
关系模式的转换
根据上述E-R图分析,本系统中主要存在两个实体和两种联系,它们都是多对多关系的,考虑到兑换和消费联系所具有的属性,得到本数据库的关系模型,关系的主码用下划线标出。
会员信息(卡号,会员类型,姓名,单位,电话号码,密码,积分,现金,有效期,价格)
此为会员信息实体对应的关系模式,姓名是关系的候选码。
消费种类(积分,消费类型,金额)
此为消费种类实体所对应的关系模式,积分是关系的主码。
消费信息(消费单号,会员类型,卡号,姓名,消费金额,积分)
此为消费联系所对应的关系模式,其中消费单号是该关系的主码,会员类型,卡号,姓名则参照与会员信息的关系模式,为该关系的外码。
积分兑换(积分,兑换物品,兑换消费)
此为兑换联系所对应的关系模式,积分为该关系的主码,其中兑换消费为消费种类的部分选项。
关系模式的详细设计
1会员信息
列名
类型
约束
卡号
char(10)
notnullprimarykey
会员类型
char(10)
notnull
姓名
char(16)
notnull
单位
char(16)
notnull
电话号码
char(18)
notnull
密码
vrchar(20)
notnull
积分
char(10)
notnull
现金
char(20)
notnull
有效期
datetime
notnull
价格
char(20)
notnull
2消费种类
列名
类型
约束
积分
char(20)
notnull
消费类型
char(20)
notnullprimarykey
金额
char(20)
notnull
3消费信息
列名
类型
约束
消费单号
char(10)
notnullprimarykey
会员类型
char(10)
notnull
卡号
char(10)
notnullforeignkey
姓名
char(16)
notnullforeignkey
消费金额
char(20)
notnull
积分
char(20)
notnull
4积分兑换
列名
类型
约束
积分
char(10)
notnullprimarykey
兑换物品
char(20)
notnull
兑换消费
char(20)
notnull
数据库完整性设计
数据库的完整性主要有域完整性、实体完整性、参照完整性。
在本数据库中,大部分数据表的字段都为NOTNULL来限制输入的值不能为空、在存储过程sp_insert中也对参数的默认值进行了设置等,这些都是对数据库域完整性的设置
对于实体完整性,数据库的每一个表中都设置了主码来唯一标示这个表,设置了唯一键来标识该列数据不能重复。
参照完整性主要用来表示数据库中表之间的关联性,主要通过外键来实现,在表XFXX中将字段卡号,姓名与HYXX表中的卡号,姓名相对应,保证了键值在所有表中的唯一性。
数据库安全性设计
数据库的登录主要采用Windows验证模式,登录SQLServer时就不再进行身份验证,在前台登录的时候根据数据库表中给定的账户来进行登录,在系统中主要采用普通用户和管理员两种身份。
由于本系统是在酒店内部运行的,主要数据存放在电脑中指定的磁盘上。
普通身份登录的时候,主要进行一些简单的操作,如:
查看本人的主要信息,查看本人的消费记录,修改密码,进行积分兑换等,在执行的过程中,数据库的数据也进行实时更新。
管理员身份登录的时候,可以完成对系统的修改,增加,删除等大部分的操作,查看数据库表的内容。
2)数据库物理实现
通过以上分析,将数据库的关系模式转换为数据表,其代码如下:
一,创建数据表
createtableJFDH
(
兑换积分char(10)notnullprimarykey,
兑换物品char(20)notnull,
兑换消费char(20)notnull
)
createtableHYXX
(
会员类型char(10)notnull,
卡号char(10)notnullprimarykey,
姓名char(16)notnullunique,
单位char(16)notnull,
电话号码char(18)notnull,
密码varchar(20)notnull,
积分char(10)notnull,
金额char(20)notnull,
有效期datetimenotnull,
价格char(20)notnull
)
createtableXFXX
(
会员类型char(10)notnull,
卡号char(10)notnullforeignkeyreferencesHYXX(卡号),
姓名char(16)notnullforeignkeyreferencesHYXX(姓名),
消费单号char(10)notnullprimarykey,
消费金额char(20)notnull,
积分char(20)notnull,
)
createtableXFZL
(
消费类型char(20)notnullprimarykey,
金额char(20)notnull,
积分char(20)notnull,
)
二,创建存储过程
useHYGLXT
go
createproceduresp_select@cardnumberchar(10)
as
select*
fromHYXX
where卡号=@cardnumber
createproceduresp_selectName@namechar(10)
as
select*
fromHYXX
where姓名=@name
createproceduresp_insert@cardtypechar(10)='普通',
@cardnumechar(10),
@cardnamechar(16),
@workchar(16)='长江大学',
@teleNumchar(18),
@passcodechar(20)='123456',
@numchar(10)='0',
@moneychar(10)='1000',
@deadlinedatetime='2012-12-24',
@pricechar(20)='20'
as
insertintoHYXX
values(@cardtype,@cardnume,@cardname,@work,@teleNum,@passcode@num,@money,@deadline,@price)
createproceduresb_insertXFXX@cardtypechar(10),
@cardnumchar(10),
@cardnamechar(16),
@XFNumchar(10),
@XFMoneychar(20),
@Creditchar(20)
as
insertintoXFXX
values('@cardtype','@cardnum','@cardname','@XFNum','@XFMoney','@Credit')
createprocedurechangepassword@changepasswordchar(18),@numchar(10)
as
updateHYXX
set密码=@changepassword
where卡号=@num
三、创建触发器
数据表XFXX,当输入一行记录时,保证该记录中的卡号和姓名与HYXX中的卡号和姓名一致。
createtriggerinsert_XFXXonXFXX
forinsert
as
ifexists(select*frominserteda
wherea.卡号notin(selectb.卡号fromHYXXb)
ora.姓名notin(selectc.姓名fromHXYYc))
begin
rollbacktransaction
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 实验 报告