酒店管理系统 数据库课程设计.docx

上传人:b****5 文档编号:8164478 上传时间:2023-01-29 格式:DOCX 页数:19 大小:18.64KB
下载 相关 举报
酒店管理系统 数据库课程设计.docx_第1页
第1页 / 共19页
酒店管理系统 数据库课程设计.docx_第2页
第2页 / 共19页
酒店管理系统 数据库课程设计.docx_第3页
第3页 / 共19页
酒店管理系统 数据库课程设计.docx_第4页
第4页 / 共19页
酒店管理系统 数据库课程设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

酒店管理系统 数据库课程设计.docx

《酒店管理系统 数据库课程设计.docx》由会员分享,可在线阅读,更多相关《酒店管理系统 数据库课程设计.docx(19页珍藏版)》请在冰豆网上搜索。

酒店管理系统 数据库课程设计.docx

酒店管理系统数据库课程设计

数据库酒店管理系统课程设计

(基于SQLserver2000)

实现过程

1.1通过查询分析器实现建立数据库、数据表

------------------------------创建数据库和数据表----------------------------------

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

CREATEDATABASE酒店管理系统

(2)创建客房信息表

CREATETABLE客房

(客房编号CHAR(8)PRIMARYKEY,

客房类型CHAR(8)NOTNULL,

价格SMALLMONEYNOTNULL,

床位数INTNOTNULL,

使用状态CHAR(8)NOTNULL)

INSERTINTO客房VALUES('101','一',100,1,'在使用')

INSERTINTO客房VALUES('102','二',200,2,'在使用')

INSERTINTO客房VALUES('103','二',200,1,'在使用')

INSERTINTO客房VALUES('104','三',300,2,'在使用')

INSERTINTO客房VALUES('105','三',300,1,'未使用')

(3)创建客户信息表

CREATETABLE客户

(客户编号CHAR(8)PRIMARYKEY,

客户名称CHAR(10)NOTNULL,

身份证号CHAR(18)NOTNULL,

联系地址CHAR(25),

联系电话CHAR(10))

INSERTINTO客户VALUES('1001','王一',12234,'江西','3245354')

INSERTINTO客户VALUES('1002','张三',34234,'江西','2442442')

INSERTINTO客户VALUES('1003','李四',56465,'江西','5654645')

INSERTINTO客户VALUES('1004','王钱',65435,'江西','5676577')

INSERTINTO客户VALUES('1005','孙志',11464,'江西','4234343')

(4)创建入住登记表

CREATETABLE入住登记

(客房编号CHAR(8)FOREIGNKEYREFERENCES客房(客房编号),

客户编号CHAR(8)FOREIGNKEYREFERENCES客户(客户编号),

预定日期DATETIME,

预定数量INT,

PRIMARYKEY(客房编号,客户编号))

INSERTINTO入住登记VALUES('101','1001',2010-10-10,1)

INSERTINTO入住登记VALUES('102','1002',2010-12-10,1)

INSERTINTO入住登记VALUES('103','1003',2010-12-26,1)

INSERTINTO入住登记VALUES('104','1004',2010-12-9,1)

---------------------------------------创建查询视图----------------------------------------

1.2系统功能相应的查询视图:

(1)客户信息查询视图

CREATEVIEW客户信息查询

ASSELECT*FROM客户

(2)客房信息查询

CREATEVIEW客房信息查询

ASSELECT*FROM客房

 

(3)入住信息查询

CREATEVIEW入住登记信息查询

ASSELECT*FROM入住登记

(4)入住信息查询

CREATEVIEW入住信息查询

ASSELECT入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型,价格,使用状态

FROM客房,客户,入住登记

WHERE客房.客房编号=入住登记.客房编号AND入住登记.客户编号=客户.客户编号

----------------------------------------------建立索引------------------------------------------------------

1.3建立索引及数据入库

1.建立客房编号,价格,客户编号,客户名称的索引

创建客房表索引:

CREATEUNIQUEINDEXUKFON客房(客房编号,价格)

创建客户表索引:

CREATEUNIQUEINDEXUKHON客户(客户编号,客户名称)

创建入住表索引:

CREATEUNIQUEINDEXURZON入住登记(客户编号,客房编号)

2.数据入库

方法一酒店管理系统包括客房信息表,客户信息表,入住登记信息表。

采用Excel中录入数据,然后使用SQLServer2000数据导入、导出功能直接将数据导入到相应的基本表。

方法二在查询分析器中插入相关数据,用SQL语句插入。

-----------------------------------------创建存储过程-----------------------------------------------------

1.4建立存储过程

1.4.1客房信息存储过程

插入客房信息存储过程:

CREATEPROCEDURE插入客房信息

(@KFBCHAR(8),

@KFLCHAR(8),

@JGSMALLMONEY,

@CWSINT,

@SYZTCHAR(8)

AS

INSERTINTO客房VALUES(@KFB,@KFL,@JG,@CWS,@SYZT)

修改客房信息存储过程:

CREATEPROCEDURE修改客房信息

(@KFBCHAR(8),

@KFLCHAR(8),

@JGSMALLMONEY,

@CWSINT,

@SYZTCHAR(8)

AS

UPDATE客房

SET客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT

WHERE客房编号=@KFB

删除客房信息存储过程:

CREATEPROCEDURE删除客房信息

(@KFBCHAR(8)

AS

DELETEFROM客房WHERE客房编号=@KFB

1.4.2客户信息存储过程

插入客户信息

CREATEPROCEDURE插入客户信息

(@KHBCHAR(8),

@KFMCHAR(10),

@SFZCHAR(18),

@LXDZCHAR(25),

@LXDHCHAR(10)

AS

INSERTINTO客户VALUES(@KHB,@KFM,@SFZ,@LXDZ,@LXDH)

修改客户信息

CREATEPROCEDURE修改客户信息

(@KHBCHAR(8),

@KFMCHAR(10),

@SFZCHAR(18),

@LXDZCHAR(25),

@LXDHCHAR(10)

AS

UPDATE客户

SET客户名称=@KFM,身份证号=@SFZ,联系地址=@LXDZ,联系电话=@LXDH

WHERE客户编号=@KHB

 

删除客户信息

CREATEPROCEDURE删除客户信息

(@KHBCHAR(8))

AS

DELETE

FROM客户

WHERE客户编号=@KHB

EXEC删除客户信息@KHB='10009'

3.4.3创建入住信息存储过程

插入入住信息

CREATEPROCEDURE插入入住信息

(@KFBCHAR(8),

@KHBCHAR(8),

@YDRQDATETIME,

@YDSLINT

AS

INSERTINTO入住登记VALUES(@KFB,@KHB,@YDRQ,@YDSL)

修改入住信息

CREATEPROCEDURE修改入住信息

(@KFBCHAR(8),

@KHBCHAR(8),

@YDRQDATETIME,

@YDSLINT

AS

UPDATE入住登记

SET客房编号=@KFB,预定日期=@YDRQ,预定数量=@YDSL

WHERE客户编号=@KHB

删除入住信息

CREATEPROCEDURE删除入住信息

@KHBCHAR(8)

AS

DELETE

FROM入住登记

WHERE客户编号=@KHB

 

1.5查询存储过程的创建

客房编号查询

CREATEPROCEDURE客房编号查询

(@KFBCHAR(8),

@KFLCHAR(8)OUTPUT,

@JGSMALLMONEYOUTPUT,

@CWSINTOUTPUT,

@SYZTCHAR(8)OUTPUT

AS

SELECT@KFL=客房类型,@JG=价格,@CWS=床位数,@SYZT=使用状态

FROM客房

WHERE客房编号=@KFB

客户编号查询

CREATEPROCEDURE客户编号查询

(@KHBCHAR(8),

@KFMCHAR(10)OUTPUT,

@SFZCHAR(18)OUTPUT,

@LXDZCHAR(25)OUTPUT,

@LXDHCHAR(10)OUTPUT

AS

SELECT@KFM=客户名称,@SFZ=身份证号,@LXDZ=联系地址,@LXDH=联系电话

FROM客户

WHERE客户编号=@KHB

入住客户编号查询

CREATEPROCEDURE入住客户编号查询

(@KFBCHAR(8)OUTPUT,

@KHBCHAR(8),

@YDRQDATETIMEOUTPUT,

@YDSLINTOUTPUT

AS

SELECT@KFB=客房编号,@YDRQ=预定日期,@YDSL=预定数量

FROM入住登记

WHERE客户编号=@KHB

 

---------------------------------------建立触发器---------------------------------------------

1.6、建立触发器保证数据的一致性

客房使用状态的控制

CREATETRIGGER控制触发器

ON入住登记

FORINSERT

AS

UPDATE客房

SET使用状态='使用中'

WHERE客房编号=ANY(SELECT客房编号FROMINSERTED)

控制入住信息删除的触发器

CREATETRIGGER入住删除触发器

ON入住登记

FORDELETE

AS

BEGIN

DELETE

FROM客户

WHERE客户编号=ANY(SELECT客户编号FROMDELETED)

UPDATE客房

SET使用状态='未使用'

WHERE客房编号=ANY(SELECT客房编号FROMDELETED)

END

客户信息删除的控制

CREATETRIGGER客户删除触发器

ON客户

FORDELETE

AS

BEGIN

DELETE

FROM入住

WHERE客户编号=ANY(SELECT客户编号FROMDELETED)

UPDATE客房

SET使用状态='未使用'

WHERE客房编号=ANY(SELECT客房编号FROMDELETED)

END

 

客房删除触发器

CREATETRIGGER客房删除触发器

ON客房

FORDELETE

AS

DELETE

FROM入住

WHERE客户编号=ANY(SELECT客户编号FROMDELETED)

 

酒店管理系统数据库脚本

------------------------数据库初始化-------------------------------------

setnocounton

setdateformatmdy

go

usemaster

go

ifexists(select*fromsysdatabaseswherename='酒店管理系统')/*删除在master中已存*//*在的名为酒店管理系统的数据库*/

dropdatabase酒店管理系统

go

--------------------------酒店管理系统的建立--------------------------------

createdatabase酒店管理系统

onprimary/*设定系统主文件*/

(name='酒店管理系统_data',

filename='d:

\酒店管理系统.mdf',

size=10,

maxsize=50,

filegrowth=5)

logon/*创建事务日志文件*/

(name='酒店管理系统_log',

filename='d:

\酒店管理系统.ldf',

size=5,

maxsize=25,

filegrowth=5)

go

 

---------(注:

删除查询分析器中的以上代码后,运行以下代码)----------

--------------------------------------建立信息表-----------------------------------------

use酒店管理系统

ifexists(select*fromsysobjectswherename='客户')

droptable客户

go

print'droptable客户'

print'createtable客户'

go

/*客户信息表*/

CREATETABLE客户/*创建客户信息表*/

(客户编号CHAR(8)PRIMARYKEY,

客户名称CHAR(10)NOTNULL,

身份证号CHAR(18)NOTNULL,

联系地址CHAR(25),

联系电话CHAR(10))

go

--------------------------插入客户数据-----------------------

INSERTINTO客户VALUES('1001','王一',12234,'江西','3245354')

INSERTINTO客户VALUES('1002','张三',34234,'江西','2442442')

INSERTINTO客户VALUES('1003','李四',56465,'江西','5654645')

INSERTINTO客户VALUES('1004','王钱',65435,'江西','5676577')

INSERTINTO客户VALUES('1005','孙志',11464,'江西','4234343')

--------------------------------------------------------------

ifexists(select*fromsysobjectswherename='客房')

droptable客房

go

print'droptable客房'

print'createtable客房'

go

/*客房信息表*/

CREATETABLE客房/*创建客房信息表*/

(客房编号CHAR(8)PRIMARYKEY,

客房类型CHAR(8)NOTNULL,

价格SMALLMONEYNOTNULL,

床位数INTNOTNULL,

使用状态CHAR(8)NOTNULL)

go

-----------------------插入客房数据----------------------

INSERTINTO客房VALUES('101','一',100,1,'使用中')

INSERTINTO客房VALUES('102','二',200,2,'使用中')

INSERTINTO客房VALUES('103','二',200,1,'使用中')

INSERTINTO客房VALUES('104','三',300,2,'使用中')

INSERTINTO客房VALUES('105','三',300,1,'使用中')

--------------------------------------------------------------

ifexists(select*fromsysobjectswherename='入住登记')

droptable入住登记

go

print'droptable入住登记'

print'createtable入住登记'

go

/*入住登记信息表*/

CREATETABLE入住登记/*创建入住登记信息表*/

(客房编号CHAR(8)FOREIGNKEYREFERENCES客房(客房编号),

客户编号CHAR(8)FOREIGNKEYREFERENCES客户(客户编号),

预定日期DATETIME,

预定数量INT,

PRIMARYKEY(客房编号,客户编号))

go

---------------插入入住登记信息数据----------------------

INSERTINTO入住登记VALUES('101','1001',2010-10-10,1)

INSERTINTO入住登记VALUES('102','1002',2010-12-10,1)

INSERTINTO入住登记VALUES('103','1003',2010-12-26,1)

INSERTINTO入住登记VALUES('104','1004',2010-12-9,1)

go

------------------------------------建立索引--------------------------------------------------

CREATEUNIQUEINDEXUKFON客房(客房编号,价格)

go

CREATEUNIQUEINDEXUKHON客户(客户编号,客户名称)

go

CREATEUNIQUEINDEXURZON入住登记(客户编号,客房编号)

go

-----------------------------------建立触发器-------------------------------------------------

-------建立控制触发器(保证在客房使用状态的一致性)------

ifexists(select*fromsysobjectswherename='控制触发器')

droptrigger控制触发器

GO

CREATETRIGGER控制触发器

ON入住登记

FORINSERT

AS

UPDATE客房

SET使用状态='使用中'

WHERE客房编号=ANY(SELECT客房编号FROMINSERTED)

go

--------建立入住删除触发器(保证信息删除的一致性)----------

ifexists(select*fromsysobjectswherename='入住删除触发器')

droptrigger入住删除触发器

GO

CREATETRIGGER入住删除触发器

ON入住登记

FORDELETE

AS

BEGIN

DELETE

FROM客户

WHERE客户编号=ANY(SELECT客户编号FROMDELETED)

UPDATE客房

SET使用状态='未使用'

WHERE客房编号=ANY(SELECT客房编号FROMDELETED)

END

go

-------建立客房删除触发器(保证删除的一致性)---------

ifexists(select*fromsysobjectswherename='客房删除触发器')

droptrigger客房删除触发器

GO

CREATETRIGGER客房删除触发器

ON客房

FORDELETE

AS

DELETE

FROM入住

WHERE客户编号=ANY(SELECT客户编号FROMDELETED)

go

----------------------------------------创建查询视图-----------------------------------------------

CREATEVIEW入住信息查询

ASSELECT入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型,价格,使用状态

FROM客房,客户,入住登记

WHERE客房.客房编号=入住登记.客房编号AND入住登记.客户编号=客户.客户编号

go

----------------------------------------建立存储过程-----------------------------------------------

--------------客房信息插入存储过程--------------------------

CREATEPROCEDURE插入客房信息

(@KFBCHAR(8),

@KFLCHAR(8),

@JGSMALLMONEY,

@CWSINT,

@SYZTCHAR(8)

AS

INSERTINTO客房VALUES(@KFB,@KFL,@JG,@CWS,@SYZT)

GO

--------------------客房信息修改的存储过程---------------------

CREATEPROCEDURE修改客房信息

(@KFBCHAR(8),

@KFLCHAR(8),

@JGSMALLMONEY,

@CWSINT,

@SYZTCHAR(8)

AS

UPDATE客房

SET客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT

WHERE客房编号=@KFB

go

--------------------客房信息删除的存储过程---------------------

CREATEPROCEDURE删除客房信息

(@KFBCHAR(8)

AS

DELETEFROM客房WHERE客房编号=@KFB

GO

--------------------客户信息插入的存储过程---------------------

CREATEPROCEDURE插入客户信息

(@KHBCHAR(8),

@KFMCHAR(10),

@SFZCHAR(18)

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

当前位置:首页 > 表格模板 > 合同协议

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

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