资源描述
课程设计(论文)
课程名称: 数据库系统分析和设计
题 目:客房管理数据库设计和实现
院 (系):
专业班级:
姓 名:
学 号:
指导老师:
12 月 24 日
西安建筑科技大学课程设计(论文)任务书
专业班级: 学生姓名: 指导老师(署名):
一、课程设计(论文)题目
客房管理系统数据库设计和实现
二、此次课程设计(论文)应达成目标
数据库系统分析和设计课程设计是信息管理和信息系统专业集中实践性步骤之一,是学习完《数据库数据库系统原理及技术》及《数据库系统分析和设计》课程后进行一次全方面综合练习。其目标在和加深对数据库基础理论和基础知识了解,掌握借助PowerDesigner开发和设计一个小型数据库系统时设计数据库系统模型基础方法,提升利用数据库处理实际问题能力。
三、此次课程设计(论文)任务关键内容和要求(包含原始数据、技术参数、设计要求等)
要求学生能独立完成一个数据库模型设计和实现,包含:
1) 数据库系统需求分析;
2) 数据库概念模型设计;
3) 数据库逻辑模型设计;
4) 数据库物理模型实现;
5) 完成不少于6000字课程设计汇报撰写。
四、应搜集资料及关键参考文件:
[1] 王珊, 萨师煊. 数据库系统概论(第4版). 北京:高教出版社,5月.
[2] 赵韶平等.PowerDesigner系统分析和建模(第2版). 北京:清华大学出版社,.
[3] Data Modeling and Relational Database Design. Oracle Inc. .
五、审核同意意见
教研室主任(签字)
摘要
伴随社会发展,大家生活水平不停提升,旅游经济不停发展,这一切全部带动了酒店业发展。现在不仅有旅游业发展,还有多种跨地域商务活动。伴随人员流动规模不停扩大,宾馆酒店数量不停增加,相关客房信息量也在不停增加,造成传统客房管理系统已不能满足现在管理客房立即、正确、全方位需要。为了提升工作效率,促进经济增加,需要借助计算机进行现代化数据管理。
此次数据库设计利用powerdesigner这个建模工具,经过系统需求分析,了解确定该系统功效结构、业务步骤和内部数据步骤问题,建立系统数据库概念模型,而且转换为逻辑模型和物理模型,最终实现物理模型和数据库连接,建立满足用户需求数据库,为整个管理信息系统后续建设和维护打好基础
关键字:需求分析,概念模型,逻辑模型,物理模型,数据库
目 录
1 绪论 1
1.1系统介绍 2
1.2设计目标 2
1.3设计内容 3
2 需求分析 3
2.1 .需求分析任务 3
2.2 系统数据步骤分析 4
2.3 数据字典 5
3 概念模型设计 8
3.1 概念模型设计方法和步骤 8
3.2 系统概念模型 10
4 逻辑模型设计 11
4.1 逻辑模型设计方法 11
4.2 逻辑模型实现 13
4.3 数据完整性约束定义 13
5 物理数据库模型设计和实现 14
5.1 物理数据库模型图示 14
5.2 物理数据库模型具体表示 15
5.3 物理数据库模型实现 18
总结 26
参考文件 27
1 绪论
1.1系统介绍
每个酒店、宾馆规模不一样,有时系统要求也会不一样。不过对于关键经营住房型酒店而言,她系统要求和其它差不多全部是一样,她们组织机构也差不多是相同,在客房管理系统中关键是对客房信息、房间备品信息、经营情况、营业统计、用户入住信息、职员信息、用户信息反馈、用户网上订房信息、房间类型等进行管理。这么,对用户和工作人员全部带来了方便。对用户而言,她们能够在网上就查到酒店客房类型,价格等等;真正对于工作人员来讲,能够让工作人员立即了解到相关客房全部信息,比如还剩下多少房间、哪些用户需要结账了,避免部分无须要差错,提升她们工作效率。
1.2设计目标
这次是利用Powerdesigner进行数据库设计和实现,完成对客房管理系统数据库设计和实现。客房管理系统目标是实现电子信息化,利用数据库实现对客房管理,在这个系统中,关键任务是:
(1) 真正做到为用户服务,根据客房管理工作基础步骤设计出符合要求数据库
(2) 该系统关键面正确用户是客房工作人员,要实现方便、快捷、简单、便于操作
(3) 提供部分基础功效,比如查询、修改等功效,以提升工作效率,实现信息化
1.3设计内容
依据客房管理系统要求内幕而言,在这个系统中观要实现
(1) 系统需求分析
(2) 概念模型设计
(3) 逻辑模型设计
(4) 物理模型设计
(5) 数据库实现
2 需求分析
2.1 .需求分析任务
进行整个数据库设计必需正确了解和分析用户需求(包含数据和处理)。需求分析是整个设计过程基础,是最困难、最花费时间一步。作为地基需求分析是否做得充足和正确,决定了在其上构建数据库大厦速度和质量。
需求分析任务是经过具体调查现实世界要处理对象(组织、部门、企业等),充足了解原系统(手工系统或计算机系统)工作概况,明确用户多种需求,然后在此基础上确定新系统功效。
需求分析调查关键是“数据”和“处理”,经过调查、搜集和分析,取得用户对数据库以下需求:
(1)信息需求。指用户需要从数据库中取得信息内容和性质。由信息要求能够导出数据要求,即在数据库中需要存放哪些数据。
(2)处理要求。指用户需要完成什么处理功效。明确用户对数据有什么样处理要求,从而确定数据之间相互关系。
(3)安全性和完整性要求。
2.2 系统数据步骤分析
1)基础业务调查
经过网上调查、查阅相关书籍、开座谈会、跟班作业等方法,对所设计系统业务进行调查,明确其基础功效为:实现订房信息管理,比如:添加、删除、修改、查询,前台管理,比如:结账、登记等,还有系统用户管理,比如修改密码、注册、管理等。依据需求分析,整个系统能够分为二部分,分别为:(1)前台查询(2)后台管理
2) 数据步骤图
(1) 前台查询数据步骤图
(2) 后台管理数据步骤图
2.3 数据字典
在数据步骤图中,数据信息和处理过程需要经过数据字典才能描述清楚,所以在数据字典中关键对数据步骤图中数据流、数据存放和处理过程给出更具体、更正确说明。
1)数据流定义
能够经过表格形式给出数据步骤图关键数据流,如表2.1所表示。
表2.1 客房管理系统关键数据流定义
序号
名称
位置
结构定义
最大数据流量
1
查询多种信息
工作人员→查询
用户信息+客房信息+客房状态信息
1000次/天
2
入住申请
用户→入住登记
用户编号+用户姓名+用户电话+客房编号
1000次/天
3
退房申请
用户→退房登记
用户编码+用户姓名+客房编码+费用
1000次/天
4
传输信息
前台→信息存放
用户信息+客房信息+客房状态
1000次/天
5
收到信息
后台→修改信息
新用户信息+新客房信息+新客房状态
1000次/天
6
新用户信息
后台→数据存放
用户编码+用户姓名+用户电话+客房编码
1000次/天
7
新信息传输
修改信息→前台
新用户信息+新客房信息+新客房状态
1000次/天
2) 数据存放定义
能够采取以下表格形式给出系统关键数据定义,如表2.2所表示。
表2.2 客房管理系统关键数据存放定义
编号
名称
输入
输出
数据量
存取频度
存取方法
说明
D1
用户信息表
用户编号
用户具体信息
2500条
2500次/天
联机处理;检索和更新;随即检索
用户编号唯一
D2
客房信息表
客房编号
客房具体信息
2500条
2500次/天
联机处理;检索和更新;随即检索
客房编号唯一
D3
预订信息表
预定编号
预定具体信息
2500条
2500次/天
联机处理;检索和更新;随即检索
预定编号唯一
D4
入住信息表
入住 编号 ;
房间号;
用户编号
入住具体信息
1500条
次/天
联机处理;检索和更新;随即检索
入住编号唯一
D5
消费结算表
账单编号;用户号;消费总额
消费结算具体信息
1500条
1500次/天
联机处理;检索和更新;随即检索
账单编号唯一
D6
退房信息
退房编号;用户编号;客房编号
退房具体信息
1500条
1500次/天
联机处理;检索和更新;随即检索
退房编号唯一
3)处理过程
能够采取以下表格形式给出系统关键处理过程定义,如表2.3所表示。
表2.3 客房管理系统关键处理过程定义
序号
处理过程名称
输入
输出
处理说明
P1.1
查询
查询条件
和之相符数据
在系统存放信息中检索符合要求信息统计并输出
P1.2
入住登记
用户编号;客房编号
用户入住信息
在用户信息表和客房信息表、客房状态信息中增加数据
P1.3
退房登记
用户编号;客房编号
用户全部信息
在用户信息表和客房信息表、客房状态信息中删除数据
P1.4
结算
用户编号
用户消费信息
在消费结算表中得到所消费金额
P2.1
信息存放
新加入信息
全部信息
将新加入信息传输给后台,进行信息统一存放
P2.2
修改信息
要修改信息
修改后信息
将要修改信息传输给后台进行数据修改
P2.3
数据备份
要备份信息
备份后信息
将信息传输给后台进行数据备份
3 概念模型设计
3.1 概念模型设计方法和步骤
(1)依据需求分析,确定系统中实体及属性,依据上面分析,在这个系统中,确定了10个实体
① 用户(用户编号,用户姓名,身份证号,用户性别,用户电话,用户地址,预交款,余额)
② 客房基础信息(客房编号,客房类型,客房价格,客房楼层,备注)
③ 客房状态信息(客房编号,用户编号,入住时间,退房时间,入住价格)
④ 职员(职员编号,部门编号,职员姓名,职员性别,职员电话,职员住址)
⑤ 部门(部门编号,部门名称,部门电话,部门地址)
⑥ 入住信息(入住编号,入住时间,入住人数,备注)
⑦ 退房信息(退房编号,退房时间,备注)
⑧ 消费项目基础信息(消费编号,消费类型,消费价格,备注)
⑨ 订单信息(订单编号,入住时间,离开时间,人数)
⑩ 楼层信息(楼层编号,楼层名称,备注)
并利用powerdesigner创建这些实体,以下图所表示:
(2) 建立实体之间联络
① 楼层信息和客房基础信息:一对多,一个楼层可有有多个客房,一个客房只能属于一个楼层
② 客房基础信息和职员:多对多,一个客房能够有多个职员工作,而且一个职员能够工作于多个客房
③ 部门和职员:一对多,一个部门能够有多个职员,一个职员只能属于一个部门
④ 客房基础信息和客房状态信息:一对一,一个客房只能有一个状态信息,一个状态信息也只能对应一个客房
⑤ 客房状态信息和订单信息:多对一,一个状态信息只能对应一个订单,一个订单能够对应多个客房状态
⑥ 用户和订单信息:一对多,一个用户能够有多个订单,但一个订单只能对应一个用户
⑦ 用户和入住信息:一对一,一个用户只能有一个入住信息,一个入住信息只能对应一个用户
⑧ 用户和退房信息:一对一,一个用户只能有一个退房信息,一个退房信息只能对应一个用户
⑨ 用户和消费项目基础信息:多对多,一个用户能够有多个消费项目,一个消费项目也能够被多个用户消费。
最终利用powerdesigner完成实体间关系
3.2 系统概念模型
利用powerdesigner完成所包含概念模型
客房管理CDM
4 逻辑模型设计
4.1 逻辑模型设计方法
(1) 打开CDM模型,选择Tools→Generate Logical Data Model命令,打开以下图所表示LDM Generation Options窗口。
(2) 选择Detail选项卡,进行设置
(3) 选择Selection选项,能够选择CDM、实体,图所表示:
(4) 按“确定”,开始生成LDM
4.2 逻辑模型实现
客房管理LDM模型
4.3 数据完整性约束定义
依据上面关系模式,数据库完整性约束以下所表示:
1) 实体完整性约束
(1) 楼层信息(楼层编号)
(2) 客房基础信息(客房编号,楼层编号)
(3) 职员(职员编号,部门编号)
(4) 部门(部门编号)
(5) 订单信息(订单编号,用户编号)
(6) 客房状态信息(客房编号,订单编号)
(7) 用户(用户编号)
(8) 入住信息(入住编号,)
(9) 退房信息(退房编号,)
(10) 消费项目基础信息(消费编号)
2)参考完整性约束
3)用户自定义完整性约束
(1)职员编号 like '[0-9][0-9][0-9][0-9][0-9][0-9]'
(2)部门编号 like'[0-9][0-9][0-9][0-9]'
(3)楼层编号 like'F[0-9][0-9][0-9][0-9]'
(4)订单编号 like'[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
5 物理数据库模型设计和实现
5.1 物理数据库模型图示
由CDM生成PDM过程和生成LDM过程有些类似,生成PDM模型以下所表示:
5.2 物理数据库模型具体表示
(1)list of diagram
Name
Code
Diagram_1
Diagram_1
(2)list of table colums
Name
Code
消费编号
Co-Id
消费类型
Co_type
消费价格
Co_price
职员编号
S_Code
部门编号2
D_Code
部门编号
Depart_Code
职员住址
S_Adress
职员姓名
S_Name
职员性别
S_Sex
职员电话
S_tel
客房编号2
Room_Code
客房编号
R_Code
用户编号
C_Code
入住时间
I_time
订单编号
Order_code
退房时间
L_time
入住价格
price
楼层编号
F_Code
楼层名称
F_Name
备注
BeiZhu
订单编号
Order_code
用户编号
Client_code
入住时间
In_Time
退房时间
L_time
人数
count
客房编号
Room_Code
楼层编号
F_Code
客房类型
Room_Type
客房价格
Room_Price
客房楼层
Room_Floor
备注
BeiZhu
用户编号
Client_code
退房编号
Tui_Code
入住编号
In_Code
用户姓名
Client_name
身份证号
ID
用户性别
Client_sex
用户电话
Client_tel
用户地址
Client_adress
预交款
Pre_money
余额
Balance
入住编号
In_Code
用户编号
Client_code
入住时间
In_Time
入住人数
In_count
备注
BeiZhu
退房编号
Tui_Code
用户编号
Client_code
退房时间
Tui_time
备注
BeiZhu
职员编号
S_Code
客房编号
Room_Code
用户编号
Client_code
(3)list of refenences
Name
Code
Parent Table
Child Table
1
1
楼层信息
客房基础信息
4
4
订单信息
客房状态信息
7
7
用户
订单信息
be left
be left
退房信息
用户
be lived in
be lived in
入住信息
用户
be owed by
be owed by
用户
6
have
have3
消费项目基础信息
6
have
have2
职员
3
have
have
客房基础信息
客房状态信息
leave
leave
用户
退房信息
live
live
用户
入住信息
ordered
ordered
客房基础信息
3
response
response
客房状态信息
客房基础信息
(4) list of tables
Name
Code
3
3
6
6
入住信息
入住信息
职员
职员
客房基础信息
客房基础信息
客房状态信息
客房状态信息
楼层信息
楼层信息
消费项目基础信息
消费项目基础信息
订单信息
订单信息
退房信息
退房信息
用户
用户
5.3 物理数据库模型实现
SQL语句以下:
create table 3 (
S_Code int not null,
Room_Code int not null,
constraint PK_3 primary key (S_Code, Room_Code)
)
go
create index have2_FK on 3 (
S_Code ASC
)
go
create index ordered_FK on 3 (
Room_Code ASC
)
go
create table 6 (
Client_code int not null,
"Co-Id" int null,
constraint PK_6 primary key (Client_code)
)
go
create index have3_FK on 6 (
"Co-Id" ASC
)
go
create table 入住信息(
In_Code int not null,
Client_code int null,
In_Time datetime null,
In_count int null,
BeiZhu varchar(50) null,
constraint PK_入住信息primary key nonclustered (In_Code)
)
go
create index live_FK on 入住信息(
Client_code ASC
)
go
create table 职员(
S_Code int not null,
D_Code int null,
Depart_Code int null,
S_Adress varchar(50) null,
S_Name char(10) null,
S_Sex char(2) null,
S_tel int null,
constraint PK_职员primary key nonclustered (S_Code)
)
go
create table 客房基础信息(
Room_Code int not null,
F_Code char(20) null,
R_Code int null,
Room_Type char(10) null,
Room_Price money null,
Room_Floor char(20) null,
BeiZhu varchar(50) null,
constraint PK_客房基础信息primary key nonclustered (Room_Code)
)
go
create index 1_FK on 客房基础信息(
F_Code ASC
)
go
create index response_FK on 客房基础信息(
R_Code ASC
)
go
create table 客房状态信息(
Room_Code int null,
R_Code int not null,
C_Code int null,
I_time datetime null,
Order_code int null,
L_time datetime null,
price char(10) null,
constraint PK_客房状态信息primary key nonclustered (R_Code)
)
go
create index have_FK on 客房状态信息(
Room_Code ASC
)
go
create index 4_FK on 客房状态信息(
Order_code ASC
)
go
create table 楼层信息(
F_Code char(20) not null,
F_Name char(20) null,
BeiZhu varchar(50) null,
constraint PK_楼层信息primary key nonclustered (F_Code)
)
go
create table 消费项目基础信息(
"Co-Id" int not null,
Co_type char(20) null,
Co_price char(10) null,
constraint PK_消费项目基础信息primary key ("Co-Id")
)
go
create table 订单信息(
Order_code int not null,
Client_code int null,
In_Time datetime null,
L_time datetime null,
count int null,
constraint PK_订单信息primary key nonclustered (Order_code)
)
go
create index 7_FK on 订单信息(
Client_code ASC
)
go
create table 退房信息(
Tui_Code int not null,
Client_code int null,
Tui_time datetime null,
BeiZhu varchar(50) null,
constraint PK_退房信息primary key nonclustered (Tui_Code)
)
go
create index leave_FK on 退房信息(
Client_code ASC
)
go
create table 用户(
Client_code int not null,
Tui_Code int null,
In_Code int null,
Client_name char(20) null,
ID char(20) null,
Client_sex char(2) null,
Client_tel int null,
Client_adress varchar(20) null,
Pre_money int null,
Balance int null,
constraint PK_用户primary key nonclustered (Client_code)
)
go
create index "be lived in_FK" on 用户(
In_Code ASC
)
go
create index "be left_FK" on 用户(
Tui_Code ASC
)
go
alter table 3
add constraint FK_3_HAVE2_职员foreign key (S_Code)
references 职员(S_Code)
go
alter table 3
add constraint FK_3_ORDERED_客房基础信息foreign key (Room_Code)
references 客房基础信息(Room_Code)
go
alter table 6
add constraint "FK_6_BE OWED B_用户" foreign key (Client_code)
references 用户(Client_code)
go
alter table 6
add constraint FK_6_HAVE3_消费项目基础信息foreign key ("Co-Id")
references 消费项目基础信息("Co-Id")
go
alter table 入住信息
add constraint FK_入住信息_LIVE_用户foreign key (Client_code)
references 用户(Client_code)
go
alter table 客房基础信息
add constraint FK_客房基础信息_1_楼层信息foreign key (F_Code)
references 楼层信息(F_Code)
go
alter table 客房基础信息
add constraint FK_客房基础信息_RESPONSE_客房状态信息foreign key (R_Code)
references 客房状态信息(R_Code)
go
alter table 客房状态信息
add constraint FK_客房状态信息_4_订单信息foreign key (Order_code)
references 订单信息(Order_code)
go
alter table 客房状态信息
add constraint FK_客房状态信息_HAVE_客房基础信息foreign key (Room_Code)
references 客房基础信息(Room_Code)
go
alter table 订单信息
add constraint FK_订单信息_7_用户foreign key (Client_code)
references 用户(Client_code)
go
alter table 退房信息
add constraint FK_退房信息_LEAVE_用户foreign key (Client_code)
references 用户(Client_code)
go
alter table 用户
add constraint "FK_用户_BE LEFT_退房信息" foreign key (Tui_Code)
references 退房信息(Tui_Code)
go
alter table 用户
add constraint "FK_用户_BE LIVED _入住信息" foreign key (In_Code)
references 入住信息(In_Code)
go
生成数据库和表,以下所表示:
总结
经过这段时间对客房管理系统数据库设计和实现,大约了解到了酒店客房管理或宾馆经营模式,其实整个系统其实是很复杂、很庞大,自己只是把整个系统简化了。就是这么,自己在完成过程中还是有很多问题,发觉数据库设计并不像自己想象中简单好做,对于整个系统来说,数据库设计是一个漫长过程,要不停依据利用过程中问题和需要进行改善。自己在查资料过程中也发觉,现代信息管理系统给企业带来了很多好处。现在伴随社会经济发展,酒店和宾馆业务也在不停发展,实施数据库管理系统是很有必需。
在这个过程中,自己碰到不少问题,也发觉自己在学习过程中不足。对自己来说,完成比较困难还是数据步骤图部分,需求分析。自己在业务步骤图时还行,就是数据步骤图画不出来,画好认为怪怪。不过只有在把步骤图弄懂后,才能确定系统中实体。对自己来说还有一个难点就是数据字典,自己并不知道数据字典具体使用方法,在看过书后,才有所了解,不过还是不是很顺利。不过后面建立CDM,LDM,PDM还算是顺利吧。总而言之,经过这次课程设计,巩固了学习过数据库原理基础应用,大型数据库在数据库设计中应用,和利用powerdesigner建模工具应用,而且发觉自己在学习这些课程过程中不足,还需要下来再认真看看书本内容,好好加强。
参考文件
[1] 王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,.5.
[2] 赵韶平等.PowerDesigner系统分析和建模(第2版). 北京:清华大学出版社,
[3] Data Modeling and Relational Database Design. Oracle Inc.
[4] Abraham SilberschatzHenryF.Korth ,S.Sudarshan.Database
System Concepts(Fourth Edition). Higher Education Press.
[5] 慕静.管理信息系统开发方法、工具和应用[M]. 北京:清华大学出版社,
[7] 彭伟民.基于需求酒店管理系统建模和实现[M]. 北京:人民邮电出版社,
展开阅读全文