SQLserver客房信息管理系统.docx

上传人:b****2 文档编号:1958476 上传时间:2022-10-25 格式:DOCX 页数:24 大小:1.13MB
下载 相关 举报
SQLserver客房信息管理系统.docx_第1页
第1页 / 共24页
SQLserver客房信息管理系统.docx_第2页
第2页 / 共24页
SQLserver客房信息管理系统.docx_第3页
第3页 / 共24页
SQLserver客房信息管理系统.docx_第4页
第4页 / 共24页
SQLserver客房信息管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

SQLserver客房信息管理系统.docx

《SQLserver客房信息管理系统.docx》由会员分享,可在线阅读,更多相关《SQLserver客房信息管理系统.docx(24页珍藏版)》请在冰豆网上搜索。

SQLserver客房信息管理系统.docx

SQLserver客房信息管理系统

★新浪微博名:

99加油站

★绝密

课程设计说明书

 

课程设计名称:

数据库系统概论

课程设计题目:

客房信息管理子系统

学院名称:

信息工程学院

专业:

班级:

学号:

姓名:

评分:

教师:

2013年1月14日

引言

本次数据库实习不要求界面和外部应用程序的设计,只设计数据库部分。

客房管理系统采用SQLserver2005作为数据库后台。

客房管理系统可以实现对客房的科学化、规范化、查询顾客情况、订房信息、以及结算信息等。

有助于提高管理的效率,客房管理系统是根据某宾馆对客房的实际情况进行集中的查询与管理工作,以及提高整个客房管理的工作效率。

数据库设计

1.需求分析

随着时代的发展,建立客房管理信息系统的必要性已越来越被广大的宾馆管理人员所接受和认可,建立客房管理信息系统是为宾馆的管理服务的,其根本目的是要提高客房管理效率,增加客房的经济效益。

因此,我根据一般宾馆的工作流程及环境,以及顾客的要求设计了这个客房管理系统。

这个数据库主要完成如下功能:

1.实现客房信息、顾客信息的添加、删除、修改和查询等功能

2.实现顾客预订或入住等信息的添加、删除、修改等功能

3.实现统计各类信息并能合理安排住房的决策等问题

4.实现查询某位顾客的消费情况,并拥有完善的结账报表系统

5.实现完整性约束:

每位顾客只能预订和入住一间客房,客房已满时提示顾客无法入住,规定预订客房的超出期限为3个小时,超期则取消本次预订。

2.系统功能需求分析

客房信息管理子系统根据系统需求分析设计功能,管理功能功能是比较简单的。

主要实现了对客房信息、顾客信息、顾客预订、顾客入住和结账报表信息等的管理,具体管理功能有添加、修改、删除、查询和统计等。

系统的功能模块图如下图所示,其中的“信息管理”板块中的每一功能管理项都包括查看、添加、删除、修改等功能。

 

3.数据库概念结构设计

3.1数据流程图

根据了解到的情况,了解到了顾客住房的基本流程,结合宾馆实际管理过程和各种操作,由了解到的业务画出业务流程图,本系统的业务流程图如下所示:

3.2系统E-R图

经调研分析后得简化客房信息管理子系统整体的基本功能,设计了如下E-R图:

4.数据库逻辑结构设计

4.1关系模式

按照E-R图到逻辑关系模式的转换规则,可将上面E-R图转换成如下5个关系:

1.Room(rno,rsize,rprice,rstatus)

2.Client(cnum,rno,cname,csex,cage,cphone,eorb)

3.Book(cnum,rno,booktime,bookday,maxtime,bookway)

4.Inhotel(cnum,rno,daynum,cost,paid,unpaid,cometime,paidtime)

5.Account(cnum,rno,cost,paid,paidtime)

其中带下划线的为关系的主码,既带下划线又加波浪线的为外码

4.2数据项定义

根据关系模式中的各属性,定义数据项及其说明如下

表2.1数据项定义

数据项编号

数据项名称

数据项类型及长度

简单说明

I1

Rno

Char(10)

房间号

I2

Rsize

Char(10)

房间大小

I3

Rprice

Int

房间价格

I4

Rstatus

Char

(2)

房间是否入住

I5

Cnum

Char(18)

顾客身份证号

I6

Cname

Char(10)

顾客姓名

I7

Csex

Char

(2)

顾客性别

I8

Cage

Int

顾客年龄

I9

cphone

Char

(2)

顾客联系电话

I10

Eorb

Char(10)

顾客是入住还是预订

I11

Booktime

Datetime

预订时间

I12

Bookdays

Int

预订天数

I13

Bookway

Char(20)

预订方式

I14

Maxtime

Datetime

预订超期时间

I15

Cost

Int

入住实时总消费

I16

Paid

Int

入住顾客已付金额

I17

Unpaid

Int

入住顾客未付金额

I18

Days

Int

顾客入住天数

I19

Cometime

Datetime

顾客入住时间

I20

Paidtime

Datetime

顾客付款时间

I21

Cost

Int

结账报表中的顾客总消费金额

I22

Paid

Int

结账报表中的顾客总付款金额

I23

Paidtime

Datetime

结账报表中的顾客退房时间

5.数据库物理结构设计

本系统数据库表的物理设计通过创建表的SQL命令及数据关系图来呈现,下面列出SQL创建表的命令和数据库关系图:

5.1创建表的命令

创建客房信息表room:

createtableroom

rnochar(10)primarykey,

rsizechar(10),

rpriceint,

rstatuschar

(2)check(rstatusin('满','空')),

创建顾客信息表client:

createtableclient

cnumchar(18)primarykey,

rnochar(10),

cnamechar(10),

csexchar

(2)check(csexin('男','女')),

cageint,

cphonechar(11),

foreignkey(rno)referencesroom(rno)

创建顾客入住信息表inhotel:

createtableinhotel

cnumchar(18),

rnochar(10),

cometimedatetime,

paidtimedatetime,

daysint,

costint,

paidint,

unpaidint,

primarykey(cnum,rno),

foreignkey(rno)referencesroom(rno),

foreignkey(cnum)referencesclient(cnum),

创建顾客预订信息表book:

createtablebook

cnumchar(18),

rnochar(10),

booktimedatetime,

bookdaysint,

bookwaychar(20),

maxtimedatetime,

primarykey(cnum,rno),

foreignkey(rno)referencesroom(rno),

foreignkey(cnum)referencesclient(cnum),

创建结账报表account:

createtableaccount

cnumchar(18),

rnochar(10),

costmoney,

paidmoney,

paidtimedatetime,

primarykey(cnum,rno),

foreignkey(rno)referencesroom(rno)

5.2数据库关系图

根据数据库中表的创建命令,在SQLsever2000的企业管理器中生成的数据库关系图如下:

6.系统功能的实现

6.1建立触发器

这个系统为数据表的更新建立了三个触发器,一个是在有新的客人入住时,插入客人入住信息,触发触发器,使房间信息得到更新;一个是在有客人入住之后,使触发器触发,更新入住信息表;另外一个是顾客预订时,触发触发器,更新预订信息。

 

表2-6定义触发器

触发器名

触发器的作用

Client1

在顾客入住之后,触发器触发,更新住房登记表中的入住记录,根据顾客选择入住还是预订,相应更新入住信息表或预订信息表

Book1

在预订信息表更新后,触发器触发,根据顾客的预订时间,修改其超期时间

Inhotel

在入住信息表更新后,触发器触发,根据顾客的付款时间,修改其付款时间

6.2建立存储过程

存储过程是存储在服务器端由一组编译的Transact—SQL语句构成的SQLSever数据库应用程序,它能够检索系统信息、管理数据库或执行其他操作。

为了方便操作,为本系统建立了如下存储过程:

表2-7存储过程

存储过程名称

存储过程作用

Bovertime

查询某个房间预订是否超期,超期则删除预订信息,更新房间信息,删除顾客信息

Delbook

预订结束后,删除预订信息,更新房间信息,删除顾客信息

Delinhotel

退房后,删除入住信息,更新房间信息,删除顾客信息

Information

查询某间房间的信息,若为‘满’,查询该房间的顾客信息

6.3创建视图

为了方便查询房间信息,为本系统建立了如下视图:

表2-7视图

视图名称

视图作用

Emptyfull

查询所有空房信息,

Fulltime

查询所有满房信息

Accountsum

查询酒店客房的所有消费信息

 

6.4具体代码实施及验证

6.4.1触发器代码及其验证

1.顾客登记触发器Client1

代码:

createtriggerclient1

onclient

afterinsert

asbegin

declare@rnochar(10),@eorbchar(10),@cnumchar(18)

select@rno=rno,@eorb=eorb,@cnum=cnum

frominserted

updateroom

setrstatus='满'

whereroom.Rno=@Rno;

if(@eorb='inhotel')

insertintoinhotel(cnum,rno,cometime)values(@cnum,@rno,getdate())

else

if(@eorb='book')

insertintobook(cnum,rno)values(@cnum,@rno)

end

验证

插入预订信息:

select*fromclient

select*frombook

selectrno,rstatusfromroomwhererno='101'

selectrno,rstatusfromroomwhererno='102'

insertintoclient

values('3622022','101','张三','男',20,'','book')

insertintoclient

values('3622883','102','李四','男',20,'','book')

select*fromclient

select*frombook

selectrno,rstatusfromroomwhererno='101'

selectrno,rstatusfromroomwhererno='102'

截图:

插入入住信息:

select*fromclient

select*frominhotel

selectrno,rstatusfromroomwhe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1