SQL数据库作业酒店管理.docx

上传人:牧羊曲112 文档编号:4220126 上传时间:2023-04-10 格式:DOCX 页数:19 大小:238.27KB
返回 下载 相关 举报
SQL数据库作业酒店管理.docx_第1页
第1页 / 共19页
SQL数据库作业酒店管理.docx_第2页
第2页 / 共19页
SQL数据库作业酒店管理.docx_第3页
第3页 / 共19页
SQL数据库作业酒店管理.docx_第4页
第4页 / 共19页
SQL数据库作业酒店管理.docx_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《SQL数据库作业酒店管理.docx》由会员分享,可在线阅读,更多相关《SQL数据库作业酒店管理.docx(19页珍藏版)》请在三一办公上搜索。

1、题 目 酒店管理系统的数据库设计班 级 09 机械( 3 班)姓名学号教师酒店管理系统的数据库设计酒店业是一个前景广阔而又竞争激烈的行业。 改革开放以来, 我国的酒店业 迅速发展, 已经成为一个具有相当规模的产业。 由于我国的旅游业迅速发展, 通 过调查,我国在 2020 年将成为世界上第四大旅游国家;同时我国加入世界贸易 组织,酒店业将完全开放, 这个时候, 我国的酒店业将面临着前所未有的机遇和 挑战。酒店行业的激烈竞争使得争取客源、 提高酒店满员率、 指定正确的销售策 略已经成为一项重要的任务, 而借助于当前蓬勃发展的 IT 工具来拓展销售能力, 创造客观的经济效益已经成为许多酒店的首选。

2、因为酒店业务涉及的各个工作环节已经不再仅仅是传统的住宿、结算业务, 而是更广更全面的服务性行业代表。 酒店作为一个服务性行业, 从客房的营销即 客人的预计开始, 从入住登记直到最后退房结账, 整个过程应该能够以宾客为中 心,提供快捷方便的服务, 给宾客一种顾客至上的享受, 只有提高酒店的管理水 平,简单化各种复杂的操作, 在最合理的最短的时间内完成酒店业务的规范操作, 这样才能令旅客舒适难忘, 面对酒店业内激烈的竞争形势, 各酒店均在努力拓展 服务领域的广度和深度。 虽然信息化并不是酒店走向成功的关键元素, 但它可以 帮助那些真正影响成败的要素发挥更大的效用。 因此采用全新的计算机网络和管 理

3、系统,将成为提高酒店的管理效率, 改善服务水准的重要手段之一。 所以作为 一有效的统计分析手段, 计算机管理系统具有明显的优势, 它在数据保存、 数据 交换等方面均能做到快速可靠,是手工操作所不能完成的。现利用 SQL Server2008 设计一个简单的酒店管理系统的数据库。1、对酒店系统进行系统功能需求分析系统流程图2、数据库设计根据系统的功能要求,主要构造以下几个表 :1 所示(1) “楼层信息”表 : 楼层编号、楼层名称。用途是保存楼层编号及名称,如表 表1 . “楼层信息”表CREATETABLE dbo . 楼层信息 ( 楼层编号 int NOT NULL, 楼层名称 varcha

4、r (50) NULL ) ONPRIMARYGO(2) “客房类型”表:类型编号、类型名称、价格、拼房价格、可超预订数、是否可以 拼房。用途是保存客房类型信息,如表2 所示表 2. “客房类型”表CREATETABLE dbo . 客房类型 ( 类型编号 varchar (5) NOT NULL, 类型名称 varchar (50) NULL, 价格 money NULL, 拼房价格 money NULL, 可超预定数 decimal (5, 0 ) NULL, 是否可拼房 bit NULL,CONSTRAINTPK_客房类型 PRIMARYKEY CLUSTERED( 类型编号 ASC)W

5、ITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY= OFF, ALLOW_ROW_LOCKS= ON, ALLOW_PAGE_LOCKS= ON) ON PRIMARY) ONPRIMARYGO(3) “客房信息”表:客房编号、类型编号、楼层编号、额度人数、床数、客房描述、 备注、状态、是否可以拼房。用途是保存酒店所有客房信息,如表3 所示表 3. “客房信息”表CREATETABLE dbo . 客房信息 ( 客房编号 varchar (50) NOT NULL, 类型编号 varchar (5) NOT N

6、ULL, 楼层编号 int NOT NULL, 额定人数 int NULL, 床数 int NULL, 客房描述 varchar (50) NULL, 状态 varchar ( 5) NULL, 是否可拼房 bit NULL) ONPRIMARYGO(4) “预订单”表:预订单号、会员编号、客房类型、抵店时间等。用途是散客订房间 时使用,如表 4 所示表 4. “预订单”表CREATETABLE dbo . 预订单 ( 预定单号 varchar (50) NOT NULL, 会员编号 int NULL, 客房类型 varchar (4) NOT NULL, 抵店时间 smalldatetime

7、NOT NULL, 离店时间 smalldatetimeNULL, 单据状态 varchar (20) NULL, 入住人数 int NULL, 客房编号 varchar (10) NULL, 客房价格 money NULL, 入住价格 money NULL, 折扣 decimal ( 4, 2 ) NULL, 是否加床 bit NULL, 加床价格 money NULL, 预收款 money NULL, 预订人 varchar ( 20) NULL, 联系电话 varchar (50) NULL, 操作员 varchar ( 10) NULL, 业务员 varchar ( 50) NULL)

8、 ON PRIMARYGO(5) “ 预订单历史”表:预订单号、会员编号、客房类型、抵店时间、离店时间、单据 状态。用途是将预订单转入到入住单后,将预订单清除并导入到预订单历史。(6) “入住单”表:入住单号、订单编号、会员编号、客房类型、抵店时间等。用途是 散客入住酒店时,信息可由预订单转入,如表 6 所示表 6. “入住单”表CREATETABLE dbo . 入住单 ( 入住单号 varchar ( 36) NOT NULL, 预定单号 varchar ( 50) NULL, 会员编号 int NOT NULL, 客房类型 varchar ( 5) NULL, 抵店时间 smalldat

9、etime NULL, 离店时间 smalldatetime NULL, 单据状态 varchar (50) NULL, 入住人数 int NULL, 客房编号 varchar (20) NULL, 客房价格 money NULL, 折扣 decimal ( 4, 2 ) NULL, 是否加床 bit NULL, 预收款 money NULL, 预订人 varchar ( 50) NULL, 联系电话 varchar (50) NULL, 操作员 varchar ( 50) NULL, 业务员 varchar ( 50) NULL, 早餐 bitNULL, 叫醒 bitNULL, 保密 bit

10、NULL) ONPRIMARYGO(7) “入住单历史”表:入住单号、订单编号、会员编号、客房类型、抵店时间等。用 途是入住单在收银结账后清除,并导入到入住单历史,如表7 所示表 7. “入住单历史”表CREATETABLE dbo . 入住单历史 ( 入住单号 varchar (30) NULL, 预定单号 varchar (30) NULL, 会员编号 int NULL, 客房类型 varchar (5) NULL, 抵店时间 smalldatetime NULL, 离店时间 smalldatetime NULL, 单据状态 varchar (50) NULL, 入住人数 int NULL

11、, 客房编号 varchar( 20) NULL, 客房价格 moneyNULL) ON PRIMARYGO(8) “ 账单明细”表:账单编号、入住单号、消费内容、消费金额、消费时间、备注。 用途是查询客户消费的明细单,如表 8 所示表 8. “ 账单明细”表CREATETABLE dbo . 账单明细 ( 账单编号 int NOT NULL, 入住单号 varchar ( 50) NULL, 消费内容 varchar ( 50) NULL, 消费金额 money NULL, 消费时间 smalldatetime NULL, 备注 varchar ( 100) NULL) ON PRIMARY

12、GO(9) “账单明细历史”表:账单编号、入住单号、消费内容、消费金额、消费时间、备 注。用途是收银结账后,账单明细导入到账单明细历史,如表9 所示表 9. “账单明细历史”表CREATETABLE dbo . 账单明细历史 ( 账单编号 int NOT NULL, 入住单号 varchar (50) NULL, 消费内容 varchar (50) NULL, 消费金额 money NULL, 消费时间 smalldatetime NULL ) ONPRIMARYGO表中出现的数据类型含-263 至 263 之间,占以上 8 个表可以简略地描述出酒店管理信息系统数据库的设计。 义如下: int

13、 是一种存储整型数据的数值型数据类型,存储范围在 用 4 个字节的储存空间。bit 是用于存储 0 和 1 值的数据类型,该类型的数据列只能存储0 或 1 中的一个,适合用于存储需要标识“是”或“否”两种状态的数据。money 是用于储存范围在( -922337203685477.5808 ) ( 922337203685477.5808 ) 之间的币值数据, 精度为币值单位的万分之一, 占用 8 个字节的存储空间。 但是该数据类型 中存储的数据并不包括货币符号。smalldatatime 与 datatime 类似,但数值范围小,其范围为 1900 年 1 月 1 日至 2079年 6月 6

14、日,占用的存储空间为 4 字节。varchar( n)是一种比 char 更加灵活的数据类型, 同样用于表示字符数据, 但是 varchar 可以保存可变长度的字符串。 其中 n 代表该数据类型所允许保存的字符串的最大长度, 只要 长度小于该最大值的字符串都可以被保存在该数据类型中。因此, 对于那些难以估计确切长度的数据对象来说,使用 varchar 数据类型更加明智。3、分析数据完整性在 SQL 中,数据完整性有以下几种1) 域完整性:又称列完整性,指定列的数据输入是否具有正确的数据类型、格式以及 有效的数据范围2) 实体完整性:又称行完整性。这里的实体是指表中的记录,一个实体就是表的一条记

15、录。实体完整性要求在表中不能存在完全相同的记录, 而且每条记录都要有一个非空且不 重复的主键。实体的完整性可通过建立主键约束、 唯一约束、 标识列、 唯一索引等措施来实 现。3)参照完整性: 又称为引用完整性(关系完整性) ,以保证主表中的数据与从表中的数 据的一致性, 关系完整性是通过定义外键与主键之间或外键与唯一键之间的对应关系实现 的。约束包括以下几种类型: PROMARY KE约Y束 FOREIGN KEY约束 NOT NULL约束UNIQUE约束 DEFAULT约 束 CHECK约束主键约束表中常有一列或列的组合, 其值能唯一标识表中的每一行, 这样的一列或列的组合称为 表的主键。通

16、过主键可以强制表的实体完整性。定义了主键约束的列具有以下特点:每一个表只能定义一个主键主键值不可空( NULL)主键值不可重复, 若主键是由多列组成, 某列上的值可以重复, 但多列的组合值必须是 唯一的。定义和删除主键的方法: 1、使用表设计器操作 例如:对入住单号进行主键设置2、使用 T-SQL语句定义主键约束CONSTRAINTPK_入住单 PRIMARYKEY CLUSTERED( 入住单号 ASC)WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY= OFF,ALLOW_ROW_LOCKS= ON, A

17、LLOW_PAGE_LOCKS= ON) ON PRIMARY ) ON PRIMARY默认值约束若表中某列定义了默认( DEFAUL)T 约束,如果用户在输入数据时,没有为该列指定数 据,那么系统将默认值赋给该列,默认值约束保证了域完整性。唯一约束如果要确保一个表中的非主键列不输入重复值,应在该列上定义唯一约束(UNIQUE约束)。使用唯一约束和主键约束均不允许表中对应字段存在重复值,二者可以实现实体完整 性,但它们之间以下区别:一个表只能定义一个主键约束,但可根据需要对不同的列定义若干个唯一约束 主键约束字段的值不允许为 NULL,而唯一约束字段的值可为 NULL 一般定义主键约束时, 系

18、统会自动建立索引, 索引的默认类型为聚族索引; 定义唯一约 束时,系统会自动建立一个非聚族索引。例如:对“预订单”创建一个名称为“预定单1”的唯一约束CONSTRAINT 预订单 1 UNIQUE NONCLUSTERED( 预定单号 ASC)WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY= OFF,ALLOW_ROW_LOCK=S ON, ALLOW_PAGE_LOCKS= ON) ON PRIMARY 检查约束检查( CHECK)约束用于限制输入到一列或多列的值的范围,从逻辑表达式判断数据的 有效性,也

19、就是说一个字段的输入内容必须满足CHECK约束约束的条件,否则,数据无法正常输入,从而保证数据的域的完整性例如:对“入住单”创建检查约束外键约束一个数据库中可能包含多个表,可以通过外键(FOREIGN KEY)使这些表关联起来,外键是由表中一列或多列组成的。 例如在 A表中有一个字段的取值只能是 B表中某字段的取值之一, 则在 A 表该字段上创建外键约束, A表称为从表, B 表称为主表。定义外键约束的列有以下 特点:外键的取值可以为空( NULL) 外键的取值可以重复,但必须是它所引用列(主表中)的取值之一。引用列必须是定义 了主键约束或唯一约束的列。4、数据表图形输入相应的数据后的入住单:

20、5、数据库安全管理由于软件和网络存在漏洞,对于酒店管理信息系统我们必须采取有效的安全管理措施。数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。 系统安全保护措施是否有效是数据库系统的主要指标之一。 数据库的安全性和计算机系统的 安全性(包括操作系统、网络系统的安全性)是紧密联系、相互支持的。随着越来越多的网络相互连接, 安全性也变得日益重要。 公司的资产必须受到保护, 尤 其是数据库, 它们存储着公司的宝贵信息。 安全是数据引擎的关键特性之一, 保护企业免受 各种威胁。 SQLServer 2008 安全特性的宗旨是使其更加安全,且使数据保护人员能够更方 便地使用和

21、理解安全。在 SQL Server 2008 中,为了保证数据的安全性,需要做到以下几方面工作:1、选择合理的数据库架构;2、对数据库系统进行合理的配置和权限设置;3、经常对数据库中的数据进行及时备份与恢复;对于数据库管理来说,保护数据不受内部和外部侵害是一项重要的工作。SQL Server2008 的身份验证、授权和验证机制可以保护数据免受未经授权的泄漏和篡改。SQL Server 的安全机制一般主要包括三个等级 :1 服务器级别的安全机制这个级别的安全性主要通过登录帐户进行控制,要想访问一个数据库服务器 ,必须拥 有一个登录帐户。登录帐户可以是 Windows账户或组,也可以是 SQL S

22、erver 的登录账户。 登录账户可以属于相应的服务器角色。至于角色,可以理解为权限的组合。2 数据库级别的安全机制这个级别的安全性主要通过用户帐户进行控制, 要想访问一个数据库, 必须拥有该数据 库的一个用户账户身份。 用户账户是通过登录账户进行映射的, 可以属于固定的数据库角色 或自定义数据库角色。3 数据对象级别的安全机制这个级别的安全性通过设置数据对象的访问权限进行控制。具,可以在表上右击,选择【属性】以上的每个等级就好像一道门,以通过这道门达到下一个安全等级。如果是使用图形界面管理工| 【权限】选项,然后启用相应的权限复选框即可。 如果门没有上锁, 或者用户拥有开门的钥匙, 则用户可

23、 如果通过了所有的门, 则用户就可以实现对数据的访问。访问数据库对象许可权操作系统用户客户机的安全性等级图1 SQL Server 2008这种关系可以用图 1 来表示。SQL Server 2008 提供了 Windows 身份和混合身份两种验证模式,每一种身份验证都有 一个不同类型的登录账户。无论哪种模式,SQL Server 2008 都需要对用户的访问进行两个阶段的检验:验证阶段和许可确认阶段。1 验证阶段 用户在 SQL Server 2008 获得对任何数据库的访问权限之前,必须登录到 SQL Server 上,并且被认为是合法的。 SQL Server 或者 Windows 要求

24、对用户进行验证。如果验 证通过,用户就可以连接到 SQL Server 2008 上;否则,服务器将拒绝用户登录2 许可确认阶段 用户验证通过后会登录到 SQL Server 2008 上,此时系统将检查用户是否 有访问服务器上数据的权限。1 Windows 身份验证使用 Windows 身份验证模式是默认的身份验证模式, 它比混合模式要安全得多。 当数据 库仅在内部访问时使用 Windows 身份验证模式可以获得最佳工作效率。 在使用 Windows 身份 验证模式时, 可以使用 Windows 域中有效的用户和组账户来进行身份验证。 这种模式下, 域 用户不需要独立的 SQL Server

25、 用户账户和密码就可以访问数据库。这对于普通用户来说是非常有益的, 因为这意味着域用户不需记住多个密码。 如果用户更新了自己的域密码, 也不 必更改 SQL Server 2008 的密码。但是,在该模式下用户仍然要遵从Windows 安全模式的所有规则,并可以用这种模式去锁定账户、审核登录和迫使用户周期性地更改登录密码。当用户通过 Windows用户帐户连接时, SQL Server 使用操作系统中的 Windows 主体标 记验证帐户名和密码。也就是说,用户身份由Windows 进行确认。 SQL Server 不要求提供密码,也不执行身份验证。图 2 所示,就是本地账户启用 SQL Se

26、rver Manage-ment Studio 窗口是,使用操作系统 中的 Windows 主体标记进行的连接。图 2 Windows 身份验证模式其中,服务器名称中 MR代表当前计算机名称, Administrator 是指登录该计算机时使 用的 Windows 账户名称。这也是 SQL Server 默认的身份验证模式,并且比 SQL Server 身份 验证更为安全。 Windows 身份验证使用 Kerberos 安全协议,提供有关强密码复杂性验证的 密码策略强制, 还提供帐户锁定支持, 并且支持密码过期。 通过 Windows 身份验证完成的连 接有时也称为可信连接,这是因为SQL

27、Server 信任由 Windows 提供的凭据。Windows省份验证模式有以下主要优点:1) 数据库管理员的工作可以集中在管理数据库上面,而不是管理用户账户。对用户账 户的管理可以交给 Windows 去完成。2) Windows 有更强的用户账户管理工具。可以设置账户锁定、密码期限等。如果不通 过定制来扩展 SQL Server ,SQL Server 则不具备这些功能。3) Windows 的组策略支持多个用户同时被授权访问 SQL Server 。2混合模式使用混合安全的身份验证模式,可以同时使用 Windows身份验证和 SQL Server 登录。 SQL Server 登录主要

28、用于外部的用户,例如那些可能从Internet 访问数据库的用户。可以配置从 Internet 访问 SQL Server 2008 的应用程序以自动地使用指定的账户或提示用户输 入有效的 SQL Server 用户账户和密码。使用混合安全模式, SQL Server 2008 首先确定用户的连接是否使用有效的SQL Server用户账户登录。 如果用户有有效的登录和使用正确的密码, 则接受用户的连接; 如果用户有 有效的登录,但是使用不正确的密码,则用户的连接被拒绝。仅当用户没有有效的登录时, SQL Server 2008 才检查 Windows账户的信息。在这种情况下, SQL Serv

29、er 2008 将会确定 Windows 账户是否有连接到服务器的权限。如果账户有权限,连接被接受;否则,连接被拒 绝。当使用混合模式身份验证时,在 SQL Server 中创建的登录名并不基于 Windows用户帐 户。用户名和密码均通过使用 SQLS erver 创建并存储在 SQL Server 中。通过混合模式身份 验证进行连接的用户每次连接时必须提供其凭据(登录名和密码) 。当使用混合模式身份验 证时,必须为所有 SQL Server 帐户设置强密码。图 3 所示,就是选择混合模式身份验证的 登录界面。图 3 使用 SQL Server 身份验证如果用户是具有 Windows 登录名

30、和密码的 Windows 域用户,则还必须提供另一个用于连接 的( SQL Server )登录名和密码。记住多个登录名和密码对于许多用户而言都较为困难。每 次连接到数据库时都必须提供 SQL Server 凭据也十分繁琐。 混合模式身份验证的优点如下。1)允许 SQL Server 支持那些需要进行 SQL Server 身份验证的旧版应用程序和由第三方 提供的应用程序。2)允许 SQL Server 支持具有混合操作系统的环境,在这种环境中并不是所有用户均由 Windows 域进行验证。3)允许用户从未知的或不可信的域进行连接。例如,既定客户使用指定的SQL Server登录名进行连接以接

31、收其订单状态的应用程序。4)允许 SQL Server 支持基于 Web的应用程序,在这些应用程序中用户可创建自己的标 识。允许软件开发人员通过使用基于已知的预设 SQL Server 登录名的复杂权限层次结构来分发 应用程序。经过以上的分析, 我们可以采取 Windows身份验证、 及时对数据库备份等措施, 加强对数据 库的安全管理,确保数据的完整性,不让顾客因我们酒店管理系统的缺陷而遭受损失。6、感想通过对以上酒店管理信息系统数据库的设计, 我更加熟悉了对 SQLS erver 2008 的运用, 对这方面的知识也有了更深一步的理解。 但是也存在很多不足之处, 例如对系统的设计, 分 析实际问题的能力不够强,还有待在以后的学习实践中慢慢提高。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号