数据库课程设计酒店管理系统目录一、实习的性质、目的与任务—————————————————————————————3(1)画出实体间的E-R图 (4)(2)利用企业管理器建立数据库及基本表 (4)(3)利用查询分析器或企业管理器建立视图 (4)(4)利用Transcat—SQL语句自定义存储过程 (4)(5)在查询分析器或企业管理器下用Transcat—SQL语句自定义触发器 (4)二、系统需求分析——————————————————————————————42.1、系统功能需求——————————————————————————————————4三、系统总体设计———————————————————————————————51、体系结构设计 (5)2、数据库设计 (5)四、表的创建—————————————————————————————————7(1)、入住登记表 (7)(2)、员工信息表 (7)(3)、客户表 (8)(4)、岗位表 (8)(5)、客房表 (8)(6)、工资表 (9)五、结果数据处理———————————————————————————————————91 、连接查询 (9)2、嵌套查询 (12)3、创建查询视图 (13)4、建立索引 (14)5、建立存储过程 (15)6、建立触发器 (21)六、结束语—————————————————————————————————23一、实习的性质、目的与任务本次实习属于课程设计,其目的是使学生在结束本门课程学习后,完成下列知识的掌握和应用:要求学生掌握数据库设计的基本技术.熟悉数据库设计的每个步骤中的任务和实施方法,并加深对数据库系统概念和特点的理解、掌握SQL SERVER 2000软件的使用方法、掌握Transcat--SQL编程方法、熟悉数据库、基本表、视图、存储过程与触发器的创建与管理。
实习教学的基本要求:要求学生根据周围的实际情况.自选一个小型的数据库应用项目并深入到应用项目的现实世界中,进行系统分析和数据库设计。
例如选择学籍管理系统、图书管理系统、材料管理系统或仓库管理系统等。
(1)画出实体间的E-R图(2)利用企业管理器建立数据库及基本表(3)利用查询分析器或企业管理器建立视图(4)利用Transcat—SQL语句自定义存储过程(5)在查询分析器或企业管理器下用Transcat—SQL语句自定义触发器二、系统需求分析2.1、系统功能需求1、登录功能——简单的登录向导2、主界面选择分项功能:2-1 客房管理2-1-1 客房查询——查询当前客房的入住情况,入住客户,客房分配员工2-1-2 客房办理——办理客户入住,安排客房分派员工2-1-3 客房退订——退订客房2-1-4 信息更改——客房办理的下一步功能,也可以进入更改客房员工分配等信息2-2 员工管理2-2-1 员工信息查询——查询员工的基本资料2-2-2 员工登记——增加新的员工信息2-3 客户管理2-3-1 客户信息登记——注册登记客户信息(区别于办理,只注册用户信息未必入住)2-3-2 客户信息查询——查询客户资料2-3-3 客户信息修改——修改客户信息2-3-4 客户客房分配——分配客户到客房3、退出系统三、系统总体设计1、体系结构设计2、数据库设计数据库包含常用的表,索引,示图,触发器,完整的数据库,用来存储,读取,修改,触发完成。
Net的一切需求功能2.1、概念结构设计分ER图客房编号类型单价指派员工当前状态安排管理员员工客房客户编号姓名年龄 职称 地址 编号 姓名号住址 身份证号是否保险客房编号编号 类型单价指派员工 服务客房编号当前状态服务安排管理 管理联系方式全局ER 图四、 表的创建(1)、入住登记表(2)、员工信息表(3)、客户表(4)、岗位表(5)、客房表(6)、工资表五、结果数据处理1 、连接查询(1)、查找所有收入在2500元以下的雇员的情况(2)、用连接查询语句查询每个雇员的情况及其薪水的情况(3)、用连接查询语句查询财务部收入在2200元以上的雇员姓名及其薪水详情(4)、求财务部雇员的平均收入(5)、查询财务部雇员的最高和最低收入(6)、求各部门的雇员数(7)、统计各部门收入在2000元以上的雇员的人数(8)、将各雇员的情况按收入由低到高排列2、嵌套查询(1)、查找财务部年龄不低于研发部雇员年龄的姓名(2)、查找研发部比所有财务部雇员收入都高的雇员的姓名(3)、查找比财务部的雇员收入都高的雇员的姓名3、创建查询视图(1)、客户信息查询视图(2)、客房信息查询(3)、入住信息查询4、建立索引(1)、创建客房表索引:(2)、创建客户表索引:(3)、创建入住表索引:5、建立存储过程(1)、客房信息存储过程插入客房信息存储过程CREATE PROCEDURE 插入客房信息(@KFB CHAR(8),@KFL CHAR(8),@JG SMALLMONEY,@CWS INT,@SYZT CHAR(8))ASINSERT INTO 客房 VALUES (@KFB,@KFL,@JG,@CWS,@SYZT)修改客房信息存储过程CREATE PROCEDURE 修改客房信息(@KFB CHAR(8),@KFL CHAR(8),@JG SMALLMONEY,@CWS INT,@SYZT CHAR(8))ASUPDATE 客房SET 客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT WHERE 客房编号=@KFB删除客房信息存储过程CREATE PROCEDURE 删除客房信息(@KFB CHAR(8))ASDELETE FROM 客房 WHERE 客房编号=@KFB(2)、客户信息存储过程插入客户信息CREATE PROCEDURE 插入客户信息(@KHB CHAR(8),@KFM CHAR(10),@SFZ CHAR(18),@LXDZ CHAR(25),@LXDH CHAR(10))ASINSERT INTO 客户 VALUES (@KHB,@KFM,@SFZ,@LXDZ,@LXDH)修改客户信息CREATE PROCEDURE 修改客户信息(@KHB CHAR(8),@KFM CHAR(10),@SFZ CHAR(18),@LXDZ CHAR(25),@LXDH CHAR(10))ASUPDATE 客户SET 客户名称=@KFM,身份证号=@SFZ,联系地址=@LXDZ,联系电话=@LXDH WHERE 客户编号=@KHB删除客户信息CREATE PROCEDURE 删除客户信息(@KHB CHAR(8))ASDELETEFROM 客户WHERE 客户编号=@KHBEXEC 删除客户信息 @KHB='10009'(3)、创建入住信息存储过程插入入住信息CREATE PROCEDURE 插入入住信息(@KFB CHAR(8),@KHB CHAR(8),@YDRQ DATETIME,@YDSL INT)ASINSERT INTO 入住登记 VALUES(@KFB,@KHB,@YDRQ,@YDSL) 修改入住信息CREATE PROCEDURE 修改入住信息(@KFB CHAR(8),@KHB CHAR(8),@YDRQ DATETIME,@YDSL INT)ASUPDATE 入住登记SET 客房编号=@KFB,预定日期=@YDRQ ,预定数量=@YDSL WHERE 客户编号=@KHB删除入住信息CREATE PROCEDURE 删除入住信息(@KHB CHAR(8))ASDELETEFROM 入住登记WHERE 客户编号=@KHB(4)、查询存储过程的创建客房编号查询CREATE PROCEDURE 客房编号查询(@KFB CHAR(8),@KFL CHAR(8)OUTPUT,@JG SMALLMONEY OUTPUT,@CWS INT OUTPUT,@SYZT CHAR(8)OUTPUT)ASSELECT @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)ASSELECT @KFM=客户名称,@SFZ=身份证号,@LXDZ=联系地址,@LXDH=联系电话FROM 客户WHERE 客户编号=@KHB入住客户编号查询CREATE PROCEDURE 入住客户编号查询(@KFB CHAR(8)OUTPUT,@KHB CHAR(8),@YDRQ DATETIME OUTPUT,@YDSL INT OUTPUT)ASSELECT @KFB=客房编号,@YDRQ=预定日期,@YDSL=预定数量FROM 入住登记WHERE 客户编号=@KHB6、建立触发器建立触发器保证数据的一致性(1)客房使用状态的控制CREATE TRIGGER 控制触发器ON 入住登记FOR INSERTASUPDATE 客房SET 使用状态='使用中'WHERE 客房编号=ANY (SELECT 客房编号 FROM INSERTED )(2)、控制入住信息删除的触发器CREATE TRIGGER 入住删除触发器ON 入住登记FOR DELETEASBEGINDELETEFROM 客户WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED )UPDATE 客房SET 使用状态='未使用'WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED) END(3)、客户信息删除的控制CREATE TRIGGER 客户删除触发器ON 客户FOR DELETEASBEGINDELETEFROM 入住WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED )UPDATE 客房SET 使用状态='未使用'WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED)END(4)、客房删除触发器CREATE TRIGGER 客房删除触发器ON 客房FOR DELETEASDELETEFROM 入住WHERE 客户编号=ANY (SELECT 客户编号 FROM DELETED )六、结束语本次课程设计对于我们小组来说不仅是做了酒店管理系统,最为珍贵的是在我们准备这次课程设计所学到的以前不为己知的知识。