




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綜合接入協議書
- 綠化修復協議書
- 配套公建協議書
- 競拍保證協議書
- 浴足店合作合同協議書
- 英國數據協議書
- 老李離婚協議書
- 干砌石擋墻外包協議書
- 道閘安裝協議書
- 外立面改造安全協議書
- 江西省交通安全知識講座
- 【生鮮電商發展探究國內外文獻綜述1800字】
- 杭州城市發展與歷史沿革
- 訂購單模板(訂貨單模板)
- 干漆膜(涂層)厚度檢測報告
- 國內外液壓機技術現狀及發展趨勢
- 指南針私享家版出租價格
- 2023-2024年整形外科學(副高)考試參考題庫(真題考點版)帶答案解析
- 廣東省中山市八年級下學期期末考試語文試題
- 雙減背景下高中語文優化作業設計實踐與研究
- 《企業財務現狀的杜邦分析-以大疆科技為例》開題報告(含提綱)2400字
評論
0/150
提交評論