酒店管理系统_(数据库课程设计).doc
《酒店管理系统_(数据库课程设计).doc》由会员分享,可在线阅读,更多相关《酒店管理系统_(数据库课程设计).doc(14页珍藏版)》请在咨信网上搜索。
数据库 酒店管理系统 课程设计 (基于 SQL server 2000) 实现过程 1.1 通过查询分析器实现建立数据库、数据表 ------------------------------创建数据库和数据表---------------------------------- (1)创建酒店管理系统数据库 CREATE DATABASE 酒店管理系统 (2)创建客房信息表 CREATE TABLE 客房 (客房编号 CHAR(8) PRIMARY KEY, 客房类型 CHAR(8)NOT NULL, 价格 SMALLMONEY NOT NULL, 床位数 INT NOT NULL, 使用状态 CHAR(8) NOT NULL) INSERT INTO 客房 VALUES('101','一',100,1,'在使用') INSERT INTO 客房 VALUES('102','二',200,2,'在使用') INSERT INTO 客房 VALUES('103','二',200,1,'在使用') INSERT INTO 客房 VALUES('104','三',300,2,'在使用') INSERT INTO 客房 VALUES('105','三',300,1,'未使用') (3)创建客户信息表 CREATE TABLE 客户 (客户编号 CHAR(8)PRIMARY KEY, 客户名称 CHAR(10)NOT NULL, 身份证号 CHAR(18)NOT NULL, 联系地址 CHAR(25), 联系电话 CHAR(10)) INSERT INTO 客户 VALUES('1001','王一',12234,'江西','3245354') INSERT INTO 客户 VALUES('1002','张三',34234,'江西','2442442') INSERT INTO 客户 VALUES('1003','李四',56465,'江西','5654645') INSERT INTO 客户 VALUES('1004','王钱',65435,'江西','5676577') INSERT INTO 客户 VALUES('1005','孙志',11464,'江西','4234343') (4)创建入住登记表 CREATE TABLE 入住登记 (客房编号 CHAR(8)FOREIGN KEY REFERENCES 客房(客房编号), 客户编号 CHAR(8)FOREIGN KEY REFERENCES 客户(客户编号), 预定日期 DATETIME, 预定数量 INT, PRIMARY KEY(客房编号,客户编号)) INSERT INTO 入住登记 VALUES('101','1001',2010-10-10,1) INSERT INTO 入住登记 VALUES('102','1002',2010-12-10,1) INSERT INTO 入住登记 VALUES('103','1003',2010-12-26,1) INSERT INTO 入住登记 VALUES('104','1004',2010-12-9,1) ---------------------------------------创建查询视图---------------------------------------- 1.2系统功能相应的查询视图: (1)客户信息查询视图 CREATE VIEW 客户信息查询 AS SELECT * FROM 客户 (2)客房信息查询 CREATE VIEW 客房信息查询 AS SELECT * FROM 客房 (3)入住信息查询 CREATE VIEW 入住登记信息查询 AS SELECT * FROM 入住登记 (4)入住信息查询 CREATE VIEW 入住信息查询 AS SELECT入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型,价格,使用状态 FROM 客房,客户,入住登记 WHERE 客房.客房编号=入住登记.客房编号 AND 入住登记.客户编号=客户.客户编号 ----------------------------------------------建立索引------------------------------------------------------ 1.3建立索引及数据入库 1.建立客房编号,价格,客户编号,客户名称的索引 创建客房表索引: CREATE UNIQUE INDEX UKF ON 客房(客房编号,价格) 创建客户表索引: CREATE UNIQUE INDEX UKH ON 客户(客户编号,客户名称) 创建入住表索引: CREATE UNIQUE INDEX URZ ON 入住登记(客户编号,客房编号) 2.数据入库 方法一 酒店管理系统包括客房信息表,客户信息表,入住登记信息表。采用Excel中录入数据,然后使用SQL Server 2000数据导入、导出功能直接将数据导入到相应的基本表。 方法二 在查询分析器中插入相关数据,用SQL语句插入。 -----------------------------------------创建存储过程----------------------------------------------------- 1.4建立存储过程 1.4.1客房信息存储过程 插入客房信息存储过程: CREATE PROCEDURE 插入客房信息 (@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8) ) AS INSERT INTO 客房 VALUES (@KFB,@KFL,@JG,@CWS,@SYZT) 修改客房信息存储过程: CREATE PROCEDURE 修改客房信息 (@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8) ) AS UPDATE 客房 SET 客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT WHERE 客房编号=@KFB 删除客房信息存储过程: CREATE PROCEDURE 删除客房信息 (@KFB CHAR(8) ) AS DELETE FROM 客房 WHERE 客房编号=@KFB 1.4.2客户信息存储过程 插入客户信息 CREATE PROCEDURE 插入客户信息 (@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10) ) AS INSERT INTO 客户 VALUES (@KHB,@KFM,@SFZ,@LXDZ,@LXDH) 修改客户信息 CREATE PROCEDURE 修改客户信息 (@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10) ) AS UPDATE 客户 SET 客户名称=@KFM,身份证号=@SFZ,联系地址=@LXDZ,联系电话=@LXDH WHERE 客户编号=@KHB 删除客户信息 CREATE PROCEDURE 删除客户信息 (@KHB CHAR(8)) AS DELETE FROM 客户 WHERE 客户编号=@KHB EXEC 删除客户信息 @KHB='10009' 3.4.3创建入住信息存储过程 插入入住信息 CREATE PROCEDURE 插入入住信息 (@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT ) AS INSERT INTO 入住登记 VALUES(@KFB,@KHB,@YDRQ,@YDSL) 修改入住信息 CREATE PROCEDURE 修改入住信息 (@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT ) AS UPDATE 入住登记 SET 客房编号=@KFB,预定日期=@YDRQ ,预定数量=@YDSL WHERE 客户编号=@KHB 删除入住信息 CREATE PROCEDURE 删除入住信息 ( @KHB CHAR(8) ) AS DELETE FROM 入住登记 WHERE 客户编号=@KHB 1.5查询存储过程的创建 客房编号查询 CREATE PROCEDURE 客房编号查询 (@KFB CHAR(8), @KFL CHAR(8)OUTPUT, @JG SMALLMONEY OUTPUT, @CWS INT OUTPUT, @SYZT CHAR(8)OUTPUT ) AS SELECT @KFL=客房类型,@JG=价格,@CWS=床位数,@SYZT=使用状态 FROM 客房 WHERE 客房编号=@KFB 客户编号查询 CREATE PROCEDURE 客户编号查询 (@KHB CHAR(8), @KFM CHAR(10)OUTPUT , @SFZ CHAR(18)OUTPUT, @LXDZ CHAR(25)OUTPUT, @LXDH CHAR(10)OUTPUT ) AS SELECT @KFM=客户名称,@SFZ=身份证号,@LXDZ=联系地址,@LXDH=联系电话 FROM 客户 WHERE 客户编号=@KHB 入住客户编号查询 CREATE PROCEDURE 入住客户编号查询 (@KFB CHAR(8)OUTPUT, @KHB CHAR(8), @YDRQ DATETIME OUTPUT, @YDSL INT OUTPUT ) AS SELECT @KFB=客房编号,@YDRQ=预定日期,@YDSL=预定数量 FROM 入住登记 WHERE 客户编号=@KHB ---------------------------------------建立触发器--------------------------------------------- 1.6、建立触发器保证数据的一致性 客房使用状态的控制 CREATE TRIGGER 控制触发器 ON 入住登记 FOR INSERT AS UPDATE 客房 SET 使用状态='使用中' WHERE 客房编号=ANY (SELECT 客房编号 FROM INSERTED ) 控制入住信息删除的触发器 CREATE TRIGGER 入住删除触发器 ON 入住登记 FOR DELETE AS BEGIN DELETE FROM 客户 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) UPDATE 客房 SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED) END 客户信息删除的控制 CREATE TRIGGER 客户删除触发器 ON 客户 FOR DELETE AS BEGIN DELETE FROM 入住 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) UPDATE 客房 SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED) END 客房删除触发器 CREATE TRIGGER 客房删除触发器 ON 客房 FOR DELETE AS DELETE FROM 入住 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) 酒店管理系统数据库脚本 ------------------------数据库初始化------------------------------------- set nocount on set dateformat mdy go use master go if exists(select * from sysdatabases where name='酒店管理系统') /*删除在master中已存*/ /*在的名为酒店管理系统的数据库*/ drop database 酒店管理系统 go --------------------------酒店管理系统的建立-------------------------------- create database 酒店管理系统 on primary /*设定系统主文件*/ (name='酒店管理系统_data', filename='d:\酒店管理系统.mdf', size=10, maxsize=50, filegrowth=5) log on /*创建事务日志文件*/ (name='酒店管理系统_log', filename='d:\酒店管理系统.ldf', size=5, maxsize=25, filegrowth=5) go ---------(注:删除查询分析器中的以上代码后,运行以下代码)---------- --------------------------------------建立信息表----------------------------------------- use 酒店管理系统 if exists(select * from sysobjects where name='客户') drop table 客户 go print 'drop table 客户' print 'create table 客户' go /*客户信息表*/ CREATE TABLE 客户 /*创建客户信息表*/ (客户编号 CHAR(8)PRIMARY KEY, 客户名称 CHAR(10)NOT NULL, 身份证号 CHAR(18)NOT NULL, 联系地址 CHAR(25), 联系电话 CHAR(10)) go --------------------------插入客户数据----------------------- INSERT INTO 客户 VALUES('1001','王一',12234,'江西','3245354') INSERT INTO 客户 VALUES('1002','张三',34234,'江西','2442442') INSERT INTO 客户 VALUES('1003','李四',56465,'江西','5654645') INSERT INTO 客户 VALUES('1004','王钱',65435,'江西','5676577') INSERT INTO 客户 VALUES('1005','孙志',11464,'江西','4234343') -------------------------------------------------------------- if exists(select * from sysobjects where name='客房') drop table 客房 go print 'drop table 客房' print 'create table 客房' go /*客房信息表*/ CREATE TABLE 客房 /*创建客房信息表*/ (客房编号 CHAR(8) PRIMARY KEY, 客房类型 CHAR(8)NOT NULL, 价格 SMALLMONEY NOT NULL, 床位数 INT NOT NULL, 使用状态 CHAR(8) NOT NULL) go -----------------------插入客房数据---------------------- INSERT INTO 客房 VALUES('101','一',100,1,'使用中') INSERT INTO 客房 VALUES('102','二',200,2,'使用中') INSERT INTO 客房 VALUES('103','二',200,1,'使用中') INSERT INTO 客房 VALUES('104','三',300,2,'使用中') INSERT INTO 客房 VALUES('105','三',300,1,'使用中') -------------------------------------------------------------- if exists(select * from sysobjects where name='入住登记') drop table 入住登记 go print 'drop table 入住登记' print 'create table 入住登记' go /*入住登记信息表*/ CREATE TABLE 入住登记 /*创建入住登记信息表*/ (客房编号 CHAR(8)FOREIGN KEY REFERENCES 客房(客房编号), 客户编号 CHAR(8)FOREIGN KEY REFERENCES 客户(客户编号), 预定日期 DATETIME, 预定数量 INT, PRIMARY KEY(客房编号,客户编号)) go ---------------插入入住登记信息数据---------------------- INSERT INTO 入住登记 VALUES('101','1001',2010-10-10,1) INSERT INTO 入住登记 VALUES('102','1002',2010-12-10,1) INSERT INTO 入住登记 VALUES('103','1003',2010-12-26,1) INSERT INTO 入住登记 VALUES('104','1004',2010-12-9,1) go ------------------------------------建立索引-------------------------------------------------- CREATE UNIQUE INDEX UKF ON 客房(客房编号,价格) go CREATE UNIQUE INDEX UKH ON 客户(客户编号,客户名称) go CREATE UNIQUE INDEX URZ ON 入住登记(客户编号,客房编号) go -----------------------------------建立触发器------------------------------------------------- -------建立控制触发器(保证在客房使用状态的一致性)------ if exists (select * from sysobjects where name='控制触发器') drop trigger 控制触发器 GO CREATE TRIGGER 控制触发器 ON 入住登记 FOR INSERT AS UPDATE 客房 SET 使用状态='使用中' WHERE 客房编号=ANY (SELECT 客房编号 FROM INSERTED ) go --------建立入住删除触发器(保证信息删除的一致性)---------- if exists (select * from sysobjects where name='入住删除触发器') drop trigger 入住删除触发器 GO CREATE TRIGGER 入住删除触发器 ON 入住登记 FOR DELETE AS BEGIN DELETE FROM 客户 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) UPDATE 客房 SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED) END go -------建立客房删除触发器(保证删除的一致性)--------- if exists (select * from sysobjects where name='客房删除触发器') drop trigger 客房删除触发器 GO CREATE TRIGGER 客房删除触发器 ON 客房 FOR DELETE AS DELETE FROM 入住 WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED ) go ----------------------------------------创建查询视图----------------------------------------------- CREATE VIEW 入住信息查询 AS SELECT 入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型,价格,使用状态 FROM 客房,客户,入住登记 WHERE 客房.客房编号=入住登记.客房编号 AND 入住登记.客户编号=客户.客户编号 go ----------------------------------------建立存储过程----------------------------------------------- --------------客房信息插入存储过程-------------------------- CREATE PROCEDURE 插入客房信息 (@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8) ) AS INSERT INTO 客房 VALUES (@KFB,@KFL,@JG,@CWS,@SYZT) GO --------------------客房信息修改的存储过程--------------------- CREATE PROCEDURE 修改客房信息 (@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8) ) AS UPDATE 客房 SET 客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT WHERE 客房编号=@KFB go --------------------客房信息删除的存储过程--------------------- CREATE PROCEDURE 删除客房信息 (@KFB CHAR(8) ) AS DELETE FROM 客房 WHERE 客房编号=@KFB GO --------------------客户信息插入的存储过程--------------------- CREATE PROCEDURE 插入客户信息 (@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10) ) AS INSERT INTO 客户 VALUES (@KHB,@KFM,@SFZ,@LXDZ,@LXDH) go --------------------客户信息修改的存储过程--------------------- CREATE PROCEDURE 修改客户信息 (@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10) ) AS UPDATE 客户 SET 客户名称=@KFM,身份证号=@SFZ,联系地址=@LXDZ,联系电话=@LXDH WHERE 客户编号=@KHB GO --------------------客户信息删除的存储过程--------------------- CREATE PROCEDURE 删除客户信息 (@KHB CHAR(8) ) AS DELETE FROM 客户 WHERE 客户编号=@KHB go --------------------入住信息插入的存储过程--------------------- CREATE PROCEDURE 插入入住信息 (@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT ) AS INSERT INTO 入住登记 VALUES(@KFB,@KHB,@YDRQ,@YDSL) go --------------------入住信息修改的存储过程--------------------- CREATE PROCEDURE 修改入住信息 (@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT ) AS UPDATE 入住登记 SET 客房编号=@KFB,预定日期=@YDRQ ,预定数量=@YDSL WHERE 客户编号=@KHB go --------------------入住信息删除的存储过程--------------------- CREATE PROCEDURE 删除入住信息 (@KHB CHAR(8) ) AS DELETE FROM 入住登记 WHERE 客户编号=@KHB go --------------------客房编号查询的存储过程----------------------- if exists (select * from sysobjects where name='客房编号查询') drop procedure 客房编号查询 GO CREATE PROCEDURE 客房编号查询 (@KFB CHAR(8) ) AS SELECT 客房类型,价格,床位数,使用状态 FROM 客房 WHERE 客房编号=@KFB go --------------------客户编号查询的存储过程----------------------- if exists (select * from sysobjects where name='客户编号查询') drop procedure 客户编号查询 GO CREATE PROCEDURE 客户编号查询 (@KHB CHAR(8)) AS SELECT 客户编号,客户名称,身份证号,联系地址,联系电话 FROM 客户 WHERE 客户编号=@KHB go --------------------入住信息查询的存储过程----------------------- if exists (select * from sysobjects where name='入住客户编号查询') drop procedure 入住客户编号查询 GO CREATE PROCEDURE 入住客户编号查询 ( @KHB CHAR(8) ) AS SELECT 客户编号,客房编号,预定日期,预定数量 FROM 入住登记 WHERE 客户编号=@KHB- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 数据库 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文