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

下载本文档

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

文档简介

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

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

3、管理效率, 改善服务水准的重要手段之一。 所以作为 一有效的统计分析手段, 计算机管理系统具有明显的优势, 它在数据保存、 数据 交换等方面均能做到快速可靠,是手工操作所不能完成的。现利用 SQL Server2008 设计一个简单的酒店管理系统的数据库。 1、对酒店系统进行系统功能需求分析 酒店管理系统1 11 1 n r_ F r 1 房 态 管 理4 预订管理“ T 入住管理+ 厂I厂 *(2倾订单C ZX 入住单4 C I 倾订单 账单明细心( *收银管理“ 厂 J 厂 消黄信息V OCZ *C馬态信息C 系统流程图 2、数据库设计 根据系统的功能要求,主要构造以下几个表: (1)“楼

4、层信息”表:楼层编号、楼层名称。用途是保存楼层编号及名称,如表 表1 .“楼层信息”表 1所示 ZVVT-TH刑邑酒店管硒關库-dbo.攢訓宜 別宕数据类型 . - - - - -! iiy 丨楼K娴号;Et B H H . H H I J 他亘名称varctiarOO) II iri CREATE TABLE dbo.楼层信息( 楼层编号int NOT NULL, 楼层名称varchar ( 50 ) )ON PRIMARY NULL GO (2)“客房类型”表:类型编号、 拼房。用途是保存客房类型信息,如表 类型名称、价格、拼房价格、 2 所示 可超预订数、是否可以 数摒类型 冗祥Null

5、值 Illi HI l|-. imiBIIB Illi II II Illi varchar(5) n 樊型容称 yardiar(X3) s money !V1 money 0 deornaL(5p 0) J 杲否可拼房 bit s 表2.“客房类型”表 CREATE TABLE dbo 类型编号varchar 类型名称varchar .客房类型( (5) NOT NULL, (50 ) NULL, 价格mo neyNULL, 拼房价格moneyNULL, 可超预定数decimal ( 5, 0 ) NULL, PRIMARY KEY CLUSTERED ( 类型编号ASC )WITH ( P

6、AD_INDEX IGNORE_D UP _KEY = OFF, =OFF, ALLOW STATISTICS_NORECO MPUTE= OFF, ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON 是否可拼房bit NULL, CONSTRAINT PK_ 客房类型 P RIMARY )ON PRIMARY GO (3) “客房信息”表:客房编号、类型编号、楼层编号、额度人数、床数、客房描述、 备注、状态、是否可以拼房。用途是保存酒店所有客房信息,如表3所示 表3.“客房信息”表 ZWT-THINKJS店普理数蝎阵-dbo客房信團 数撼类型允讥M皿值 j喜宙

7、编号 varchar50) vardiar5) 楼层编号 int mt 床数 int 喜房描透 vardiar5Ci) 状态 varcharCS) hut CREATE TABLE dbo. 客房信息( 客房编号varchar (50) NOT NULL, 类型编号varchar (5) NOT NULL, 楼层编号intNOT NULL, 额定人数intNULL, 床数intNULL, 客房描述varchar (50) NULL, 状态varchar( 5) NULL, 是否可拼房bitNULL )ON PRIMARY 用途是散客订房间 (4) “预订单”表:预订单号、会员编号、客房类型、抵

8、店时间等。 时使用,如表4所示 表4.“预订单”表 2WT-THINK.酒店曾狸8牖阵-品6浜订单1 列窖数据类型 节艮定单号 V 曰dimrgO) 会负扁号1 int 嘗B类型 varcharfiji 抵店时闾 EmaHdatetiire 瞽店时间 smaBdateKne 卑拒状态 varctiarpO) 入住人S int 营宵编号 varchar(tO) 書房价格 nxjrfiy 入住伯格 money tfiln decird曲 2) 爵加床 bit 加床f介格 money 鞍收裁 money 我订人 vardiarCJD) 联栗电话 varcbar50) 撐作员 vardnarCtO)

9、业务员 varci-iar50) 预定单号 varchar (50) NOT NULL, 会员编号 int NULL, 客房类型 varchar (4) NOT NULL, 抵店时间 smalldatetime NOT NULL, 离店时间 smalldatetime NULL, 单据状态 varchar (20) NULL, 入住人数 int NULL, 客房编号 varchar (10) NULL, 客房价格 mon ey NULL, 入住价格 mon ey NULL, 折扣decimal (4, 2 ) NULL, 是否加床 bit NULL, 加床价格 mon ey NULL, 预收款

10、money NULL, CREATE TABLE dbo.预订单( 预订人 varchar (20) NULL, 联系电话varchar 操作员varchar 业务员varchar )ON PRIMARY (50) NULL, (10) NULL, (50) NULL GO (5) “预订单历史”表:预订单号、会员编号、客房类型、抵店时间、离店时间、单据 状态。用途是将预订单转入到入住单后,将预订单清除并导入到预订单历史。 (6) “入住单”表:入住单号、订单编号、会员编号、客房类型、抵店时间等。用途是 散客入住酒店时,信息可由预订单转入,如表6所示 表6.“入住单”表 ZWDTWMK酒店管理

11、轴库-册O.入性单* 数視宾型 varcKarpfi) varcKarfO) iht varchar C5) srnalldatetim gmalldatetifvie varchar CSO) int 列名 W入fi单号 l“r oh 预定单号 合员爛号 客廣类型 抚店时间 离唐时闾 单据状态 入住人數 客房煽母 嘗房价格 折扌口 是習加床 预收款 预订人 联垂电话 接作员 早餐 叫醴 vardT可 moTiev dedrneltf 2) bit morey vardTarfSO) vsrcartOi) varchia r 厉口) vsrchartOi) bit bit bit a a 7

12、a k i 0 a 0 0 0 I CREATE TABLE dbo varchar varchar int varchar 入住单号 预定单号 会员编号 客房类型 .入住单( (36) NOT NULL, (50 ) NULL, NOT NULL, (5) NULL, 抵店时间 离店时间 单据状态 入住人数 客房编号 客房价格 smalldatetime smalldatetime varchar int varchar mon ey NULL, NULL, NULL, 折扣decimal 是否加床 预收款 预订人 联系电话 操作员 业务员 bit mon ey varchar varcha

13、r varchar varchar (50) NULL, (20) NULL, (4, 2 ) NULL, NULL, NULL, (50 ) NULL, (50) NULL, (50) NULL, (50) NULL, NULL, 早餐 bit NULL, 叫醒 bit NULL, 保密 bit NULL )ON PRIMARY GO (7) “入住单历史”表:入住单号、订单编号、会员编号、客房类型、抵店时间等。用 途是入住单在收银结账后清除,并导入到入住单历史,如表7所示 表7.“入住单历史”表 ZV/r-THlN IC君店營库-0116入住单历史L 列名数拥类型 HHH H 卜I入住单号

14、 varchar(30) JillIII U Illi 11Illi IlliIlliIlliIlli dill1 義定单是 variarC3J) 会员编寻 int 容房类型 war char不) 抵店聘间 smallcifltetime 离店时间 snnallclatetsme 单攥娥态 varchar (50) 入S人数 int varchar pOJ 客房fC格 money CREATE TABLE dbo varchar varchar int varchar 入住单号 预定单号 会员编号 客房类型 抵店时间 离店时间 .入住单历史 (30) NULL, (30) NULL, NULL

15、, (5) smalldatetime smalldatetime NULL, NULL, NULL, 单据状态 入住人数 客房编号 客房价格 varchar int varchar mon ey (50) NULL, (20) NULL NULL, NULL, )ON PRIMARY GO (8) “账单明细”表: 用途是查询客户消费的明细单,如表 账单编号、 入住单号、消费内容、消费金额、消费时间、备注。 8所示 表8.“账单明细”表 CREATE TABLE dbo.账单明细( 账单编号 入住单号 消费内容 消费金额 消费时间 int varchar varchar mon ey NOT

16、 NULL, (50) (50) NULL, NULL, NULL, smalldatetime 备注varchar ( 100 ) NULL )ON PRIMARY NULL, GO (9) “账单明细历史”表:账单编号、入住单号、 注。用途是收银结账后,账单明细导入到账单明细历史,如表 消费内容、消费金额、消费时间、备 9 所示 刃MTTHIhllC酒店管團S据库-dboMWaal 列名数类型 单煽是 mt 111 11 111 11 1 丿 1 iiiH iiiHi milIlli Illi111 r i i i 入住单益 varchar (50) 消畏内容 varchar (50) 消

17、II金额 money 消费时间 smalldatetme 备注 varchar (IDO) 表9.“账单明细历史”表 ZWT-THINKja店普.-dboM单明细5吏; 数搦亮型 饰Null值 inri - II 1 Illiiiriiimil 1Illi IlliIlli1 1111 1 E b 11111 ri hill int 入住单号 s 消费内誓 闻 ndia巧 0) 研 消费金额 money Ivl 消费时闾 sniaJIdatetinie 2 CREATE TABLE dbo.账单明细历史 账单编号 入住单号 消费内容 消费金额 消费时间 int varchar varchar

18、mon ey NOT NULL, (50) (50) NULL, NULL, NULL, smalldatetime NULL )ON PRIMARY GO 表中出现的数据类型含 -2人63至2人63之间,占 以上8个表可以简略地描述出酒店管理信息系统数据库的设计。 义如下:int是一种存储整型数据的数值型数据类型,存储范围在 用4个字节的储存空间。 bit是用于存储0和1值的数据类型,该类型的数据列只能存储0或1中的一个, 适合用于存储需要标识“是”或“否”两种状态的数据。 money 是用于储存范围在(-922337203685477.5808)-( 922337203685477.580

19、8) 之间的币值数据,精度为币值单位的万分之一,占用8个字节的存储空间。但是该数据类型 中存储的数据并不包括货币符号。 smalldatatime 与datatime类似,但数值范围小,其范围为1900年1月1日至 2079年6月6日,占用的存储空间为4字节。 varchar (n)是一种比char更加灵活的数据类型,同样用于表示字符数据,但是varchar 可以保存可变长度的字符串。其中n代表该数据类型所允许保存的字符串的最大长度,只要 长度小于该最大值的字符串都可以被保存在该数据类型中。因此,对于那些难以估计确切长 度的数据对象来说,使用varchar数据类型更加明智。 3、分析数据完整性

20、 在SQL中,数据完整性有以下几种 1) 域完整性:又称列完整性,指定列的数据输入是否具有正确的数据类型、格式以及 有效的数据范围 2) 实体完整性:又称行完整性。这里的实体是指表中的记录,一个实体就是表的一条 记录。实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要有一个非空且不 重复的主键。实体的完整性可通过建立主键约束、唯一约束、标识列、唯一索引等措施来实 现。 3)参照完整性:又称为引用完整性(关系完整性),以保证主表中的数据与从表中的数 据的一致性,关系完整性是通过定义外键与主键之间或外键与唯一键之间的对应关系实现 的。 约束包括以下几种类型: UNIQUE 约束 DEFA

21、ULT PROMARY KEY 约束 FOREIGN KEY 约束 NOT NULL 约束 约束CHECK约束 主键约束 表中常有一列或列的组合, 表的主键。通过主键可以强制表的实体完整性。定义了主键约束的列具有以下特点: 每一个表只能定义一个主键 主键值不可空(NULL) 主键值不可重复, 若主键是由多列组成, 某列上的值可以重复, 但多列的组合值必须是 唯一的。 定义和删除主键的方法:1、使用表设计器操作 例如:对入住单号进行主键设置 其值能唯一标识表中的每一行,这样的一列或列的组合称为 i - dbo.A住单r那盖资源昔建器详壬 数据类型 网入住单号 varcharQe) 预定单号 vf

22、lrchar(50i) 1会员漏号 int !容B类型 varcharfS) 抚店时间 smalldatetime 离店时间 smalldfltetifne 1单据状态 vard-iar(5Qi)l i网 国 ZWT-TH1N less店管理數J剧 Jl fS d bo客雋信息 dbd楼星信息 dbo入住单 国O列 B Q礙 f 0 为束 E 口心器 s La蛊别 0 Q统计信S 2、使用T-SQL语句定义主键约束 CONSTRAINT PK_ 入住单PRIMARY ( 入住单号ASC KEY CLUSTERED )WITH (PAD_INDEX = OFF, STATISTICS_NOREC

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

24、需要对不同的列定义若干个唯一约束 主键约束字段的值不允许为 NULL,而唯一约束字段的值可为 NULL 一般定义主键约束时, 系统会自动建立索引, 索引的默认类型为聚族索引;定义唯一约 束时,系统会自动建立一个非聚族索引。 例如:对“预订单”创建一个名称为“预定单 1”的唯一约束 IE圧牺现有主/唯逐養引的怎性. 1册障 口 - 妊一健 利 發忑单号(ASCj mu 曰怖识 15汩*丄 曰 EiSi+K 百. B sate确淀 P fUMARY -r- 天遢(G d 7 KJSKW 正在淪辑现有主/唯一引的属性. B僅絢 Xif 秦引列 焉走用亍曲索引的列钿E序趣序g: 列皂 蘇单号 CONS

25、TRAINT 预订单 1 UNIQUE NONCLUSTERED ( 预定单号ASC )WITH (PAD_INDEX= OFF, STATISTICS_NORECOIMPUTE= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY 检查约束 检查(CHECK )约束用于限制输入到一列或多列的值的范围,从逻辑表达式判断数据 的有效性,也就是说一个字段的输入内容必须满足CHECK约束约束的条件,否则,数 据无法正常输入,从而保证数据的域的完整性 例如:对“入住单”创建检查约束 CHE

26、CK *0 CK_Ae* 正也陶斬的CHECK约東前a忸 零賽知a?E 超云”,碣才腳e 覺新的CHECK肉5F. fl U -. 一 co住里 M潮j 3责矚+器 虽制用于 INSERT iO UPDATE B 鯛用于觀1 在合.建或至新启用对检童现每呈 外键约束 一个数据库中可能包含多个表,可以通过外键(FOREIGN KEY )使这些表关联起来,外键 是由表中一列或多列组成的。例如在A表中有一个字段的取值只能是B表中某字段的取值 之一,则在 A表该字段上创建外键约束,A表称为从表,B表称为主表。定义外键约束的 列有以下特点: 外键的取值可以为空(NULL) 外键的取值可以重复,但必须是它

27、所引用列(主表中)的取值之一。弓I用列必须是定义 了主键约束或唯一约束的列。 表和列 人性单 入性单历圭 -1-I-1 入住笙号 取醫 4、 数据表图形 liS a a IJE Reportserver SJJ ReportServerTempDE EJ库 E a数娱摩去票图 表 口 dbd售展类里 口 Tbd吾房信量 d bo.楼层管息 口 dbd入住姜 n BliBMgjgfe 口 dg施r里 n dbd账单阴咼厉史 口同文词 可輪範 Service Broker a 辺 zd a 曲 a F MmWd” 7W ALLi NJLL ALii Alli m 礙话 腓员 业赖 嗥 3O0M 1

28、5267351111 m TO lOOfiOOO 衣天 15HS7S907 W /UL 50,0000曲 /UL Mi flW 股| WZ TO ML Ml Mi 5、 数据库安全管理 容介格 折扣 是否加床 3 1206 5001.0000 NULL 1 1103 3CO.OOOO AWE : 1006 ao.oooo 冋 ML Attf ML 由于软件和网络存在漏洞,对于酒店管理信息系统我们必须采取有效的安全管理措施。 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。 系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和

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

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

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

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

33、阶段用户验证通过后会登录到SQL Server 2008上,此时系统将检查用户是否 有访问服务器上数据的权限。 1. Windows身份验证 Windows身份验证模式可以获得最佳工作效率。在使用Windows Windows域中有效的用户和组账户来进行身份验证。这种模式 SQL Server用户账户和密码就可以访问数据库。这对于普通用户 使用Windows身份验证模式是默认的身份验证模式,它比混合模式要安全得多。当数 据库仅在内部访问时使用 身份验证模式时,可以使用 下,域用户不需要独立的 来说是非常有益的,因为这意味着域用户不需记住多个密码。如果用户更新了自己的域密码, 也不必更改SQL

34、Server 2008的密码。但是,在该模式下用户仍然要遵从Windows安全模式 的所有规则,并可以用这种模式去锁定账户、审核登录和迫使用户周期性地更改登录密码。 当用户通过Windows用户帐户连接时,SQL Server使用操作系统中的 Windows主体标 记验证帐户名和密码。也就是说,用户身份由Windows进行确认。SQL Server不要求提供 密码,也不执行身份验证。 图2所示,就是本地账户启用 SQL Server Manage-ment Studio窗口是,使用操作系统中 的Windows主体标记进行的连接。 Server 200SR2 V EXIT弓1单 v H曲豪任*

35、V 图2 Windows身份验证模式 其中,服务器名称中MR代表当前计算机名称,Administrator是指登录该计算机时使用 的Windows账户名称。这也是 SQL Server默认的身份验证模式,并且比SQL Server身份验 证更为安全。 Windows身份验证使用 Kerberos安全协议,提供有关强密码复杂性验证的密 码策略强制,还提供帐户锁定支持,并且支持密码过期。通过Windows身份验证完成的连 接有时也称为可信连接,这是因为SQL Server信任由 Windows提供的凭据。 Windows省份验证模式有以下主要优点: 1) 数据库管理员的工作可以集中在管理数据库上面,而不是管理用户账户。对用户账 户的管理可以交给 Windows去完成。 2) Windows有更强的用户账户管理工具。可以设置账户锁定、密码期限等。如果不通 过定制来扩展 SQL Server,SQL Server则不具备这些功能。 SQL Server。 3) Windows的组策略支持多个用户同时被授权访问 2.混合模式 使用混合安全的身份验证模式,可以同时使用 Windows身份验证和SQL Server登录。 SQL Server登录主要用于外部的用户,例如那些可能从In ternet访问数据库的用户。可以配 置从In ternet访问SQL Server 2008的应用程序

温馨提示

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

评论

0/150

提交评论