数据库-酒店客房信息管理系统

课程设计报告

课程设计题目:《数据库》客房信息管理系统

学生姓名: 汪世生

专 业: 软件工程

班 级: 1521822z (卓越班)

学 号: [1**********]5

指导教师:江霞

2016年 1月 6日

目录(Contents)

第 3-4页………………………………课程设计相关要求

第5-6页

第 7 页 …………………………………ER 图

第 8 页 ………………………………ER 图转为关系模式

第 9页 ………………………………数据库表的数据字典

第10-11

第12-16页 …………………………………创建数据库及

各表、视图、存储过程、触发器的SQL 代码

第17-21 第 22 页 …………………………………….. 总结

一、课程设计相关要求 1.课程设计的目的和意义

《数据库应用开发课程设计》是实践性教学环节之一,是《数据库原理及应用》课程的辅助教学课程。通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。

2.设计要求

通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL 语言实现数据库的建立、应用和维护。 (1) 根据题目写出需求分析(详细的功能描述) (2) 画出全局E-R 图

(3) 将E-R 图转换为关系模式,定义主键、外键

(4) 在SQL Server中创建数据库及数据表(至少3个数据表), 定义约束。 (5) 输入数据,至少创建4个视图,便于用户查看数据,数据可涉及多个表。 (6) 至少创建3个存储过程,实现系统的主要功能

(7) 创建1个登录、数据库用户,并分配数据库管理员权限。

(8) 至少创建2个触发器,保证数据的正确性、数据的自动更新。 (9) 为数据库做完全备份

成果: 报告,数据库文件(mdf和ldf) ,备份文件(bak), 前台程序(VB 或其他语言实现)。

3.本课程设计内容与要求

掌握数据库的设计的每个步骤,以及提交各步骤所需图表和文档。通过使用目前流行的DBMS ,建立所设计的数据库,并在此基础上实现数据库查询、连接等操作和触发器、存储器等对象设计。

(1)需求分析:根据自己的选题,给出功能模块图和必要的文字说明。 (2)概念结构设计:绘制所选题目详细的E-R 图。

(3)逻辑结构设计:将E-R 图转换成等价的关系模式;按需求对关系模式进行规范化;对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求;根据局部应用需要设计外模式。

(4)物理结构设计:选定实施环境,存取方法等。

(5)数据实施和维护:用DBMS 建立数据库结构,加载数据,实现各种查询、链接应用程序,设计库中触发器、存储器等对象,并能对数据库做简单的维护操作。

(6)成果:课程设计报告,程序,数据文件,日志文件,备份文件

4.课程设计报告要求

课程设计报告有四个方面的要求:

(1) 问题描述。包括此问题的理论和实际两方面。

(2)解决方案。包括:E-R 模型要设计规范、合理,关系模式的设计至少要满足第三范式,数据库的设计要考虑安全性和完整性的要求。

(3)解决方案中所设计的E-R 模型、关系模式的描述与具体实现的说明。 (4)具体的解决实例。

二 需求分析阶段 1. 需求

进行数据库系统设计,首先要对系统的现状进行分析,明确客房信息管理系统的相关需求

课程设计所要实现的目标、需求和功能,制定和选择一个较好的系统方案,有计划,有头绪,有思路,不能盲目的就着手去做,从而达到一个合理的优化系统。需求分析在于弄清这次课程设计的酒店管理系统的确切要求,因此,数据库课程设计的第一步就是明确数据库的目的和如何使用该系统。明确目的之后,才可以确定自己需要保存那些表信息,以及每个表中需要保存哪些字段。对于酒店客房管理系统,需要了解以下内容: 1.1信息管理 (1)个人信息 (2)用户信息 (3)客户信息 (4)房间信息

(5)订单信息(输入房号,结束账)

1.3房间管理 (1)查看客房信息 (2)空房统计 (3)添加房间

(4)删除房间(有人预定的也会删除)

2. 功能预览图

四 ER 转为关系模式

1. 工作人员(工作人员ID 号(主键) , 管理员ID(外键))

2. 管理员(管理员ID(主键))

3. 客户(客户ID 号(主键) ,姓名,性别,外键))

4. 房间(房间号(主键) ,类型,价格,状态,客户姓名,性别,电话,客户ID 号(外键) ,管理员ID(外键))

5. 管理(客户ID 号(主键) ,工作人员ID 号(主键) ,客户姓名,客户性别,客户电话)

1. 数据项

1. 客房信息表room

2. 客户信息表 customer

3. 退/订房表checkinout

4. 退/订房表checkinout

七. SQL代码

客房信息管理:客房房号,类型,价格,状态等信息录入

客户信息管理:客户信息录入、修改、删除(客户身份证号,姓名,性别,联系电话)

客房信息查询:按类型、状态(是否为空)、房号等关键字查询客房的基本信息和入住情况

入住、退房、结算、账单打印` create database cus_room on primary (

name =cus_room,

filename ='e:\数据库\cus_room.mdf', size =10, maxsize =50, filegrowth =2) log on (

name =cus_room1,

filename ='e:\数据库\cus_room.ldf',

size =10, maxsize =50, filegrowth =2) use cus_room

create table room (

rnum varchar (10) constraint pk_rnum primary key not null, rtype varchar (20), rprice decimal ,

rstate varchar (15)) create table customer (

cid varchar (20) constraint pk_cid primary key not null, cname varchar (20),

csex char (2) constraint ck_csex check (csex =' 男' or csex =' 女' ),

cphone varchar (15)) create table checkinout (

datein datetime , dateout datetime ,

cid varchar (20) constraint fo_cid foreign key references customer (cid ) on update cascade on delete cascade , --当对应主键(cid)发生改变时,该字段对应数据也会发生修改

rnum varchar (10) constraint fo_rnum foreign key references room (rnum ) on update cascade on delete cascade , --当对应主键(rnum)发生改变时,该字段对应数据也会发生修改 constraint two_pk primary key (cid , rnum ))

--创建视图view1 用于结算房租

create view view1 as

select room . rnum , customer . cid , rprice , datein , dateout from room , customer , checkinout

where room . rnum =checkinout . rnum and customer . cid =checkinout . cid drop view view1

select *from view1

--创建视图view2,用于订房对象(人)的选择

create view view2 as

select customer . cid from customer where cid not in

(select cid from checkinout where customer . cid =checkinout . cid ) select * from view2

--创建视图view3,用于订房对象(房号)的选择 create view view3 as

select room . rnum from room

where rnum not in

(select rnum from checkinout where room . rnum =checkinout . rnum ) select * from view3

--创建视图view4, 用于综合查询

create view view4 as

select

room . rnum , customer . cid , cname , csex , cphone , rprice , rtype , dat ein

from room , customer , checkinout

where room . rnum =checkinout . rnum and customer . cid =checkinout . cid --drop view view4 select *from view4

--创建视图view5,用于综合查询对象(人)的选择 create view view5 as

select customer . cid from customer select * from view5

--创建视图view6,用于订房对象(房号)的选择 create view view6 as

select room . rnum from room select * from view6

--创建存储过程p1, 用于综合查询的按cid(身份证号) 查询 create procedure p1(@cid varchar (20)) as

if exists (select * from view4 where cid =@cid) select * from view4 where cid =@cid else

print ' 该客户暂时没有订房'

--drop proc p1 p1'123'

--创建存储过程p2, 用于综合查询的按客房rtype(类型) 查询 create procedure p2(@rtype varchar (10)) as

select * from room where rtype =@rtype p2' 单人'

--创建存储过程p3, 用于综合查询的按客房rstate(状态) 查询 create procedure p3(@rstate varchar (10)) as

select * from room where rstate =@rstate p3' 有'

--创建触发器tr1, 当chechinout(客房记录) 表有人退房时,删除customer(客户信息) 表中对应的客户信息

create trigger tr1 on checkinout for delete as

delete from customer where cid =(select cid from deleted ) --drop trigger tr1

--创建触发器tr2,当chechinout(客房记录) 表有用户订房时,room 表对应的房号的状态更新为' 无' create trigger tr2 on checkinout for insert as

update room set rstate =' 无' where rnum =(select rnum from

inserted )

--drop trigger tr2

--创建触发器tr3,当chechinout(客房记录) 表有用户退房时,room 表对应的房号的状态更新为' 有' create trigger tr3 on checkinout for delete as

update room set rstate =' 有' where rnum =(select rnum from deleted )

--drop trigger tr3

八 实例演示 1. 管理员登录

2. 管理入口选择界面

3. 信息的增、删、改

3.1客房信息的录入

3.2 客房信息的修改

3.3客房信息的删除

3.3客房信息的删除

4. 客户信息的录入

5. 综合查询

5.1按房号查询

5.2按身份证号查询

5.3按客房类型查询

5.4按客房状态查询

九.总结

通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R 图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用SQL 语言的灵活性,其中包括,插入、删除、修改、查询, 牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也上网查了不少资料,也看了一些别人设计的旅馆管理信息系统的设计报告,学以致用,自我创新,完成了这份自己的报告,从中在学到用,从用又到学,受益匪浅。

课程设计报告

课程设计题目:《数据库》客房信息管理系统

学生姓名: 汪世生

专 业: 软件工程

班 级: 1521822z (卓越班)

学 号: [1**********]5

指导教师:江霞

2016年 1月 6日

目录(Contents)

第 3-4页………………………………课程设计相关要求

第5-6页

第 7 页 …………………………………ER 图

第 8 页 ………………………………ER 图转为关系模式

第 9页 ………………………………数据库表的数据字典

第10-11

第12-16页 …………………………………创建数据库及

各表、视图、存储过程、触发器的SQL 代码

第17-21 第 22 页 …………………………………….. 总结

一、课程设计相关要求 1.课程设计的目的和意义

《数据库应用开发课程设计》是实践性教学环节之一,是《数据库原理及应用》课程的辅助教学课程。通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。

2.设计要求

通过设计一完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL 语言实现数据库的建立、应用和维护。 (1) 根据题目写出需求分析(详细的功能描述) (2) 画出全局E-R 图

(3) 将E-R 图转换为关系模式,定义主键、外键

(4) 在SQL Server中创建数据库及数据表(至少3个数据表), 定义约束。 (5) 输入数据,至少创建4个视图,便于用户查看数据,数据可涉及多个表。 (6) 至少创建3个存储过程,实现系统的主要功能

(7) 创建1个登录、数据库用户,并分配数据库管理员权限。

(8) 至少创建2个触发器,保证数据的正确性、数据的自动更新。 (9) 为数据库做完全备份

成果: 报告,数据库文件(mdf和ldf) ,备份文件(bak), 前台程序(VB 或其他语言实现)。

3.本课程设计内容与要求

掌握数据库的设计的每个步骤,以及提交各步骤所需图表和文档。通过使用目前流行的DBMS ,建立所设计的数据库,并在此基础上实现数据库查询、连接等操作和触发器、存储器等对象设计。

(1)需求分析:根据自己的选题,给出功能模块图和必要的文字说明。 (2)概念结构设计:绘制所选题目详细的E-R 图。

(3)逻辑结构设计:将E-R 图转换成等价的关系模式;按需求对关系模式进行规范化;对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求;根据局部应用需要设计外模式。

(4)物理结构设计:选定实施环境,存取方法等。

(5)数据实施和维护:用DBMS 建立数据库结构,加载数据,实现各种查询、链接应用程序,设计库中触发器、存储器等对象,并能对数据库做简单的维护操作。

(6)成果:课程设计报告,程序,数据文件,日志文件,备份文件

4.课程设计报告要求

课程设计报告有四个方面的要求:

(1) 问题描述。包括此问题的理论和实际两方面。

(2)解决方案。包括:E-R 模型要设计规范、合理,关系模式的设计至少要满足第三范式,数据库的设计要考虑安全性和完整性的要求。

(3)解决方案中所设计的E-R 模型、关系模式的描述与具体实现的说明。 (4)具体的解决实例。

二 需求分析阶段 1. 需求

进行数据库系统设计,首先要对系统的现状进行分析,明确客房信息管理系统的相关需求

课程设计所要实现的目标、需求和功能,制定和选择一个较好的系统方案,有计划,有头绪,有思路,不能盲目的就着手去做,从而达到一个合理的优化系统。需求分析在于弄清这次课程设计的酒店管理系统的确切要求,因此,数据库课程设计的第一步就是明确数据库的目的和如何使用该系统。明确目的之后,才可以确定自己需要保存那些表信息,以及每个表中需要保存哪些字段。对于酒店客房管理系统,需要了解以下内容: 1.1信息管理 (1)个人信息 (2)用户信息 (3)客户信息 (4)房间信息

(5)订单信息(输入房号,结束账)

1.3房间管理 (1)查看客房信息 (2)空房统计 (3)添加房间

(4)删除房间(有人预定的也会删除)

2. 功能预览图

四 ER 转为关系模式

1. 工作人员(工作人员ID 号(主键) , 管理员ID(外键))

2. 管理员(管理员ID(主键))

3. 客户(客户ID 号(主键) ,姓名,性别,外键))

4. 房间(房间号(主键) ,类型,价格,状态,客户姓名,性别,电话,客户ID 号(外键) ,管理员ID(外键))

5. 管理(客户ID 号(主键) ,工作人员ID 号(主键) ,客户姓名,客户性别,客户电话)

1. 数据项

1. 客房信息表room

2. 客户信息表 customer

3. 退/订房表checkinout

4. 退/订房表checkinout

七. SQL代码

客房信息管理:客房房号,类型,价格,状态等信息录入

客户信息管理:客户信息录入、修改、删除(客户身份证号,姓名,性别,联系电话)

客房信息查询:按类型、状态(是否为空)、房号等关键字查询客房的基本信息和入住情况

入住、退房、结算、账单打印` create database cus_room on primary (

name =cus_room,

filename ='e:\数据库\cus_room.mdf', size =10, maxsize =50, filegrowth =2) log on (

name =cus_room1,

filename ='e:\数据库\cus_room.ldf',

size =10, maxsize =50, filegrowth =2) use cus_room

create table room (

rnum varchar (10) constraint pk_rnum primary key not null, rtype varchar (20), rprice decimal ,

rstate varchar (15)) create table customer (

cid varchar (20) constraint pk_cid primary key not null, cname varchar (20),

csex char (2) constraint ck_csex check (csex =' 男' or csex =' 女' ),

cphone varchar (15)) create table checkinout (

datein datetime , dateout datetime ,

cid varchar (20) constraint fo_cid foreign key references customer (cid ) on update cascade on delete cascade , --当对应主键(cid)发生改变时,该字段对应数据也会发生修改

rnum varchar (10) constraint fo_rnum foreign key references room (rnum ) on update cascade on delete cascade , --当对应主键(rnum)发生改变时,该字段对应数据也会发生修改 constraint two_pk primary key (cid , rnum ))

--创建视图view1 用于结算房租

create view view1 as

select room . rnum , customer . cid , rprice , datein , dateout from room , customer , checkinout

where room . rnum =checkinout . rnum and customer . cid =checkinout . cid drop view view1

select *from view1

--创建视图view2,用于订房对象(人)的选择

create view view2 as

select customer . cid from customer where cid not in

(select cid from checkinout where customer . cid =checkinout . cid ) select * from view2

--创建视图view3,用于订房对象(房号)的选择 create view view3 as

select room . rnum from room

where rnum not in

(select rnum from checkinout where room . rnum =checkinout . rnum ) select * from view3

--创建视图view4, 用于综合查询

create view view4 as

select

room . rnum , customer . cid , cname , csex , cphone , rprice , rtype , dat ein

from room , customer , checkinout

where room . rnum =checkinout . rnum and customer . cid =checkinout . cid --drop view view4 select *from view4

--创建视图view5,用于综合查询对象(人)的选择 create view view5 as

select customer . cid from customer select * from view5

--创建视图view6,用于订房对象(房号)的选择 create view view6 as

select room . rnum from room select * from view6

--创建存储过程p1, 用于综合查询的按cid(身份证号) 查询 create procedure p1(@cid varchar (20)) as

if exists (select * from view4 where cid =@cid) select * from view4 where cid =@cid else

print ' 该客户暂时没有订房'

--drop proc p1 p1'123'

--创建存储过程p2, 用于综合查询的按客房rtype(类型) 查询 create procedure p2(@rtype varchar (10)) as

select * from room where rtype =@rtype p2' 单人'

--创建存储过程p3, 用于综合查询的按客房rstate(状态) 查询 create procedure p3(@rstate varchar (10)) as

select * from room where rstate =@rstate p3' 有'

--创建触发器tr1, 当chechinout(客房记录) 表有人退房时,删除customer(客户信息) 表中对应的客户信息

create trigger tr1 on checkinout for delete as

delete from customer where cid =(select cid from deleted ) --drop trigger tr1

--创建触发器tr2,当chechinout(客房记录) 表有用户订房时,room 表对应的房号的状态更新为' 无' create trigger tr2 on checkinout for insert as

update room set rstate =' 无' where rnum =(select rnum from

inserted )

--drop trigger tr2

--创建触发器tr3,当chechinout(客房记录) 表有用户退房时,room 表对应的房号的状态更新为' 有' create trigger tr3 on checkinout for delete as

update room set rstate =' 有' where rnum =(select rnum from deleted )

--drop trigger tr3

八 实例演示 1. 管理员登录

2. 管理入口选择界面

3. 信息的增、删、改

3.1客房信息的录入

3.2 客房信息的修改

3.3客房信息的删除

3.3客房信息的删除

4. 客户信息的录入

5. 综合查询

5.1按房号查询

5.2按身份证号查询

5.3按客房类型查询

5.4按客房状态查询

九.总结

通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R 图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用SQL 语言的灵活性,其中包括,插入、删除、修改、查询, 牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也上网查了不少资料,也看了一些别人设计的旅馆管理信息系统的设计报告,学以致用,自我创新,完成了这份自己的报告,从中在学到用,从用又到学,受益匪浅。


相关内容

  • 中小型酒店客房管理信息系统设计
  • 中小型酒店客房管理信息系统设计 李 倩 (天津大学管理与经济学部,天津,300072) 摘要:酒店客房管理信息系统能够使中小型酒店更好地适应网络信息化的发展,提高现代化管理水平,因此针对中小型酒店开发一套简单实用的客房管理信息系统十分必要.本文首先介绍了系统开发的背景和开发环境,然后在对系统进行需求 ...

  • 酒店管理系统课程设计报告
  • 课程设计报告 课程名称: 项目名称: 院 系: 专 业: 姓 名: 班 级: 学 号: 指导教师: 设计地点: 基于ASP.net 2.0的Web 应用开发 酒店管理系统 计算机科学与工程学院 计算机科学与技术 王晨光 计科121 090312114 王剑 九章楼 N6-109 开课时间: 2014 ...

  • 酒店管理信息系统数据库设计
  • <数据库原理及应用> 课程设计报告 设计题目:酒店管理信息系统数据库设计 目 录 目录 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 1 1概述 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 1 1.1选题背景 „„„„„„„„„„„„„„„„„„„ ...

  • 酒店客房管理系统需求分析
  • <数据库系统原理 A>实验文档 酒店客房管理系统 作 者 姓 名: 专业.班级 : 学 号 : 李芳.沈若冰 计算机科学与技术 095 09422034.09422004 赵宏伟 2011-6-26 指 导 教 师: 完 成 日 期: 大连大学 Dalian University 1 摘 ...

  • 酒店管理信息系统
  • <管理信息系统> 大作业(设计报告) 题 目: 酒店管理管理信息系统 学生姓名: 学号: 目录 酒店管理管理信息系统 . .......................... 0 一.引言(建立酒店管理的重要性) ................ 2 二.酒店信息管理系统的业务流程分析 ...

  • UML酒店管理系统
  • 设 计 报 告 专业班级姓 名 学 号 指导教师 电气与信息工程学院 和谐 勤奋 求是 创新 目录 酒店管理系统 ............................................................................................. ...

  • 数据库酒店管理系统
  • 系统需求分析报告 酒店管理系统 学生姓名 __ 王涛 专业班级 数理 121132班 院 (系) 数 理 学 院 前 言 由于酒店管理系统可大可小,为了详细设计细节过程,本项目主要针对酒店客房管理进行描述设计. 目录 目录 3 一 项目前景文档 --------------------3 1 业务需 ...

  • 智能客房控制系统
  • 信息科学 智能客房控制系统 刘欧 (中国移动通信集团设计院有限公司黑龙江分公司,黑龙江哈尔滨150000) 摘要:针对智能客房控制系统展开论述. 关键词:智能客房:控制系统:管理系统近年来,随着社会生活水平和人均收入的 休假.探亲越来越频繁,对提高,人们出外旅游. 旅途中"住"的 ...

  • 开题报告模板
  • 一 编写目的 宾馆在正常的运营中需要对客房资源.顾客信息.结算信息进行管理,利用宾馆管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率. 开放性的.应用系统可灵活伸缩的.面向最终用户的现代tims(旅游信息管理系统)的服务性系统,不断满足饭店业务需求.市场环境的拓展和管理模式的变化.系统开 ...

  • 宾馆管理系统开题报告范文
  • 1 编写目的 宾馆在正常的运营中需要对客房资源.顾客信息.结算信息进行管理,利用宾馆管理信息系统及时了解各个环节中信息的变更,有利于提高管理效率. 开放性的.应用系统可灵活伸缩的.面向最终用户的现代tims(旅游信息管理系统)的服务性系统,不断满足饭店业务需求.市场环境的拓展和管理模式的变化.系统开 ...