




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2017届课程设计数据库原理课程设计说明书设计题目: 酒店管理信息系统 学生姓名:李双雲 ,厉涛 学 号:5011213221 ,5011213210 所属学院:信息工程学院 专 业: 计算机科学与技术 班 级: 17-2 指导教师: 杜义君 教师职称: 讲师 目录一、需求分析11.1 业务描述11.2 数据分析21.3人员分工3二、概念模型设计3三、逻辑模型设计33.1关系模型:43.2规范化分析43.3视图设计4四、物理设计44.1表汇总54.2索引的设计6五.物理实现75.1基本表的创建75.2视图的创建105.3存储过程、函数及触发器的设计125.4基本
2、查询125.5 数据更新14六、安全性设计156.1防止用户直接操作数据库的方法156.2角色与权限16七、系统特点与不足167.1优点167.2需进一步改进的地方17八、总结188.1课程设计主要问题及解决办法198.2收获与建议20数据库课程设计 第 16 页一、需求分析 1.1 可行性分析【摘要】 当今社会,酒店住宿对于我们来说是非常普遍的。作为服务业的产物,酒店这个行业的竞争越来越激烈。想要在这个行业占有一席之位,优秀的管理手段这是一种不可或缺的要点之一。现在的酒店多数集购物住宿饮食休闲娱乐于一身,接受信息量大,管理难度也大。手工管理信息再也不能满足管理
3、者的需求。因此需要有一个比较完整的管理信息系统,来帮助管理者更好的管理酒店。通过这个管理信息系统,可以提高管理者的管理水平,提高酒店的服务水平,对酒店各个方向的情况进行快速准确的分析,缩减时间,节省酒店的管理成本,通过这个管理信息系统,进一步贯彻全面质量管理,提高开会客户的满意程度度,建立酒店全面竞争的一些优势。所以一个好的酒店信息管理系统对酒店来说是有需要的,也是必须得,所以市场肯定会出现对酒店管理信息系统的需求,因此我们选择了酒店管理信息系统的开发。1.2 业务描述 1、某酒店信息管理系统需要如下信息:房间:编号、状态、预定时间、单价、类型等。客户:编号、姓名、性别、身
4、份证号、订房编号、房间号、入住时间、住房类型、付款方式、订餐编号,预订桌子的编号付款状态等。职员:编号、性别、职位、电话、入职时间、基本工资、离职时间等。餐饮:种类、价格、编号等。餐桌:编号、位置、类型、状态等。要求:一个房间在同一时间只能被一个客户预定,一个客户可以同时预定多个房间,一个餐桌在同一时间只能被一个客户预定,一个客户可以预定多个餐桌。1、某酒店信息管理系统需要如下信息:房间:编号、状态、预定时间、单价、类型等。客户:编号、姓名、性别、身份证号、订房编号、房间号、入住时间、住房类型、付款方式、付款状态等。职员:编号、性别、职位、电话、入职时间、基本工资、离职时间等。餐饮:种类、价格
5、、编号等。餐桌:编号、位置、类型、状态等。数据项 含义 类型长度备注 housenumber房间编号char6housestate房间预订状态smallint1booktime预订时间time10unitprice房间单价float4character特点varchar30username用户姓名varchar10 Idcard身份证号varchar20booktime预定时间time10paystate付款状态smallint1payway付款方式varchar5tablenumber餐桌编号Char5tablevolume几人桌int2locatio
6、n位置 int2tablestate餐桌预订情况Smallint1staffsex员工性别varchar2staffphone职员电话char11position职位varchar 10staffsalary职工工资int6worktime工作时间time3cateringtype餐饮种类char10cateringprice餐品单价int10cateringnumber餐品编号int3housetype住房类型char5ueantnumber客户预订桌子的编号varchar10hunmber客户预订房间编号char10要求:一个房间在同一时间只能被一个客户预定,一个客户可
7、以同时预定多个房间,一个餐桌在同一时间只能被一个客户预定,一个客户可以预定多个餐桌。1.2 数据分析1、数据项分析: 2、 数据结构分析: 数据结构 组成成员房间 房间编号+单价+预订状态+住房类型+被预定的时间餐桌餐桌编号+位置+被预定状态+类型(几人桌)客户客户姓名+身份证号+预订情况(房间+餐桌+菜品)+预订时间+付款状态+付款方式职工性别+电话+职位+职员编号+工资+工作时间+入职时间+离职时间 餐饮类别+单价+编号1.3人员分工甲:乙:二、概念模型设计
8、160;1 、E-R图,如图1所示。11图22、 用PowerDesigner绘制图1所示3、 ER图对应的Conceptural Data Modal,如图2所示。三、逻辑模型设计 3.1关系模型: 房间 房间编号+单价+预订状态+住房类型+被预定的时间餐桌餐桌编号+位置+被预定状态+类型(几人桌)客户客户姓名+身份证号+预订情况(房间+餐桌+菜品)+预订时间+付款状态+付款方式+性别+接待员工编号职工性别+电
9、话+职位+职员编号+工资+工作时间+入职时间+离职时间 餐饮类别+单价+编号3.2规范化分析 1、 房间关系中,房间编号为主键,其中函数依赖关系有:房间编号单价,房间编号住房类型,房间编号预订状态,房间编号预订状态因为在房间关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以房间关系是属于3NF。2、餐桌关系中餐桌编号主键,其中函数依赖有:餐桌编号类型,餐桌编号位置,餐桌编号预订状态。因为在餐桌关系中非不存在主属性对码的部分函数依赖和传递函数依赖,所以餐桌关系是属于3NF。3、 客户关系中身份证号,预订房间编号,预订餐桌编号,预订餐饮编号可以作主键,客户关
10、系中客户编号可作为主键,身份证号,预订房间编号,预订餐桌编号,接待员工编号,预订餐饮编号,作为主键,在此选用客户编号为主键。其中函数依赖有:客户身份证号性别因为客户关系中不存在非主属性对码的部分函数依赖和传递函数依赖关系,所以客户关系是属于3NF。4、员工关系中员工号为主键,其中函数依赖有:工号姓名,工号员工电话,工号职位,工号薪水,工号工作内容。因为业务员关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以业务员关系是属于3NF。5、餐饮关系中餐饮编号可以为主键,餐饮编号价格,餐饮编号类型,餐饮编号菜名。因为餐饮关系中不存在非主属性对码的部分函数依赖和传递函数依赖,所以餐饮关系是属于3
11、NF。3.3视图设计1. 视图要有助于客户查询出可以预订的房间的信息2. 方便公司管理阶层容易看到职员职能,及工资。 3.方便员工查询房间预订状态及时间,方便他们及时做好卫生打扫工作四、物理设计 4.1表汇总 数据库中涉及的表表名对应关系说明stafftable员工表usertable用户表eattable餐桌表housetable房间表statertable餐饮表stafftable表属性名含义数据类型长度说明staffsex员工性别varchar2男或女staffphone职员电话char11position职位varchar 10staffsalary职工工
12、资int6staffnumber员工编号char10主键stcent员工工作内容varchar10餐桌表属性名含义数据类型长度说明tnumber餐桌编号Char5主键tablevolume几人桌int2location位置 int2tablestate餐桌预订情况Smallint1usertable表属性名含义数据类型长度说明username用户姓名varchar10 Idcard身份证号varchar20主键booktime预定时间time10paystate付款状态smallint1payway付款方式varchar5tnumber餐桌编号Char5主键hnumber房
13、间编号char10Not null,主键,参照房间表的hnumberstaere餐饮编号char10主键,参照餐饮表的主键snumber接待员工的编号char10主键,参照员工表的主键housetable表属性名含义数据类型长度说明housenumber房间编号char6housestate房间预订状态smallint1Not null 参照housetable 中的hnumberbooktime预订时间time10unitprice房间单价float4character特点varchar30餐饮表属性名含义数据类型长度说明cateringtype餐饮种类char10主键cateringpri
14、ce餐品单价int10cateringnumber餐品编号int34.2索引的设计1. 首先要方便客户查询剩余房间的类型,单价等。2. 方便公司管理阶层容易看到职员职能,及工资。3. 方便员工查询房间预订状态及时间,方便他们及时做好卫生打扫工作。五.物理实现 5.1基本表的创建 /*创建员工表*/create table stafftable(stname varchar(10) not null,stnumber char(10) primary key,stphone char(11),stposition varchar(5),stsalery int ,stwork
15、time datetime,stworkcontent varchar(20)/房间表create table housetable(hnumber char(10) primary key,hstate char check (hstate='忙'or hstate='闲'),hbooktime datetime,hunitprice float(5),htype int )/客户表create table usertable(uname varchar(10) not null,uidcard char(20) primary key,ubooktime d
16、atetime,paystate smallint ,payway varchar(5),/*受理员工编号*/hnumber char(10) ,cnumber char(5),tnumber char(5),snumber char(10),/*建立表之间的联系*/Pirmary key(uidcard,hnumber,cunmber,thnumber,sunber),foreign key(hnumber) references housetable(hnumber),foreign key(tnumber) references eattable(tnumber),foreign key
17、(cnumber) references catertable(cnumber),foreign key(snumber) references stafftable(stnumber),)/餐桌表create table eattable(tnumber char(5) primary key,tvolume int check(tvolume<30),tlocation varchar(6) not null,tstate smallint)/餐饮表create table catertable(cnumber char(5) primary key,cname varchar(6)
18、,ctype char(5),cprice int ) /*创建视图*/*创建以现金为付款方式的视图 方便客户查询*/select *from usertablecreate view vusertable (uidcard 客户身份证号 ,uname 客户名)asselect uidcard,uname from usertablewhere payway='现金'/*创建一个车库管理员的视图*/create view stcontent (stname,stnumber,stphone)asselect stname,stnumber,stphone from s
19、tafftablewherestposition='车库管理员'/*创建一个接待员与用户的视图 入住005号房间是谁接待的*/create view userstaff(uname,stnumber,stname)asselect uname,usertable.stnumber,stnamefrom usertable,stafftablewhere usertable.stnumber=stafftable.stnumber and hnumber='005'/*创建视图*/*创建以现金为付款方式的视图 方便客户查询*/select *from userta
20、blecreate view vusertable (uidcard 客户身份证号 ,uname 客户名)asselect uidcard,uname from usertablewhere payway='现金'5.3存储过程、函数及触发器的设计 /*存储过程*/execute u uname ,stnumbergocreate proc usertable1(uname varchar(10),uidcard char(20),hnumber char(10)as select uname,stnumber,hnumberfrom usertableexecute
21、 usertable1 uname,uidcard,hnumber Go/*存储过程2*/create proc u(stsalery float)as select uname,stnumberfrom usertableexecute u uname ,stnumbergo/*触发器当员工编号被修改时 弹出stnumber modified*/Gocreate trigger st_triggeron stafftablefor updateasif update (stnumber)print'stnumber modified'/*创建一个当现在日期超过预订日期则清除预
22、订信息 */Create trigger selecttimeOn usertableFor deleteasIf delete(select hbooktime fromUserable where ubooktime<='2015-6-7')go/*以用户身份证号与预订房间的状态为基础创建索引*/create unique index in_housetable on usertable (uidcard,hnumber)/*以用户身份证号与预订房间编号,价格为基础创建索引*/create unique index in_housetableon usertable
23、(uidcard,hnumber,huntprice)/*下面的 usertable 表的 hnumber 列创建索引,并且强制唯一性*/SET NOCOUNT ONUSE pubsIF EXISTS (SELECT * FROM hnumber_SCHEMA.TABLES WHERE TABLE_NAME = 'usertable')DROP TABLE usetableGOUSE pubsIF EXISTS (SELECT name FROM sysindexes WHERE name = 'hnumber')DROP INDEX emp_pay.emplo
24、yeeID_indGO/*4.2索引的设计4. 首先要方便客户查询剩余房间的类型,单价等。*/Create unique index konghouse on housetable ( housestate,hunitprice);5. 方便公司管理阶层容易看到职员职能,及工资。Create unique index index_yuangong onStafftable (stsalery,stworkcontent);/*/5.4基本查询3.1查询/* 1>查询单人间的单价*/select hunitpricefrom housetablewhere htype='单人间
25、39; /* 2>查询张三丰的入职时间和职位*/ select stworktime,stpositionfrom stafftablewhere stname='张三丰'/* 3>查询九楼空闲的桌子的编号*/select tnumberfrom eattablewhere tlocation='九楼'and tstate='0'/* 4>查询单价在100元以下的素菜名称*/select cnamefrom catertablewhere ctype='素' and cprice<'100'
26、 /* 5>查询杨过的房间号和身份证号以及付款状态*/select hnumber,uidcard,paystatefrom usertablewhere uname='杨过'/* 6>查询东方不败预订的房间的所有信息*/select *from housetablewhere hnumber in(select hnumberfrom usertablewhere uname='东方不败') select *from housetable,usertablewhere housetable.hnumber=usertable.hnumber and
27、 uname='东方不败'/* 7>查询郭靖预订的房间单价,餐桌位置,菜单价*/select hunitprice,tlocation,cpricefrom housetable,eattable,catertable,usertablewhere housetable.hnumber=usertable.hnumber and eattable.tnumber=usertable.tnumber and umber=umberand usertable.uname='郭靖'/* 8>查询预订004号房间的客户是谁接待的 日期*/select stn
28、amefrom stafftablewhere stnumber in(select stnumberfrom usertablewhere hnumber='004'and hbooktime=2015-3-7)/*某个客户的消费总金额*/* 9>查询3月7号预订房间的人数*/select count(distinct uidcard)from usertable/* 10> 查询公司每月支付的薪水*/select sum(stsalery) 公司月支付的工资from stafftable11/*查询某天的住房收入*/select sum(hunitprice)
29、from housetablewhere hbooktime='2015-3-5'12./*查询某个客户所有的3-5日预订情况及对应的价格*/select uname, hunitprice,hbooktime,cpricefrom housetable,usertable,catertablewhere housetable.hnumber=usertable.hnumber and umber=umberand uname='杨过' and hbooktime='2015-3-7'5.5 数据更新/*数据插入 删除,更新*/insert in
30、to stafftable values ('段誉','7000010','1555555555','服务员','8000','2015/3/7','服务');update stafftable set stsalery='4000'where stname='令狐冲'delete from usertable where uname='杨过'/*插入一个新的客户*/insert into usertable(uidcard,hnumb
31、er) values ('5555566661','002',)/*/Update housetable/*当房间预订信息时间小于当前时间则改成null*/update housetable set hbooktime=(select hbooktimefrom usertablewhere hbooktime<2015-3-7)六、安全性设计 6.1防止用户直接操作数据库的方法 /*创建登陆*/exec sp_addlogin 'st'exec SP_addlogin 'ceo'exec sp_addl
32、ogin 'kehu'exec sp_addlogin 'yuangong'/*创造用户*/exec sp_adduser 'st'exec sp_adduser 'ceo'exec sp_adduser 'kehu'exec sp_adduser 'yuangong'/*给客户一个修改房间表的权限*/grant insert on housetableto kehuGRANT select ON view_flight TO 'st'
33、;/*将查询视图usertable的权限授予st*/grant select on userstaff to st/*将查询表,修改stafftable的权限授予*/grant select,update on stafftable to ceo/*将查询dbo.payway_usertable的权限授予客户*/grant select on payway_usertable to kehu/*给员工修改housetablebiao的权限*/grant update on housetable to yuangong/*给用户权限*/grant updateon stafftableto st
34、use hotelgrant updateon housetableto stgrant update,delete,inserton housetableto ceo/*收回权限*/revoke updateon stafftbale1From st七、系统特点与不足7.1优点能够基本完成酒店中的一些日常管理中的功能,能够记录谁接待的客户比较多,容易统计绩效,容易判断哪些员工比较勤劳,容易确定给谁发奖金,可以方便的统计出某天的收入,能够方便的查询出,哪天被预定出去的房子最多,哪些住房类型比较受欢迎,便于酒店的后期发展规划,对于客户来说,首先可以方便的查询出住房的一些信息,便于决定是否去预订房
35、间,而且还可以预订自己喜欢的食物,以及预订自己较为喜欢做的餐桌位置。对于管理者来说,员工信息比较完善,可以方便的的到自己想要得要的一些员工信息。修改员工信息也比较方便,对于员工来说,可以较为清楚的得到房间实时的信息,便于对房间的管理,由于提供了预订服务,减少了不必要的时间浪费,增加了效率,也方便员工提前做好准备,防止由于客户太多而造成的不必要的出错。7.2需进一步改进的地方当一个客户想要预订多间住房时,会提示不被允许,但是由于事实上应该一个客户可以预订很多间房子,这里是一个需要改进的地方,还有就是当一个客户预订多种菜品是会出现一定的数据冗余,这是一个有问题的一个地方。实际应用中,会出现功能不够
36、用的情况,例如如何控制一间房子被同时预订的情况。八、总结8.1课程设计主要问题及解决办法 在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。本次设计的主要问题是存储过程和触发器的设计,通过查阅相关的书籍和资料还有帮助,以及请教老师和同学,最后解决了。8.2收获与建议付出和收获总是并存的,这次的课程设计基本告一段落,在课程设计中,有知识的收货,这肯定是一种必然,在知识上,我们走了一遍一个真正数据库开发的一个过程,首先明白了数据的开发流程,而不是看课本上的那几条所拥有的理解,其次就是学习到了一些原来基本不会的知识点,触发器,函数,及存储过程等,然后就是学到了如何和搭档一起高效的完成一个工作,而不是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕思离婚案子女抚养权及财产分割协议书
- 海鲜餐厅承包经营与供应链管理合同
- 矿山开采安全生产监督合同范本
- 护理教学师资培养与管理
- 文化艺术品交易居间服务协议
- 城市更新改造项目厂房租赁与配套服务协议
- 资源开发拆伙利益分配及环境保护协议
- 出租车企业司机劳动合同与职业培训及发展合同
- 保险行业财务外包合作协议范本
- 党政机关与高新技术产业合作研发合同
- 物理八年级下册《第3节 摩擦力》课件
- (高清版)DZT 0073-2016 电阻率剖面法技术规程
- 中医养生祛湿
- 金属废料加工的废料分类与分拣技术
- 贷款贷款信用证授信协议书
- 人工智能伦理导论- 课件 3-人工智能伦理
- JY-T 0467-2015 初中体育器材设施配备标准
- 3D扫描与模型重建
- 幼儿园安全教育课件:《私自离园危险多》
- 县政府工作调动文件范本
- 特种设备风险管控清单
评论
0/150
提交评论