SQL数据库作业酒店管理_第1页
SQL数据库作业酒店管理_第2页
SQL数据库作业酒店管理_第3页
SQL数据库作业酒店管理_第4页
SQL数据库作业酒店管理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

4、 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)WITH (PAD_INDEX

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

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

7、ldatetimevarchar (20)int NULL,varchar (10)money NULL,money NULL,NOT NULL,NOT NULL, NULL,NULL,NULL, 折扣 decimal ( 4, 2 ) NULL, 是否加床 加床价格 预收款 预订人 联系电话 操作员 业务员 bit NULL, money NULL, money NULL, varchar ( 20) NULL, varchar (50) NULL, varchar varchar( 10) NULL,( 50) NULL) ONPRIMARYGO(5) “ 预订单历史” 状态。用途是将预订

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

9、ULL, 入住单号 预定单号 会员编号 客房类型 抵店时间 离店时间 单据状态 入住人数 客房编号 客房价格NULL,NULL,NULL,NULL, 折扣 decimal ( 4, 2 ) NULL, 是否加床 预收款 预订人 联系电话 操作员 业务员 bit NULL,money NULL, varchar ( 50) NULL, varchar ( 50) NULL, varchar ( 50) NULL, varchar ( 50) NULL, 早餐 bitNULL, 叫醒 bitNULL, 保密 bitNULL) ON PRIMARYGO(7) “入住单历史”表:入住单号、订单编号、会

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

11、、) ON PRIMARY GO(8) “ 账单明细”表: 用途是查询客户消费的明细单,如表入住单号、消费内容、消费金额、消费时间、备注。8 所示表 8. “ 账单明细”表CREATETABLE dbo . 账单明细 ( 账单编号 入住单号 消费内容 消费金额 消费时间intvarchar (50) varchar (50) money NULL, smalldatetimeNOT NULL,NULL,NULL,NULL, 备注 varchar ( 100) NULL ) ONPRIMARYGO(9) “账单明细历史”表:账单编号、入住单号、消费内容、消费金额、消费时间、备注。用途是收银结账后

12、,账单明细导入到账单明细历史,如表9 所示表 9. “账单明细历史”表CREATETABLE dbo . 账单明细历史 ( 账单编号 入住单号 消费内容 消费金额 消费时间 intvarchar (50) varchar (50) money NULL, smalldatetimeNOT NULL,NULL,NULL,NULL) ONPRIMARYGO以上 8 个表可以简略地描述出酒店管理信息系统数据库的设计。 义如下: int 是一种存储整型数据的数值型数据类型,存储范围在 用 4 个字节的储存空间。bit 是用于存储 0 和 1 值的数据类型,该类型的数据列只能存储 0 或 1 中的一个,

13、 适合用于存储需要标识“是”或“否”两种状态的数据。money 是用于储存范围在() ()之间的币值数据,精度为币值单位的万分之一, 占用 8 个字节的存储空间。但是该数据类型中存储的数据并不包括货币符号。smalldatatime 与 datatime 类似,但数值范围小,其范围为 1900 年 1 月 2079年 6月 6日,占用的存储空间为 4 字节。varchar (n)是一种比char更加灵活的数据类型,同样用于表示字符数据,但是 可以保存可变长度的字符串。其中n代表该数据类型所允许保存的字符串的最大长度,表中出现的数据类型含-2人63至2人63之间,占1 日至varchar只要因此

14、,对于那些难以估计确切长长度小于该最大值的字符串都可以被保存在该数据类型中。 度的数据对象来说,使用 varchar 数据类型更加明智。3、分析数据完整性在SQL中,数据完整性有以下几种1)域完整性:又称列完整性,指定列的数据输入是否具有正确的数据类型、格式以及 有效的数据范围2)实体完整性:又称行完整性。这里的实体是指表中的记录,一个实体就是表的一条 记录。实体完整性要求在表中不能存在完全相同的记录, 而且每条记录都要有一个非空且不 重复的主键。实体的完整性可通过建立主键约束、 唯一约束、 标识列、 唯一索引等措施来实 现。3)参照完整性: 又称为引用完整性(关系完整性) ,以保证主表中的数

15、据与从表中的数 据的一致性, 关系完整性是通过定义外键与主键之间或外键与唯一键之间的对应关系实现 的。约束包括以下几种类型:PROMARY KE约束FOREIGN KEY勺束NOT NULL约束UNIQUE勺束DEFAULT约束CHECK勺束主键约束表中常有一列或列的组合, 其值能唯一标识表中的每一行, 这样的一列或列的组合称为 表的主键。通过主键可以强制表的实体完整性。定义了主键约束的列具有以下特点:每一个表只能定义一个主键主键值不可空( NULL)主键值不可重复, 若主键是由多列组成, 某列上的值可以重复, 但多列的组合值必须是 唯一的。定义和删除主键的方法: 1、使用表设计器操作例如:对

16、入住单号进行主键设置2、使用T-SQL语句定义主键约束CONSTRAINTPK_入住单PRIMARYKEY CLUSTERED( 入住单号 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY= OFF, ALLOW_ROW_LOCKS= ON, ALLOW_PAGE_LOCKS= ON) ONPRIMARY) ONPRIMARY默认值约束若表中某列定义了默认( DEFAUL)T 约束,如果用户在输入数据时,没有为该列指定数 据,那么系统将默认值赋给该列,默认值约束保证了域完整性。唯一约束如果要确保一个表中

17、的非主键列不输入重复值,应在该列上定义唯一约束(UNIQUE约束)。使用唯一约束和主键约束均不允许表中对应字段存在重复值,二者可以实现实体完整性,但它们之间以下区别: 一个表只能定义一个主键约束,但可根据需要对不同的列定义若干个唯一约束 主键约束字段的值不允许为NULL而唯一约束字段的值可为 NULL一般定义主键约束时, 系统会自动建立索引, 索引的默认类型为聚族索引; 定义唯一约 束时,系统会自动建立一个非聚族索引。例如:对“预订单”创建一个名称为“预定单1”的唯一约束CONSTRAINT 预订单 1 UNIQUE NONCLUSTERED( 预定单号 ASC)WITH ( PAD_INDE

18、X = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY= OFF, ALLOW_ROW_LOCK=S ON, ALLOW_PAGE_LOCKS= ON) ON PRIMARY检查约束CHECK勺束约束的条件,否则,数据无法检查(CHECK约束用于限制输入到一列或多列的值的范围,从逻辑表达式判断数据的 有效性,也就是说一个字段的输入内容必须满足正常输入,从而保证数据的域的完整性例如:对“入住单”创建检查约束外键约束FOREIGN KEY使这些表关联起来,外键是B表中某字段的取值之一, A表称为从表,B表称为主表。定义外键约束的列有以下一个数据库中

19、可能包含多个表,可以通过外键(由表中一列或多列组成的。例如在A表中有一个字段的取值只能是 则在A表该字段上创建外键约束, 特点:外键的取值可以为空( NULL) 外键的取值可以重复,但必须是它所引用列(主表中)的取值之一。引用列必须是定义 了主键约束或唯一约束的列。4、数据表图形输入相应的数据后的入住单:5、数据库安全管理由于软件和网络存在漏洞,对于酒店管理信息系统我们必须采取有效的安全管理措施。数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。 系统安全保护措施是否有效是数据库系统的主要指标之一。 数据库的安全性和计算机系统的 安全性(包括操作系统、网络系统的安全性

20、)是紧密联系、相互支持的。随着越来越多的网络相互连接, 安全性也变得日益重要。 公司的资产必须受到保护, 尤 其是数据库, 它们存储着公司的宝贵信息。 安全是数据引擎的关键特性之一, 保护企业免受 各种威胁。 SQLServer 2008 安全特性的宗旨是使其更加安全,且使数据保护人员能够更方 便地使用和理解安全。在 SQL Server 2008 中,为了保证数据的安全性,需要做到以下几方面工作:1、选择合理的数据库架构;2、对数据库系统进行合理的配置和权限设置;3、经常对数据库中的数据进行及时备份与恢复;SQLServer,必须拥 的登录账户。对于数据库管理来说,保护数据不受内部和外部侵害

21、是一项重要的工作。2008 的身份验证、授权和验证机制可以保护数据免受未经授权的泄漏和篡改。SQL Server 的安全机制一般主要包括三个等级 :1 服务器级别的安全机制这个级别的安全性主要通过登录帐户进行控制,要想访问一个数据库服务器有一个登录帐户。登录帐户可以是Win dows账户或组,也可以是 SQL Server登录账户可以属于相应的服务器角色。至于角色,可以理解为权限的组合。2 数据库级别的安全机制这个级别的安全性主要通过用户帐户进行控制, 要想访问一个数据库, 必须拥有该数据 库的一个用户账户身份。 用户账户是通过登录账户进行映射的, 可以属于固定的数据库角色 或自定义数据库角色

22、。3 数据对象级别的安全机制如果是使用图形界面管理工|【权限】选项,然后启用相应的权限复选框即可。如果门没有上锁,或者用户拥有开门的钥匙,则用户可如果通过了所有的门,则用户就可以实现对数据的访问。这个级别的安全性通过设置数据对象的访问权限进行控制。 具,可以在表上右击,选择【属性】以上的每个等级就好像一道门,这种关系可以用图1来表示。访问数据库对象许可权用户操作系统安全性 -l/n客户机SQL Server2008登录数据库数据库访问权限SQL Server 2008 服务器图 1 SQL Server 2008的安全性等级以通过这道门达到下一个安全等级。SQL Server 2008提供了

23、Windows身份和混合身份两种验证模式,每一种身份验证都有 一个不同类型的登录账户。无论哪种模式,SQL Server 2008都需要对用户的访问进行两个阶段的检验:验证阶段和许可确认阶段。1验证阶段用户在SQL Server 2008获得对任何数据库的访问权限之前,必须登录到SQLServer上,并且被认为是合法的。SQLServer或者Windows要求对用户进行验证。如果验服务器将拒绝用户登录证通过,用户就可以连接到SQL Server 2008上;否则,2008上,此时系统将检查用户是否2许可确认阶段用户验证通过后会登录到SQLServer1. Windows身份验证使用Window

24、s身份验证模式是默认的身份验证模式,有访问服务器上数据的权限。它比混合模式要安全得多。 当数据 库仅在内部访问时使用 Windows身份验证模式可以获得最佳工作效率。 在使用Windows身份 验证模式时,可以使用 Windows域中有效的用户和组账户来进行身份验证。这种模式下,域用户不需要独立的 SQL Server用户账户和密码就可以访问数据库。这对于普通用户来说是非常有益的, 因为这意味着域用户不需记住多个密码。 如果用户更新了自己的域密码, 也不 必更改SQLServer 2008的密码。但是,在该模式下用户仍然要遵从Windows安全模式的所有规则,并可以用这种模式去锁定账户、审核登

25、录和迫使用户周期性地更改登录密码。SQL Server 不要求提供当用户通过Windows用户帐户连接时,SQL Server使用操作系统中的 Windows主体标 记验证帐户名和密码。也就是说,用户身份由Win dows进行确认。密码,也不执行身份验证。窗口是,使用操作系统图 2 所示,就是本地账户启用 SQLServer Manage-ment Studio图 2 Windows 身份验证模式其中,服务器名称中MR代表当前计算机名称,Admi ni strator中的 Windows 主体标记进行的连接。是指登录该计算机时使 用的 Windows 账户名称。这也是 SQLServer 默认

26、的身份验证模式,并且比 SQLServer 身份 验证更为安全。 Windows 身份验证使用 Kerberos 安全协议,提供有关强密码复杂性验证的 密码策略强制, 还提供帐户锁定支持, 并且支持密码过期。 通过 Windows 身份验证完成的连 接有时也称为可信连接,这是因为 SQL Server 信任由 Windows 提供的凭据。Win dows省份验证模式有以下主要优点:1) 数据库管理员的工作可以集中在管理数据库上面,而不是管理用户账户。对用户账 户的管理可以交给 Windows 去完成。SQL Server 。2) Windows 有更强的用户账户管理工具。可以设置账户锁定、密码

27、期限等。如果不通 过定制来扩展 SQL Server ,SQL Server 则不具备这些功能。3) Windows 的组策略支持多个用户同时被授权访问2混合模式使用混合安全的身份验证模式,可以同时使用Windows身份验证和SQL Server登录。SQLServer 登录主要用于外部的用户,例如那些可能从 Internet 访问数据库的用户。可以 配置从 Internet 访问 SQL Server 2008 的应用程序以自动地使用指定的账户或提示用户输 入有效的 SQL Server 用户账户和密码。使用混合安全模式, SQLServer 2008 首先确定用户的连接是否使用有效的 SQLServer 用户账户登录。 如果用户有有效的登录和使用正确的密码, 则接受用户的连接; 如果用户有 有效的登录,但是使用不正确的密码,则用户的连接被拒绝。仅当用户没有有效的登录时,SQL Server 2008 才检查 Windows账户的信息。在这种情况下,SQ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论