课 程 设 计 报 告
设计题目:酒店住宿及消费管理信息系统
一、课程设计项目名称:
酒店住宿及消费管理信息系统
二、相关基本原理:
数据库设计
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,
建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要
求和处理要求)。
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技
术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,
因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划
和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
数据库建设是硬件、软件和干件(技术与管理的界面)的结合,靠得是"三分技术,
七分管理,十二分基础数据“。数据库设计应该与应用系统设计相结合。包括结构(数据)
设计:设计数据库框架或数据库结构,行为(处理)设计:设计应用程序、事务处理等。
数据库设计是结构和行为分离的设计。
需求分析
调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量
以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,
形成用户需求规约。
需求分析的重点是调查、收集与分析用户在数据管理 中的信息要求、处理要求、安
全性与完整性要求。
概念模型设计
对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其
中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各
部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和
加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形
式表示出来。以扩充的实体—(E-R 模型)联系模型方法为例,第一步先明确现实世界各
部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门
内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用
户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
需求分析阶段描述的用户应用需求是现实世界的具体需求将需求,分析得到的用户
需求抽象为信息结构即概念模型的过程就是概念结构设计。概念结构是各种数据模型的共
同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。概念结构设计是整个数据
库设计的关键。
逻辑结构设计
主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某
种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用
领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。
概念结构是各种数据模型的共同基础,为了能够用某一 DBMS 实现用户需求,还必
须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。
将概念结构转化为一般的关系、网状、层次 模型。将转化来的关系、网状、层次模
型向特定 DBMS 支持下的数据模型转换。对数据模型进行优化。
物理结构设计
根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结
构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、
索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就
是所谓“物理数据库”。
根据具体计算机系统(DBMS 和硬件等)的特点,为给定的数据库模型确定合理的
存储结构和存取方法:使设计出的物理数据库占用较少的存储空间。对数据库的操作具有
尽可能高的速度。
三、课程设计目的:
1)巩固和加深对数据库原理及应用课程基本知识的理解,综合该课程中所学到的理
论知识,与小组成员联合完成一个数据库应用系统课题的需求分析;
2)根据课题需要,通过查阅相关手册和文献资料,培养独立分析和解决实际问题的
能力;
3)掌握数据库应用系统需求分析的基本步骤,能用基本图表工具描述需求分析的过
程及结果
4) 熟练掌握局部 E-R 图和全局 E-R 图的建立方法,熟练掌握概念模型向数据模型
(关系模式)的转化;
5) 能够根据系统的实际需要,对数据库进行物理设计
6) 掌握在数据库管理系统中创建数据库及对数据库进行维护和数据查询的基本方法;
培养动手能力。
四、课程设计内容:
需求分析:根据实际情况,对于酒店住宿及消费管理系统进行调查,必须明确用户的
要求和应用现场环境的特点,了解系统应具有哪些功能,数据流程和数据之间的联系。需
求分析需要进行调查,查阅手册和文献资料,明确问题所在,按需求分析步骤,一步一步
进行分析,完成系统需求分析,得到系统目标、功能分析、系统需求、业务流程图、数据
流图、数据字典等分析成果。
概念模型设计:
根据所选应用系统的需求分析,继续进行局部概念模型分析与设计,然后进行全局概
念模型设计。要求:
1)根据需求分析的结果,小组分工进行局部 E-R 图设计;
2)根据局部 E-R 图进行合并整合,形成全局 E-R 图。
3)对全局 E-R 图进行分析,根据需要进行一定的合并优化处理
逻辑结构设计:对自选的数据库应用项目进行关系数据模型的设计,一方面进行概念
模型到逻辑结构(关系模型)的转化;另一方面用关系规范化理论对形成的关系模式进行
合并、分解的优化;
物理设计:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体
计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文
件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。
数据库实施:
在以上分析设计的基础上,要实现数据库,保证能在现有数据库基础上进行应用系统
的程序开发。要求: 在数据库管理系统上实现数据库,并能在该库上进行相应的数据处
理;数据库建议用 SQL SERVER ,也可用 ACCESS。
完成课程设计报告。
五、课程设计过程及结果分析:
(一)需求分析
1、 背景分析
随着酒店的规模扩大和连锁经营,将管理信息系统嵌入到酒店的经营和管理中已是必
不可少。在本课程设计中,只涉及酒店入住和消费。经过调查分析,确定酒店入住和消费
管理系统由预定房间、查询客房信息、登记、入住、消费(尤指如就餐,叫车等除房费以
外的费用)、退房等功能模块。预订系统尤指针对顾客而言,他可以登录系统随时查询酒
店客房预售一览表,及可售房间数,可查询某间客房预订情况,并实现预订功能,此时酒
店的管理系统可以接收到其信息,也就是说通过网络,该系统更好的联系起来。同时对常
客可使用系统的客历资料预定,可大大减少资料的输入。客人一旦入住酒店,酒店就会详
细记录客人的资料。
本系统面向酒店的前台,系统可以接收到客户在其他平台提交的预订信息,系统数据
管理员可以接收到数据信息,进行集中管理,分类,然后将信息报给不同的酒店管理人员,
简化传统手工作业方式,最大限度地简化酒店管理过程。
(1)能对客房数据进行跟踪管理(添加、更改、删除、查询等);
(2)能对客户数据进行跟踪管理(添加、更改、删除、查询等);
(3)能对预订信息进行跟踪管理(添加、更改、删除、查询等);
(4)能对入住信息进行跟踪管理(添加、更改、删除、查询等);
(5)能对住宿消费信息进行跟踪管理(添加、更改、删除、查询等);、
(6)该数据库系统要具有良好的可扩展性(界面友好);
(7)用户及权限管理(具有一定的安全性):
1)系统工作人员增加、删改用户;
2)系统工作人员对用户角色及权限分配;
3)用户登录及权限验证;
4)系统管理员及用户更改密码。
2、业务流程分析
1)第一层业务流程图
2)第二层业务流程图
(1)顾客登录系统:
1)查询酒店客房预售一览表,及可售房间数,可查询某间客房预订情况;
2)预订,形成预订信息,提交至系统存储。
(2)前台登录系统:
1)前台登录系统后可查询酒店客房预售一览表,及可售房间数,可查询某间客房预
订情况,某位顾客的预订情况;
2)为顾客登记,实现入住,提交入住信息给系统,并生成入住单;
3)顾客产生消费行为,前台提交信息至系统生成消费单;
4)顾客前台结账,收取费用退还押金,并注销顾客入住,提交信息,更新房间信
息。
(3)系统工作人员:
系统工作人员登录系统可以收到顾客的预订信息,入住信息,消费信息,结账信
息,以及顾客信息和客房信息,进行数据处理后提交至系统,授予不同用户不同权限。
3、系统数据流图 DFD
(1.系统顶层数据流图:
2.系统第一层数据流图:
基于上述数据流图,可以用文字描述相关的处理过程:
(1)顾客登录系统:
1)查询酒店客房预售一览表,及可售房间数,可查询某间客房预订情况;
2)预订,形成预订信息,提交至系统存储。
(2)前台登录系统:
1)前台登录系统后可查询酒店客房预售一览表,及可售房间数,可查询某间客房预
订情况,某位顾客的预订情况;
2)为顾客登记,实现入住,提交入住信息给系统,并生成入住单;
3)顾客产生消费行为,前台提交信息至系统生成消费单;
4)顾客前台结账,收取费用退还押金,并注销顾客入住,提交信息,更新房间信
息。
(3)系统工作人员:
系统工作人员登录系统可以收到顾客的预订信息,入住信息,消费信息,结账信
息,以及顾客信息和客房信息,进行数据处理后提交至系统,授予不同用户不同权限。
3.系统第 2 层数据流图:
(图形+文字说明)
1)顾客预订,入住信息处理逻辑第二层数据流图
2)前台进行顾客入住,结算等信息处理逻辑第二层数据流图
4、数据字典 DD
(1)、数据项说明
1)客房信息表
2)客户信息表
数 据 项 编
号
数据项名 数据项含义 与 其 他
数 据 项
的关系
存储结构
1 房间号 房间的编号 字符型,长度为 10,格式例
A101,A 表示 xx 栋,数字由
三位组成,第一个数字为楼层,
后两位为该楼层房间编号
2 房间名称 房间的名字 字符型,长度限制为 20
3 房间类型 房间的类型 字符型,长度限制为 20
4 房间位置 房 间 具 体 位
置
字符型,长度限制为 50,格式
为 xx 栋 xx 层 xx 号
5 房价 房间的价格 由 房 间
类 型 决
定
浮点型,长度限制为 8
6 房间状态 房 间 所 处 的
状态,是满还
是空
由 客 户
预定,入
住,退房
时 间 决
定
字符型,长度限制为 20,限制字
符为以下三种:“预订中”或“入
住”或“空”
7 房间备注 房间备注
数 据 项 编
号
数据项名 数据项含义 与 其 他
数 据 项
的关系
存储结构
1 客户姓名 客户的姓名 字符型,长度为 20
2 证件类型 客 户 出 示 证
件的类型
字符型,长度限制为 20
3 证件号 客 户 出 示 证
件的编号
与 证 件
类 型 相
字符型,长度限制为 30
3)住宿费用信息表
对应
4 性别 客户的性别 字符型,长度限制为 4,可选
择字符为“男”,“女”
5 联系电话 客 户 的 联 系
方式
字符型,长度限制为 50
6 备注 客 户 的 备 注
信息,如客户
身份与要求
字符型,长度限制为 500
数 据 项 编
号
数据项名 数据项含义 与 其 他 数 据 项
的关系
存储结构
1 证件号 客 户 出 示 证
件的编号
字符型,长度为 30
2 房间号 房间的编号 字符型,长度为 10,格
式例 A101,A 表示 xx
栋,数字由三位组成,
第一个数字为楼层,后
两位为该楼层房间编号
3 入住日期 客 户 入 住 的
日期
日期型,格式为年-月-日
4 入住时间 客 户 入 住 的
时间
时间型,格式为时:分:
秒
5 离开日期 客 户 退 房 的
日期
日期型,格式为年-月-日
6 离开时间 客 户 退 房 的
时间
时间型,格式为时:分:
秒
7 天数 客 户 入 住 的
天数
由 客 户 入 住 日
期,入住时间,
退房日期,退房
时间决定
整型,长度为 4
8 房价 房间的价格 浮点型,长度限制为 8
9 折扣率 最终折扣率 浮点型,长度限制为 8
4)预订房间信息表
10 预付 客 户 入 住 时
缴纳的订金
浮点型,长度限制为 8
11 其他消费日期 客 户 除 入 住
外 的 其 他 消
费日期
日期型,格式为年-月-日
12 其他消费时间 客 户 除 入 住
外 的 其 他 消
费时间
时间型,格式为时:分:
秒
13 其他消费名称 客 户 除 入 住
外 的 其 他 消
费名称
字符型,长度限制为 20
14 其他消费金额 客 户 除 入 住
外 的 其 他 消
费金额
浮点型,长度限制为 8
数 据 项 编
号
数据项名 数据项含义 与 其 他
数 据 项
的关系
存储结构
1 证件号 客 户 出 示 的
证件编号
字符型,长度限定 30
2 房间号 房间的编号 字符型,长度为 10,格式例
A101,A 表示 xx 栋,数字由
三位组成,第一个数字为楼层,
后两位为该楼层房间编号
3 预定日期 客 户 预 定 的
日期
日期型,格式为年-月-日
4 预定时间 客 户 预 定 的
时间
时间型,格式为时:分:秒
5 入住日期 房 间 具 体 位
置
日期型,格式为年-月-日
6 预订天数 房间的价格 整型
5)入住信息表
6)前排工作人员信息表
7 预订备注 客 户 预 定 时
的要求
字符型,长度限制为 500
8 是否入住 目 前 客 户 的
入住情况
由 入 住
日 期 决
定
字符型,长度限制为 20,限制字
符为以下两种:“入住中”或“未
入住”
数 据 项 编
号
数据项名 数据项含义 与 其 他
数 据 项
的关系
存储结构
1 证件号 客 户 出 示 证
件的的编号
字符型,长度限定 30
2 房间号 房间的编号 字符型,长度限制为 20 字符型,
长度为 10,格式例 A101,A
表示 xx 栋,数字由三位组成,
第一个数字为楼层,后两位为
该楼层房间编号
3 预付 客 户 入 住 时
缴纳的订金
浮点型,长度限制为 8
4 入住日期 客 户 入 住 的
日期
日期型,格式为年-月-日
5 入住天数 客 户 入 住 的
天数
时间型,格式为时:分:秒
6 备注 客 户 入 住 备
注信息
字符型,长度限制为 500
7 工号 办 理 该 入 住
的员工编号
字符型,长度限制为 20
数 据 项 编
号
数据项名 数据项含义 与 其 他
数 据 项
的关系
存储结构
1 工号 员工的编号 字符型,长度为 20,
(2)、数据结构说明
数据结构
编号
数据结构
名
数据结构含义 组成内容
1 客房 指明酒店客
房的具体信
息
房间号,房间名称,房间类型,房间位置,房价,
房间状态,房间备注
2 客户 每位客户的
的信息
客户姓名,证件类型,证件号,性别,联系电话,
备注
3 住宿费
用
客户在整个
入住过程(包
括住宿外消
费)信息
证件号,房间号,入住日期,入住时间,离开日期,
离开时间,天数,房价,折扣率,预付,其他消费
日期,其他消费时间,其它消费名称,其他消费金
额
4 预订 客户预定房
间信息
证件号,房间号,预定日期,预定时间,入住日期,
预定天数,预定备注,是否入住
5 入住 客户入住房
间信息
证件号,房间号,预付,入住日期,入住天数,备
注,工号
6 前台工
作人员
前台工作人
员信息
工号,姓名,所在部门,职务
(3)、数据流说明
1)预订信息数据流表
简述 顾客预订客房信息流向系统
输入来源 顾客输入
输出去向 前台和系统管理员
2 姓名 员工的名字 字符型,长度限制为 20
3 所在部门 员 工 所 在 的
部门
字符型,长度限制为 20
4 职务 员工的职务 字符型,长度限制为 20
数据项组成 证件号,房间号,预定日期,预定时间,入住日期,预定天数,预定备注,
是否入住
流量 每个顾客的预订信息
2)入住信息数据流表
简述 顾客入住客房信息流向系统
输入来源 顾客提供、前台输入
输出去向 系统管理员
数据项组成 证件号,房间号,预付,入住日期,入住天数,备注,工号
流量 每个顾客的入住信息
3)结账信息数据流表
简述 顾客退房信息流向系统
输入来源 顾客要求、前台输入(消费信息)、系统提供
输出去向 前台和系统管理员
数据项组成 证件号,房间号,入住日期,入住时间,离开日期,离开时间,天数,房
价,折扣率,预付,其他消费日期,其他消费时间,其它消费名称,其他
消费金额
流量 每个顾客的退房信息
(4)、数据存储说明
1)顾客信息存储说明
简述 存放顾客基本信息
输入来源 顾客输入
输出去向 前台和系统管理员
数据项组成 客户姓名,证件类型,证件号,性别,联系电话,备注
存储容量 每个顾客的基本信息
2)客房信息存储说明
简述 客房基本信息
输入来源 系统工作人员提前录入
输出去向 顾客、前台和系统管理员
数据项组成 客房信息:房间号,房间名称,房间类型,房间位置,房价,房间状态,
房间备注
存储容量 每间客房的基本信息
3)前台工作人员信息存储说明
简述 前台工作人员基本信息
输入来源 系统工作人员提前录入
输出去向 前台和系统管理员
数据项组成 前台工作人员信息:工号,姓名,所在部门,职务
存储容量 每位前台工作人员的基本信息
(5)、处理过程说明
1)预订信息录入、修改
简述 单个客户单独输入预订信息
逻辑说明 针对一个客户
显示证件号
针对每条预订信息进行录入(修改)
录入(修改)证件号,房间号,预定日期,预定时间,入住日期,预
定天数,预定备注,是否入住
概要说明 1、可以用“上一步”、“下一步”“回到首页”“提交”点击进行预订信息录入和修
改;
2、显示时,只可读;录入修改时,可读可写。
2)入住信息录入、修改
简述 单个前台工作人员依据顾客提供信息输入入住信息
逻辑说明 针对一个客户
显示证件号,房间号
针对每条入住信息进行录入(修改)
录入(修改)证件号,房间号,预付,入住日期,入住天数,备注,工
号
概要说明 1、可以用“上一步”、“下一步”“回到首页”“提交”点击进行预订信息录入和修
改;
2、显示时,只可读;录入修改时,可读可写。
3)结算信息录入、修改
简述 前台工作人员依据入住信息及其他消费输入结算信息
逻辑说明 针对一个客户
显示 证件号
针对每条结算信息进行录入(修改)
录入(修改)证件号,房间号,入住日期,入住时间,离开日期,离
开时间,天数,房价,折扣率,预付,其他消费日期,其他消费时间,其
它消费名称,其他消费金额
概要说明 1、可以用“上一步”、“下一步”“回到首页”“提交”点击进行预订信息录入和修
改;
2、显示时,只可读;录入修改时,可读可写。
2)客房信息查询
简述 对房间信息进行查询
逻辑说明 针对顾客
显示 证件号
针对前台或系统工作人员
显示 房间号
针对每条预订、入住和结算信息进行查询
查询 证件号,房间号,预定日期,预定时间,入住日期,预定天数,预定
备注,是否入住
查询 证件号,房间号,预付,入住日期,入住天数,备注,工号
查询 证件号,房间号,入住日期,入住时间,离开日期,离开时间,天数,
房价,折扣率,预付,其他消费日期,其他消费时间,其它消费名称,其
他消费金额
概要说明 1、可以用“上一步”、“下一步”“回到首页”“提交”点击进行评教信息的查询;
2、可以输入指定的房间号直接显示客房的信息;输入指定的证件号,直接
显示该顾客的预订、入住、结算信息。
3、所有的查询内容均只可读,不可写。
(二)概念模型设计
1.局部 E-R 图
1 根据数据字典确定每个实体及其属性 E-R 图;
(1)客房实体 E-R 图
(2)客户实体 E-R 图
(3)前台工作人员实体 E-R 图
(4)住宿费用实体 E-R 图
2 根据第二层数据流图确定局部 E-R 图;
(1)预订局部 E-R 图
(2)入住局部 E-R 图
(3)结算局部 E-R 图
2.全局 E-R 图
3.优化处理
在以上实体集的属性中,有些属性不够明确,将做一下修改。
将预定中的预订时间细化为预定日期,预订时间,入住时间改为入住日期;将入住中
的入住时间细化为入住日期和入住时间;删除住宿费用中的入住日期,并将离开日期细化
为离开日期和离开时间。
(三)逻辑结构设计
-R 图转换为关系模式
(1)Room(Rno,Rname,Rtype,Rpostion,Rprice,Rstatus,Rnote)
(2)Customer(Cno,Cname,Ctype,Csex,Ctel,Cnote)
(3)Reserve(Cno,Rno,Orderdate,Rindate,Days_1,Note,Isin)
(4)Check_in(Cno,Rno,Sno,Prepay,Indate,Days_2,Note)
(5)Fee(Cno,Rno,Indate,Outdate,Days,Rprice,Rate,Prepay,OtherC_time,
OtherC_name,OtherC_price)
(6)Reception(Sno,Sname,Sdept,Sjob)
2.关系模式的优化
1)优化过程
结合 E-R 图优化过程做以下处理:
(1)Room 关系模式中存在数据冗余,可无损分解为以下两个关系模式:
Roomtype(Rtype,Rprice)不存在非主属性对码的部分函数依赖,属于 BCNF
RoomInfo(Rno,Rname,Rtype,Rpostion,Rstatus,Rnote)不存在非主属性对码的部分
函数依赖,属于 BCNF
(2)Customer(Cno,Cname,Ctype,Csex,Ctel,Cnote)不存在非主属性对码的部分
函数依赖,属于 BCNF
(3)Reserve(Cno,Rno,Orderdate,Ordetime,RIndate ,Days_1,Note,Isin),添加属性 Intime,
不存在非主属性对码的部分函数依赖,属于 BCNF
(4)Check_in(Cno,Rno,Sno,Prepay,Indate, Intime ,Days_2,Note)添加属性 Intime,考虑
实际情况,假设酒店前台人员按天值班 Cno,Rno->Indate,Intime, Indate, Intime,->Sno,
存在传递依赖,不存在非主属性对码的部分依赖,属于 2NF
(5)Fee 关系模式中存在数据冗余,可无损分解为以下两个关系模式:
Fee(Cno,Rno,Sno, Outdate,Outtime,Rate)添加属性 Outtime,考虑实际情况,假设酒店前台
人员按天值班 Cno,Rno->Outdate,Outtime, Outdate Outtime,->Sno,存在传递依赖,不存在
非主属性对码的部分依赖,属于 2NF
OtherC(Cno,Rno,Sno, OtherC_date ,OtherC_time, OtherC_name, OtherC_price) 考虑实际情况,
一个顾客,一间客房可能会产生多个消费,将 OtherC_date,OtherC_time 设置为主码,不存
在非主属性对码的部分函数依赖,属于 BCNF
(6)Reception(Sno,Sname,Sdept,Sjob)不存在非主属性对码的部分函数依赖,属于 BCNF
2)优化结果
Roomtype(Rtype,Rprice)
RoomInfo(Rno,Rname,Rtype,Rpostion,Rstatus,Rnote)
Customer(Cno,Cname,Ctype,Csex,Ctel,Cnote)
Reserve(Cno,Rno,Orderdate,Ordetime,RIndate ,Days_1,Note,Isin)Check_in(Cno,Rno,Sno,
Prepay,Indate, Intime ,Days_2,Note)
Fee(Cno,Rno,Sno, Outdate,Outtime,Rate)
OtherC(Cno,Rno,Sno, OtherC_date ,OtherC_time, OtherC_name, OtherC_price)
Reception(Sno,Sname,Sdept,Sjob)
3.结合数据字典得到关系具体设计
表 1 Roomtype
属性
名
标题 数据类型 长度 可否为空 约束 备注
Rtype 房间类型 Char 20 否 无 主码
Rprice 房间价格 Float 8 是 无
表 2 RoomInfo
属性名 标题 数据类型 长度 可否为空 约束 备注
Rno 房间号 Char 10 否 无 主码
Rname 房间名
称
Char 20 是 无
Rtype 房间类
型
Char 20 是 无
Rpositio
n
房间位
置
Char 50 是 无
Rstatus 房间状
态
Char 20 是 “预订中”或“入
住”或“空”
Rnote 房间备
注
Char 500 是 无
表 3 Customer
属性名 标题 数据类型 长度 可否为空 约束 备注
Cno 证件号 Char 30 否 无 主码
Cname 客户姓
名
Char 20 否 无
Ctype 证件类
型
Char 20 否 无
Csex 性别 Char 4 是 “男”或“女”
Ctel 联系电
话
Char 50 是 无
Cnote 客户备
注
Char 500 是 无
表 4 Reserve
属性名 标题 数据类型 长
度
可否为空 约束 备注
Cno 证件号 Char 30 否 无 主码
Rno 房间号 Char 10 否 无 主码
Orderdate 预订日
期
Date 否 无
Othertime 预定时
间
Time 否 无
RIndate 入住时
间
Char 20 否 无
Days_1 预订天
数
Int 否 无
ReNote 预定备
注
Char 500 是 无
Isin 是否入
住
Char 20 是 “入住中”或“未
入住”
表 5 Check_in
属性名 标题 数据类型 长度 可否为空 约束 备注
Cno 证件号 Char 30 否 无 主码
Rno 房间号 Char 10 否 无 主码
Sno 工号 Char 20 否 无
Prepay 预付 Float 8 是 无
Indate 入住日
期
Date 否 无
Intime 入住时
间
Time 否 无
Days_2 入住天
数
Int 否 无
Note 备注 Char 500 是 无
表 6 Fee
属性名 标题 数据类型 长度 可否为空 约束 备注
Cno 证件号 Char 30 否 无 主码
Rno 房间号 Char 10 否 无 主码
Sno 工号 Char 20 否 无
Outdate 离开日
期
Date 否 无
Outtime 离开时
间
Time 否 无
Rate 折扣率 Float 8 是 无
表 7 OtherC
属性名 标题 数据类型 长度 可否为空 约束 备注
Cno 证件号 Char 30 否 无 主码
Rno 房间号 Char 10 否 无 主码
Sno 工号 Char 20 否 无
OtherC_
date
其他消
费日期
Date 否 无 主码
OtherC_
time
其他消
费时间
Time 否 无 主码
OtherC_
name
其它消
费名称
Char 20 否 无
OtherC_
price
其他消
费金额
Float 8 否 无
表 8 Reception
属性名 标题 数据类型 长度 可否为空 约束 备注
Sno 工号 Char 20 否 无 主码
Sname 姓名 Char 20 是 无
Sdept 所在部
门
Char 20 是 无
Sjob 职务 Char 20 是 无
(四)物理设计
(1)使用 SQL Server Management Studio 创建一个数据库,名称为“Eva_teach”,数据文
件初始大小为 20MB,自动增长 5MB,最大为 100MB;日志文件初始大小为 10MB,
自 动 增 长 5MB , 最 大 为 100MB 。 存 储 路 径 为 “ C:\Program Files\Microsoft SQL
Server\\MSSQL\DATA”
(2)系统配置设计
本系统采用单机运行。
(五)数据库实现
1.建表语句
(1)房间类型表
use 酒店住宿及消费管理数据库
create table Roomtype
(Rtype char(20) primary key,
Rprice float (8),)
(2)房间信息表
create table RoomInfo
(Rno char(10) primary key,
Rname char (20),
Rtype char (20),
Rpostion char(50),
Rstatus char(20)
constraint C1 check(Rstatus IN('预订中','入住','空')),
Rnote char (500),
foreign key(Rtype)references Roomtype(Rtype),)
(3)顾客表
create table Customer
(Cno char(30) primary key,
Cname char(20) not null,
Ctype char(20) not null,
Csex char(4)
constraint c2 check(Csex IN('男','女')),
Ctel char(50),
Cnote char (500)
)
(4)前台表
create table Reception
(Sno char(20) primary key,
Sname char(20),
Sdept char(20),
Sjob char(20))
(5)预订表
create table Reserve
(Cno char(30),
Rno char(10),
Orderdate date,
ordertime time,
Rindate datenot null,
Days_1 int not null,
ReNote char (500),
Isin char (20)
constraint c3 check(Isin IN ('入住中','未入住')),
Primary key(CNO,Rno),
constraint RE_k1 foreign key (Rno)references RoomInfo(Rno),
constraint RE_k2 foreign key (Cno)references Customer(Cno))
(6)入住表
create table Check_in
(Cno char(30),
Rno char(10),
Sno char(20)not null,
Prepay float(8),
Indate date not null,
Days_2 int not null,
Note char(500),
intime time not null,
Primary key(CNO,Rno),
constraint IN_k1 foreign key (Rno)references RoomInfo(Rno),
constraint IN_k2 foreign key (Cno)references Customer(Cno),
constraint IN_k3 foreign key (Sno)references Reception(Sno))
(7)结算表
create table Fee
(Cno char(30),
Rno char(10),
Sno char(20)not null,
Rate float(8),
Outdate date not null,
outtime time not null,
Primary key(CNO,Rno),
constraint FEE_k1 foreign key (Rno)references RoomInfo(Rno),
constraint FEE_k2 foreign key (Cno)references Customer(Cno),
constraint FEE_k3 foreign key (Sno)references Reception(Sno))
(8)其他消费表
create table OtherC
(Cno char(30) ,
Rno char(10),
Sno char(20)not null,
OtherC_date Date not null,
OtherC_time time not null,
OtherC_name char(20) not null,
OtherC_price float(8) not null,
Primary key(CNO,Rno,OtherC_date,OtherC_time),
constraint OC_k1 foreign key (Rno)references RoomInfo(Rno),
constraint OC_k2 foreign key (Cno)references Customer(Cno),
constraint OC_k3 foreign key (Sno)references Reception(Sno))
2.数据关系图
3.建立测试初始数据
(1)Roomtype
(2)RoomInfo
(3)顾客表
(4)前台表
(5)预订表
(6)入住表
(7)结算表
(8)其他消费表
4.建立视图及查询
1、建立房间视图
create view Roomview(房间号,房间名称,房间类型,房价,房间位置,房间备注)
as
select Rno,Rname,,Rprice,Rpostion,Rnote
from RoomInfo,Roomtype
where = and Rprice<=800
2.建立消费视图
create view Consumptionview1(
证件号,房间号,折扣率,其他消费日期,
其他消费时间,其他消费名称,其他消费金额,折扣后其他消费金额)
as select
,,,_date,
_time,_name,_Price,_Price*
e
from Fee,OtherC
where = AND
=
视图查询 1:
use 酒店住宿及消费管理数据库
select 房间号,房价
from Roomview
where 房价>=400
视图查询 2:
use 酒店住宿及消费管理数据库
select 证件号,房间号,其他消费时间,折扣后其他消费金额
from Consumptionview
where 房间号='A404'
视图查询 3:
use 酒店住宿及消费管理数据库
select *
from Consumptionview
where 其他消费金额<30
视图查询 4:
use 酒店住宿及消费管理数据库
select *
from Roomview
where 房间类型='花园私密家庭房'
视图查询 5:
use 酒店住宿及消费管理数据库
select 证件号,房间号,SUM(其他消费金额)
from Consumptionview
group by 证件号,房间号
order by sum(其他消费金额)
5.数据操纵语句
1、插入语句
use 酒店住宿及消费管理数据库
insert into Roomtype
(Rtype,Rprice)
values('标准双人间',360)
use 酒店住宿及消费管理数据库
insert into Customer
(Cno,Cname,Ctype,Csex,Ctel,Cnote)
values('341011199102122349','牛魔王','身份证','男','13245321734',NULL)
删除语句:
delete
from Reserve
where Cno='342122198001061111'
delete
from OtherC
where OtherC_price<20
修改语句:
update RoomType
set Rprice=998
where Rtype='行政套房'
update RoomInfo
set Rtype='行政套房'
where Rno='A101'
6.建立合理的触发器
use 酒店住宿及消费管理数据库
go
create trigger trig_Room
on Roominfo
for insert, update
as
if exists
(select count(*)
from RoomInfo
having COUNT(*)>16)
begin Print('所有房间位置已满,不能再插入房间信息')
rollback
End
use 酒店住宿及消费管理数据库
go
create trigger trigdays2
on Check_in
after insert,update
as
if exists
(select days_2
from Check_in
where days_2>7)
Begin print(‘入住单天数一次不可超过 7 天’)
rollback
六、课程设计总结及心得体会:
数据库的建立过程是一个结构化的方法,也就是说技术要一步步实施,要从过程中
分离数据。建立一个数据库,虽然在本课程设计只是酒店管理信息系统的一个小小视角,
但是对于我们来说确实是一个不小的挑战。
我们首先计划了酒店入住及消费管理系统,通过查找大量资料以及询问专业人士,
确定了基本框架,在抽丝剥茧后,我们画出了本课程设计所需要的业务流程图,并分析业
务流程图画出数据流图。进而我们将模型从现实世界抽象为概念模型,抽象出数据实体和
联系集。在这个过程中,由于我们对酒店管理系统并不十分了解,在进行业务流程图和 E-R
图的绘制时出现了不少的问题,最终我们小组克服了困难,做出了初步的需求分析和概念
模型设计。从概念模型转化到逻辑模型,在分解关系模式时,在做的过程中不断发现问题
并更改,又加入一些属性使得数据库趋于完善。在最后的物理设计中,问题较少,较之前
做出了进一步的完善。最后我们一起核查了数据库所有内容,避免出现不能必要的问题和
麻烦。
在本课程设计中,我们一直是共同完成,并在一些小的细节上进行一定的任务分配,
这一次合作的很愉快且较为高效,在整个过程中,我们不断的发现问题,提出问题,并及
时交流心得,共同寻找解决问题的方案。在这个过程中,我们感触最深的是,在整个数据
库课程设计中,结构化方法很重要,但由于此过程是不可逆的,所以越在前面出现的问题
将来产生错误为此付出的代价就会更大,所以我们要在每一个环节完成后都要进行一定的
检验,避免将来出现更大的错误。
以上心得体会是小组所有成员共同交流所得。
七、对本设计程及方法、手段的改进建议:
在本课程化设计中,结构化步骤化的方法给我们的课程设计带来了很大的便利性,但
结构化方法有一个缺点就是其过程是不可逆的,所以我们希望在每一个环节中后都加一个
检验以及增减的修改内容,这样能更大程度的及时避免问题的产生。
报告评分:X
指导教师签字:XXX