基于SQL数据库的酒店管理系统

一、数据库设计

1.需求分析

客房的预定:可以通过网络进行预定,预定修改,取消预订。

客房管理:预定管理、客房查询、设置房态、开房、换房、续住、退房等管理。

员工管理: 员工修改信息、人员调配。

账务管理:主要是处理酒店的日常的账务报表,收入报表(前台收入明细表、现付收入明细表)、消费报表等。

顾客管理:收集旅客入住评价,记录顾客身份信息。

2.数据库概念结构设计

(1)局部ER图

旅客信息:

客房信息:

员工信息:

经理信息:

餐厅信息:

(2)整体ER图:

3.数据库逻辑结构设计

(1)关系模式

旅客信息(旅客姓名,性别,身份证号,房间号,餐厅名字);

客房信息(房间号,房间类型,房价,员工号);

餐厅信息(餐厅名字,餐厅电话,经理姓名);

经理(经理姓名,经理电话);

员工(员工号,员工姓名,经理姓名);

(2)关系模式的规范化

旅客信息的主码是旅客身份证号,其他非主属性不完全依赖于身份证号,并且不存在传递函数依赖,因此旅客信息不属于三范式

客房信息的主码是房间号,其他非主属性不完全依赖于房间号,并且不存在传递函数依赖,因此客房信息不属于三范式

餐厅信息的主码是餐厅名字,其他非主属性不完全依赖于餐厅名字,并且不存在传递函数依赖,因此餐厅信息不属于三范式

经理信息的主码是经理姓名,其他非主属性都完全依赖于经理姓名,并且存在传递函数依赖,因此经理信息属于三范式

员工信息的主码是旅客员工号,其他非主属性不完全依赖于员工号,并且不存在传递函数依赖,因此员工信息不属于三范式

(3)数据库中表结构

旅客信息表

列名

数据类型

可否为空

主键

外键

说明

Lkname

Varchar(20)

N

N

旅客姓名

Lksex

Varchar(5)

N

N

旅客性别

Lkid

char(20)

Y

N

身份证号

Ctname

Varchar(20)

N

N

餐厅名字

房间信息表

列名

数据类型

可否为空

主键

外键

说明

Roomid

char(20)

Y

N

酒店房间号

Roomlx

Varchar(16)

N

N

房间类型

Roomfj

Varchar(16)

N

N

房价

Ygid

Varchar(16)

N

N

员工号

员工表

列名

数据类型

可否为空

主键

外键

说明

Ygname

Varchar(20)

N

N

员工姓名

Ygid

char(5)

Y

N

员工号

Jlname

Varchar(20)

N

N

经理姓名

餐厅信息表

列名

数据类型

可否为空

主键

外键

说明

Ctname

Varchar(20)

Y

N

餐厅名字

Ctph

Varchar(5)

N

N

餐厅电话

Jlname

Varchar(20)

N

N

经理姓名

经理信息表

列名

数据类型

可否为空

主键

外键

说明

Jlname

char(20)

Y

N

经理姓名

Jlph

Varchar(20)

N

N

经理电话

(4)数据库中的视图

视图一: 名称 功能

定义(代码)旅客信息表

CREATE VIEW CustomerView (

旅客姓名,

旅客性别,

身份证号

餐厅名字

)

AS

SELECT Lkname, Lksex, Lkid,Ctname

FROM Customer

视图二: 名称 功能

定义(代码)

CREATE VIEW 房间信息 (

房间号,

房间类型,

房间价格

员工号

)

AS

SELECT RoomID, Roomlx,Roomfj,Ygid

FROM Room

三、系统操作说明及运行结果

1.创建数据库及表

(1)创建酒店管理系统数据库

代码:

create database jdglxt

go

(2)客房信息表

create table kfxxb

(roomid char(5),

roomlx char(16) not null,

roomfj varchar(16) not null,

ygid varchar(16) not null,

primary key(roomid)

(3)旅客信息表

create table lkxxb

(lkname char(20) not null,

lksex char(5)not null,

lkid char(20)not null,

ctname varchar(20)not null,

primary key(lkid)

(4)餐厅信息表

create table ctxxb

(ctname char(20),

ctph varchar(5),

jlname varchar(20)

primary key(ctname),

(5)员工表

create table ygxxb

(ygid char(10),

ygname varchar(20),

jlname varchar(20)

primary key(ygid)

)

(6)经理信息表

create table jjxxb

(jlname char(20) primary key,

Jlth varchar(20) not null)

2.数据添加

(1)–向客房信息表中插入数据

代码:

insert into kfxxb

values(‘2008’,‘标间’,‘90’,‘020101’),

(‘2009’,‘标间’,‘90’,‘020102’),

(‘2010’,‘标间’,‘90’,‘020103’),

(‘3007’,‘特价’,‘70’,‘020104’),

(‘3008’,‘特价’,‘70’,‘020105’),

(‘3009’,‘特价’,‘80’,‘020106’),

(‘3010’,‘单人间’,‘80’,‘020107’),

(‘4001’,‘单人间’,‘80’,‘020109’),

(‘4002’,‘三人间’,‘120’,‘020110’),

(‘4003’,‘三人间’,‘120’,‘020111’)

(2)–向旅客信息表中插入数据

代码:

insert into lkxxb

values(‘张三’,‘男’,‘123456789012345678’,‘好运来’),

(‘李四’,‘男’,‘012345678912345678’,‘好运来’),

(‘王五’,‘男’,‘987654321012345678’,‘好运来’),

(‘张强’,‘男’,‘951564621012345678’,‘好运来’),

(‘陈七’,‘女’,‘654987721012345678’,‘好运来’),

(‘马六’,‘男’,‘220125199902253645’,‘好运来’),

(‘李红’,‘女’,‘987654321012347128’,‘好运来’),

(‘张杰’,‘男’,‘220228419650325645’,‘好运来’),

(‘陈军’,‘男’,‘568941723849268622’,‘好运来’) ,

(‘王久’,‘女’,‘025849613546820056’,‘好运来’)

(3)–向餐厅信息表中插入数据

代码:

insert into ctxxb

values(‘好运来’,‘15356412471’,‘秋山’)

(‘好运一’,‘15356412472’,‘秋以’)

(‘好运二’,‘15356412473’,‘秋和’)

(‘好运三’,‘15356412474’,‘秋三’)

(‘好运四’,‘15356412475’,‘秋山四’)

(‘好运五’,‘15356412476’,‘秋五’)

(‘好运六’,‘15356412477’,‘秋六’)

(‘好运七’,‘15356412478’,‘秋七’)

(‘好运八’,‘15356412479’,‘秋吧’)

(‘好运九’,‘15356412480’,‘秋就’)

(4)–向员工信息表中插入数据

代码:

insert into ygxxb

values(‘王朝阳’,‘010201’,‘秋山’),

(‘张向荣’,‘010202’,‘秋山’),

(‘李乐’,‘010203’,‘秋山’),

(‘田达’,‘010204’,‘秋山’),

('周博 ',‘010205’,‘秋山’),

(‘田家’,‘010206’,‘秋山’),

('伊大 ',‘010207’,‘秋山’),

('周婷婷 ',‘010208’,‘秋山’),

(‘陈眉丽’,‘010209’,‘秋山’),

('犹大冬 ',‘010210’,‘秋山’)

(5)–向经理信息表插入数据

代码:

insert into jjxxb

values(‘秋山’,‘15489762450’)

(‘秋以’,‘15489762451’)

(‘秋和’,‘15489762452’)

(‘秋三’,‘15489762453’)

(‘秋山四’,‘15489762454’)

(‘秋五’,‘15489762455’)

(‘秋六’,‘15489762456’)

(‘秋七’,‘15489762457’)

(‘秋吧’,‘15489762458’)

(‘秋就’,‘15489762459’)

3.数据修改

–修改客房信息表表中房间号2008的房价

(1)代码:

updatekfxxb

setroomfj=‘100’

whereroomid=‘2008’

–修改客房信息表中

update kfxxb

setroomfj=‘150’

whereroomid=‘4002’

(2)餐厅信息表

–修改餐厅信息表中好运来的电话字

updatectxxb

setctph=‘19823480345’

wherectname=‘好运来’

(3)旅客信息表

–修改旅客信息表中张三的身份证号

updatelkxxb

setlkid=‘220228474383978544’

whereikname=‘张三’

–修改旅客信息表中李四的性别

updatellxxb

setlkid=‘女’

whereiknamee=‘李四’

(4)员工信息表

–修改员工信息表中王朝阳的员工号

updateygxxb

setygid=‘010220’

whereygname=‘王朝阳’

–修改员工信息表中田家的员工号

updateygxxb

setygid=‘010221’

whereygname=‘田家’

(5)经理信息表

–修改经理信息表中经理秋山电话

updatejjxxb

setctph=‘18674320384’

wherejlname=‘秋山’

–修改经理信息表中经理秋五电话

updatejjxxb

setctph=‘18674320311’

wherejlname=‘秋五’

4.数据删除

(1)旅客信息表

–删除旅客信息表中姓名为王五的信息

deletefromlkxxb

wherelkname=‘王五’

–删除旅客信息表中陈七的身份信息

deletefromlkxxb

wherelkname=‘陈七’

(2)客房信息表

–删除客房信息表中编号2009的信息

deletefromkfxxb

wherekfid=‘2009’

–删除客房信息表中编号4000的信息

deletefromkfxxb

wherekfid=‘4000’

(3)员工信息表

–删除员工信息表中李乐的基本信息

deletefromygxxb

whereygname=‘李乐’

–删除员工信息表中伊大的基本信息

deletefromygxxb

whereygname=‘伊大’

(4)餐厅信息表

–删除餐厅信息表中好运五的基本信息

deletefromctxxb

wherectname=‘好运五’

–删除餐厅信息表中好运六的基本信息

deletefromctxxb

wherectname=‘好运六’

(5)经理信息表

–删除经理信息表中秋山四的基本信息

deletefromjlxxb

where jlname =‘秋山四’

–删除经理信息表中秋五的基本信息

deletefromjlxxb

where jlname =‘秋五’

5.数据查询

(1)查询旅客信息表的所有信息(单表查询)

代码:select*from lkxxb

截图:

(2)查询张强的员工号(多表查询)

selectygidfromlkxxb,ygxxb

whereygxxb.ygid=lkxxb.lknameand

ygxxb.ygid=‘张强’

(3)查询旅客信息表中所有旅客

selectlknamefromlkxxb

(4)查询员工信息表中所有员工编号

selectygid,count(*)asamountfromygxxb

groupbyygid

(5)将所有员工编号按照降序排列(将查询结果排序)

代码:

selectygidfromygxxb

orderbyygiddesc

(6)查询客房信息表(视图查询)

代码:

select*fromkfxxb

(7)查询员排名最小的员工号

代码:

selectmin(ygid)fromygxxb

(8)查询男女人人数(分组查询)

代码:

selectlksex,count(*)as人数fromlkxxb

groupbylksex

(9)查询价格大于100的入住客房房间号和价格(单表查询)

代码:

selectroomid,price

fromkfxxb

whereprice>100

(10)查询所有房价小于100的房间号

select roomfj,roomid

from kfxxb

where roomfj<100

create database jdglxt
go
--客房信息表
create table kfxxb             
    (roomid char(5) primary key,
    roomlx char(16) not null,
       roomfj varchar(16) not null,
       ygid varchar(16) not null
    )
--旅客信息表
create table lkxxb                   
    (lkname char(20) not null,
   lksex char(5)not null,         
   lkid char(20)not null,
     ctname varchar(20)not null,
    primary key(lkid)
 )
    
--餐厅信息表
create table ctxxb
 (ctname char(20),
ctph varchar(20),
jlname varchar(20),
primary key(ctname)

)


--员工表
create table ygxxb 
(ygid char(10) primary key,
ygname varchar(20),
jlname char(20) )
--经理信息表
create table jjxxb
(jlname char(20) primary key,
Jlth varchar(20) not null
)
--插入数据
--向客房信息表中插入数据
insert into kfxxb 
values('1010','标间','90','010101'),
 ('1011','标间','90','010102'),
('1012','标间','90','010103'),
 ('1013','特价','70','010104'),
 ('1014','特价','70','010105'),
('1015','特价','80','010106'), 
('1016','单人间','80','010107'),
('1017','单人间','80','010109'),
('1018','三人间','120','010110'),
('1019','三人间','120','010111')

--3向旅客信息表中插入数据
insert into lkxxb
 values('尚福乐','男','211322198509260317','好运来'),
 ('岳朋','女','211481198401154441','好运来'),
 ('赵晓强','男','987654321012345678','好运来'),
 ('杨思剑','女','522324197508045647','好运来'),
 ('柏朝林','男','510921591208435011','好运来'),
('李家发','男','52262619800410121X','好运来'),
 ('李科','女','522324197309155226','好运来'),
 ('钱齐高','男','433026196612172414','好运来'),
 ('李关福','女','522422610421281489','好运来') ,
 ('段小平','男','510226196602284031','好运来')

--7向餐厅信息表中插入数据
insert into ctxxb 
values('好运来','15356412471','秋山')
--8向员工信息表中插入数据
insert into ygxxb 
values('王阳','020201','秋山'),
 ('张荣','020202','秋山'),
 ('李向乐','020203','秋山'),
 ('王一达','020204','秋山'),
 ('周天博 ','020205','秋山'),
('田林','020206','秋山'),
 ('伊大金 ','020207','秋山'),
('周婷 ','020208','秋山'),
('陈丽','020209','秋山'),
 ('犹大冬 ','020210','秋山')

--9.向经理信息表插入数据
insert into jjxxb
values('秋叶','15187964521')

update kfxxb
set roomfj='100'
where roomid='2008'

update  kfxxb
set roomfj='150'
where roomid='4002'

update ctxxb
set ctph='19823480345'
where ctname='好运来'

update lkxxb
set lkid='220228474383978544'
where lkname='张三'

select*from lkxxb

select lkname from lkxxb

select ygid,count(*) as amount from ygxxb
group by ygid
select ygid from ygxxb
order by ygid desc

select*from kfxxb
select min(ygid) from ygxxb

select lksex,count(*) as 人数 from lkxxb
group by lksex

select roomid,roomfj
from kfxxb
where roomfj>100

select roomfj,roomid
from kfxxb
where roomfj<100

select ygname ygid from ygxxb
order by ygid desc
酒 店 管 理 系 统 一、背景说明 目前大多数酒店提供的服务多种多样,规模大小也各不相同,但稍具规模的酒店必含下面三类服务:饮食、住宿和娱乐。由于我们对酒店行业没有具体的接触和实质性的了解。此次数据库设计只能在一些收集到的基本材料与个人直观认识的基础上,简单模仿中等规模的酒店设计管理系统,并将其抽象成一个由三部门组成、实现三大服务的系统。 二、部门的划分 饮食部门   它是酒店基本部门之一。它提供服务的特点是实时性强、持续时间短,强调效率。例如,顾客人数、顾客所用的菜及其它饮料等种类繁多,数量不等;后勤各种活动如采购等频繁发生。通过分析可发现,用人工完成此类操作比计算机更具实效与时效,且此类信息也没有长时间保留的必要,因此这些信息没有必要采用数据库管理。对于饮食部门,需要较长时间保留的信息主要是财务信息,一方面便于期末汇总,另一方面便于向上级报告。   在规模较大的酒店餐饮服务部分,餐厅可分成几个等级或几个小部门,然后各自形成小系统,本系统为了简单起见,把饮食部门作为一个子系统,不再细分。 住宿管理部门   它也是酒店基本部门之一。住宿管理部门的主要职责有:A.给个房间布置各种设备、分类、编号、制定收费标准、分配服务人员。B.登记旅客信息,确认其身份,登记其入住、退房时间。C.统计各类房间的客满程度。D.对本部门的财务流动进行登记处理。以上信息处理可以通过计算机完成,其他不便于计算机操作的在此没有列出。 娱乐管理部门   娱乐是酒店非主流服务,它的存在除了赢利,更多的是为了吸引顾客食宿。娱乐部门的特点与饮食部门很相似,不便于使用计算机进行操作。可以用计算机完成并且有必要用计算机完成的有:A.制定收费标准,分配负责人.B.收入支出财务处理:编号、财务来源去处的摘要、数量、单价、数额、结余、经手人等。这些信息都需要长时间保留并上报。 经理部门 经理部门的功能虽然不是面向顾客、不是酒店的服务项之一,但它的存在却是必不可少的。它的主要职责有:A.管理员工。给员工编号,登记其基本信息;根据员工的平时表现及工龄确定工资;此外,还要给员工分配工作部门及职务等等。B.划分部门。给个部门编号、命名、确定其职责范围、任命部门经理、分配员工。C.对本部门的财务进行核算(支付工资等)。D.期末对酒店的收益情况进行核算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值