計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文_第1頁
計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文_第2頁
計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文_第3頁
計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文_第4頁
計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

附件 1: 學(xué) 號(hào): 2011131118 課 程 設(shè) 計(jì) 課程名 數(shù)據(jù)庫系統(tǒng)概論 題 目 酒店管理系統(tǒng) 目 錄 . 錯(cuò)誤 !未定義書簽。 引言 . - 2 - 一 .系統(tǒng)分析階段 . - 4 - 1.1 系統(tǒng)分析階段的目標(biāo) . - 4 - 1.2 基本信息要求 . - 11 - 1.3 基本處理要求 . - 11 - 1.4 輸出顯 示或者打印表格信息 . - 11 - 1.5 安全性和完整性要求 . - 12 - 二 .需求分析階段 . - 4 - 2.1 業(yè)務(wù)流程圖 . - 15 - 2.2 數(shù)據(jù)流圖 . - 18 - 2.3 數(shù)據(jù)字典 . - 19 - 三概念設(shè)計(jì)階段 . - 40 - 3.1 任務(wù)和目標(biāo) . - 15 - - 1 - 3.2 階段結(jié)果 . - 18 - 四邏輯設(shè)計(jì)階段 . - 40 - 4.1 數(shù)據(jù)庫模式定義 . - 15 - 4.2 用戶子模式定義 . - 18 - 五物理設(shè)計(jì) . - 40 - 5.1 系統(tǒng)功能 . - 15 - 5.2 程序流程圖 . - 18 - 5.3 實(shí)體、聯(lián)系表 . - 15 - 5.4 用戶子模式定義 . - 18 - 六實(shí)施階段 . - 40 - 6.1 創(chuàng)建數(shù)據(jù)庫 . - 15 - 6.2 建立數(shù)據(jù)表 . - 18 - 6.3 建立視圖 . - 15 - 6.4 創(chuàng)建存儲(chǔ)過程 . - 18 - 6.5 創(chuàng)建觸發(fā)器 . - 15 - 6.6 插入具體數(shù)據(jù) . - 18 - 七系統(tǒng)調(diào)試、測(cè)試 . - 40 - 7.1 基本表和視圖查看 . - 15 - 7.2 檢驗(yàn)部分存儲(chǔ)過程 . - 18 - 7.3 檢驗(yàn)部分觸發(fā)器 . - 15 - 八心得體會(huì) . - 40 - 九存在的問題與建議 . - 40 - 十參考文獻(xiàn) . - 40 - 附加 . - 40 - 1 存儲(chǔ)過程匯總表 . - 15 - 2 觸發(fā)器匯總表 . - 18 - - 2 - 引言 隨著全球一體化使酒店管理業(yè) 更 加豐富多樣化,市場(chǎng)更加廣闊多渠道的同時(shí),酒店管理業(yè)更面臨著日趨激烈的競(jìng)爭(zhēng)環(huán)境和不斷攀升的客戶期望,迫使業(yè)內(nèi)人士不斷進(jìn)一步尋求擴(kuò)大酒店客房銷售,改進(jìn)服務(wù)質(zhì)量,降低管理成本和提升客戶 滿意度的新法寶來增強(qiáng)酒店管理業(yè)的核心競(jìng)爭(zhēng)力。其中最有效的手段之一就是大規(guī)模應(yīng)用先進(jìn)的信息化技術(shù),變革傳統(tǒng)意義上的酒店客房競(jìng)爭(zhēng)方式和經(jīng)營管理模式以進(jìn)而贏得新競(jìng)爭(zhēng)優(yōu)勢(shì)。 本文以酒店客房管理系統(tǒng)為例,對(duì)客戶的要求進(jìn)行詳細(xì)詢問,調(diào)查酒店的組織機(jī)構(gòu),各部門的業(yè)務(wù)活動(dòng)。并在上述活動(dòng)后明確用戶對(duì)系統(tǒng)的信息要求、處理要求、安全性及完整要求。明確系統(tǒng)邊界 , 進(jìn)行詳盡的需求分析后,將系統(tǒng)劃分為訂房退訂模塊、入住模塊、換房模塊、退房模塊、財(cái)務(wù)統(tǒng)計(jì)模塊。按照數(shù)據(jù)庫設(shè)計(jì)流程用業(yè)務(wù)流程圖、數(shù)據(jù)流程圖 、 數(shù)據(jù)字典詳盡確切的表達(dá)客房管理的工作 流程。 通過 概念模型設(shè)計(jì),邏輯模型設(shè)計(jì),物理設(shè)計(jì) , 實(shí)施階段 , 系統(tǒng)調(diào)試、測(cè)試 ,建立一個(gè)能滿足客房管理要求的方便實(shí)用的數(shù)據(jù)庫系統(tǒng)。 - 3 - 一 .系統(tǒng)分析階段 1.1 系統(tǒng) 分析階段的目標(biāo) : 1.了解酒店客房管理的基本內(nèi)容; 2.綜合理解酒店客房管理各層管理人員的 不 同需求; 3.了解酒店客房管理的基本業(yè)務(wù)流程; 4.了解酒店客房人工管理模式與信息系統(tǒng)的工作概況,以及它們之間的區(qū)別; 5.通過調(diào)查和與酒店客房管理人員的交流,了解用戶對(duì)酒店客房管理系統(tǒng)的業(yè)務(wù)要求 綜合以上分析,創(chuàng)建一個(gè)比較優(yōu)化的酒 店管理系統(tǒng),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)錄入、存儲(chǔ)、更新、查詢等操作。 1.2 基本信息要求: 系統(tǒng)的處理對(duì)象是顧客的預(yù)訂和退訂信息管理、顧客的入住信息管理、顧客的換房信息管理、顧客的退房信息管理和財(cái)務(wù)統(tǒng)計(jì)信息管理。 系統(tǒng)的處理對(duì)象涉及以下幾個(gè)方面的信息: 顧客基本信息( guest):顧客編號(hào),顧客姓名,顧客性別,顧客身份證號(hào),顧客電話,顧客地址,顧客預(yù)交款,顧客積分,顧客的折扣度,顧客余額。 客房基本信息( RoomInformation):客房編號(hào),客房類型,客房?jī)r(jià)格,客房樓層,客房朝向。 消費(fèi)項(xiàng)目基本信息( Yproject):消費(fèi)項(xiàng)目編號(hào),消費(fèi)項(xiàng)目名稱,消費(fèi)項(xiàng)目?jī)r(jià)格。 客房物品基本信息( RoomObjectInformation):客房物品編號(hào),客房物品名稱,客房物品原價(jià),客房物品賠償倍數(shù)。 客房狀態(tài)信息( RoomState):客房編號(hào),顧客編號(hào),入住時(shí)間,退房時(shí)間,預(yù)訂入住時(shí)間,預(yù)訂退房時(shí)間,入住價(jià)格,客房狀態(tài)修改時(shí)間,標(biāo)志位。 - 4 - 消費(fèi)信息( Consumelist):顧客編號(hào),消費(fèi)項(xiàng)目編號(hào),消費(fèi)項(xiàng)目數(shù)量,消費(fèi)時(shí)間。 物品損壞信息( ReturnObject):顧客編號(hào),客房物品編號(hào),客房編號(hào),損壞個(gè)數(shù),損壞時(shí)間。 1.3 基本處理要求: 1.能夠存儲(chǔ)一定數(shù)量的顧客信息,并方便有效的進(jìn)行相應(yīng)的顧客數(shù)據(jù)操作和管理,這主要包括: 1)顧客信息的錄入,刪除和修改。 2)顧客信息的關(guān)鍵字檢索查詢。 2.能夠?qū)︻櫩偷念A(yù)訂退訂信息,入住信息,換房信息,退房信息,消費(fèi)信息和損壞物品信息進(jìn)行相應(yīng)的操作,這主要包括: 1)顧客預(yù)訂退訂,入住,換房,退房的登記,刪除及修改(即對(duì)房態(tài)信息的登記,刪除和修改)。 2)顧客消費(fèi)信息的登記,刪除及修改。 3)顧客損壞物品的登記,刪除及修改。 4)顧客消費(fèi)信息的匯總。 1.4 輸出顯示或者打印表格信息 對(duì) 于 查詢 、 統(tǒng)計(jì)的結(jié)果能夠列表顯示。 1.5 安全性和完整性要求 能夠提供一定的安全機(jī)制,提供數(shù)據(jù)信息授權(quán)訪問,修改和刪除,防止隨意查詢,修改及刪除。具有可共享、冗余度小、數(shù)據(jù)獨(dú)立性強(qiáng)、可拓展的特點(diǎn)。 二 .需求分析階段 需求分析簡(jiǎn)單地說就是分析用戶的要求。 也就 是 通過調(diào)查、收集與分析,獲得用戶對(duì)數(shù)據(jù)庫的信息要求、處理要求、安全性與完整性要求。 2.1.業(yè)務(wù)流程圖 ( 1)預(yù)訂退訂業(yè)務(wù)流程圖 圖 1.1 預(yù)訂退訂業(yè)務(wù)流程圖 - 5 - ( 2)入住業(yè)務(wù)流程圖 ( 3)退房業(yè)務(wù)流程圖 ( 4)換房業(yè)務(wù)流程圖 2.2.數(shù)據(jù)流圖 ( 1) 頂層數(shù)據(jù)流圖 圖 1.2 入住業(yè)務(wù)流程圖 圖 1.3 退房業(yè)務(wù)流程圖 圖 1.4 換房業(yè)務(wù)流程圖 - 6 - ( 2) 第一層數(shù)據(jù)流圖 ( 3) 預(yù)訂退訂數(shù)據(jù)流 圖 1.7 第一層數(shù)據(jù)流圖 圖 1.6 頂層數(shù)據(jù)流圖 - 7 - ( 4)換房數(shù)據(jù)流圖 圖 1.8 預(yù)訂退訂數(shù)據(jù)流圖 圖 1.9 換房數(shù)據(jù)流圖 - 8 - ( 5)入住數(shù)據(jù)流圖 ( 6)財(cái)務(wù)統(tǒng)計(jì)數(shù)據(jù)流圖 ( 7)退房數(shù)據(jù)流圖 圖 1.10 入住數(shù)據(jù)流圖 圖 1.11 財(cái)務(wù)統(tǒng)計(jì)數(shù)據(jù)流圖 - 9 - 2.3.數(shù)據(jù)字典 數(shù)據(jù)字典是體統(tǒng)中各類數(shù)據(jù)描述的集合,是進(jìn)行詳細(xì)的數(shù)據(jù)手機(jī)和數(shù)九分析所獲得的主要成果。數(shù)據(jù)字典 在數(shù)據(jù)庫設(shè)計(jì)中占有很重要的地位。數(shù)據(jù)字典通常包括數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理過程和外部實(shí)體 6 個(gè)部分。 數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位。 數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)之間的組合關(guān)系。 數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)穆窂健?數(shù)據(jù)存儲(chǔ)是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方也是數(shù)據(jù)流的來源和去向之一。 處理過程具體處理邏輯一般用判定表或判定樹來描述。 數(shù)據(jù)字典是需要描述處理過程 的 說明性信息。 ( 1) 數(shù)據(jù)項(xiàng)表 數(shù)據(jù)相編號(hào) 數(shù)據(jù)項(xiàng)名稱 數(shù)據(jù)項(xiàng)別名 數(shù)據(jù)項(xiàng)類型 長(zhǎng)度 取之范圍 備注 Dl-1 Gno 顧客編號(hào) Char 20 Dl-2 Gname 顧客姓名 Char 20 Dl-3 Gsex 顧客性別 Char 2 “女”,“男” Dl-4 Gid 顧客身份證號(hào) Char 18 Dl-5 Gtel 顧客電話 Char 11 Dl-6 Gaddress 顧客地址 Char 20 圖 1.12 退房數(shù)據(jù)流圖 - 10 - 數(shù)據(jù)相編號(hào) 數(shù)據(jù)項(xiàng)名稱 數(shù)據(jù)項(xiàng)別名 數(shù)據(jù)項(xiàng)類型 長(zhǎng)度 取之范圍 備注 Dl-7 Ggrade 顧客積分 int Dl-8 PreAccount 預(yù)交款 float Dl-9 grade 積分范圍 int 大于等于 1 Dl-10 Discount 折扣 float 0.80,0.85,0.90,0.95 打折額度 Dl-11 Obno 客房物品編號(hào) Char 20 Dl-12 Obname 客房物品名稱 Char 20 Dl-13 Obprice 客房物品原價(jià) float Dl-14 Obmultiple 賠償倍數(shù) float Dl-15 Yno 消費(fèi)項(xiàng)目編號(hào) Char 20 Dl-16 Yname 消費(fèi)項(xiàng)目名稱 Char 20 Dl-17 Yprice 消費(fèi)項(xiàng)目單價(jià) float Dl-18 Rno 客房編號(hào) Char 20 Dl-19 Rtype 客房類型 Char 20 Dl-20 Rprice 客房單價(jià) float Dl-21 Rfloor 客房樓層 Int Dl-22 Direction 客房朝向 Char 10 Dl-24 Atime 入住時(shí)間 datetime Dl-25 Rtime 預(yù)訂時(shí)間 datetime Dl-26 Rltime 退房時(shí)間 datetime Dl-27 Intoprice 入住價(jià)格 float Dl-28 Stime1 預(yù)訂房態(tài)修改時(shí)間 datetime Dl-29 Amoney 消費(fèi)項(xiàng)目花費(fèi) float Dl-30 Dmoney 物品損壞費(fèi) float Dl-31 balance 余額 float Dl-32 Amount 消費(fèi)項(xiàng)目個(gè)數(shù) Int Dl-33 Dnum 損壞物品個(gè)數(shù) Int Dl-34 Stime2 退訂修改房態(tài)時(shí)間 datetime Dl-35 Stime3 入住修改房態(tài)時(shí)間 datetime Dl-36 Stime4 換房修改房態(tài)時(shí)間 datetime Dl-37 Stime5 退房修改房態(tài)時(shí)間 datetime - 11 - ( 2) 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)編號(hào) 數(shù)據(jù)結(jié)構(gòu)名 數(shù)據(jù)結(jié)構(gòu)含義 數(shù)據(jù)結(jié)構(gòu)組成 DS-1 guest 顧客信息 Gno,Gname,Gsex,Gid,Gtel,Gaddress,PreAccount,balance,grade,Discount DS-2 Into 入住信息 DS-1+DS-8 DS-3 reserve 預(yù)訂信息 DS-1+DS-8 DS-4 return 退訂信息 DS-1+DS-8 DS-5 RoomObjectInformation 客房物品信息 Obno,Obname,Obprice,Obmultiple DS-6 Yproject 娛樂價(jià)目表 Yno,Yname,Yprice DS-7 RoomInformation 客房信息 Rno,Rtype,Rprice,Floor,Direction DS-8 RoomState 房態(tài)信息 Rno,Atime,Rtime,Rltime,Ltime,Gno,Intoprice,Stime,days, flag DS-9 consum 消費(fèi)清單 Cono,Gno,account,balance,Amoney,Dmoney,Cotime DS-10 Amuse 顧客消費(fèi)單 DS-6+DS-1 DS-11 GoodsD 物品損壞單 DS-5+DS-1 三 .概念設(shè)計(jì)階段 將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)即概念模型 的過程就是概念結(jié)構(gòu)設(shè)計(jì)。它是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。 3.1 任務(wù)和目標(biāo) ( 1)選擇底層數(shù)據(jù)流為切入點(diǎn),通常選擇實(shí)際系統(tǒng)中的子系統(tǒng); ( 2)設(shè)計(jì)分 E-R 圖,即各子模塊的 E-R 圖; ( 3)生成初步 E-R 圖,通過合并方法,做到各子系統(tǒng)實(shí)體、屬性、聯(lián)系統(tǒng)一; ( 4)生成全局 E-R 圖,通過消除沖突等方面。 在本酒店客房管理系統(tǒng)中,從第二層數(shù)據(jù)流程圖下手,分析個(gè)第二層數(shù)據(jù)流程圖和數(shù)據(jù)字典,知道整個(gè)系統(tǒng)的功能圍繞“顧客”、“客房”和“消費(fèi)”的處理。根據(jù)尸體與屬性間的兩條準(zhǔn)則: 1 作為“屬性”,不能再具有需要描述的性質(zhì)。 2 “屬性”不能與其他實(shí)體具有聯(lián)系。 - 12 - 3.2 階段結(jié)果 ( 1)根據(jù)不同的對(duì)象,從第二層數(shù)據(jù)流程圖入手,分別畫出各分 E-R 圖: ( 2)從數(shù)據(jù)流圖圖 2.8、圖 2.9、圖 2.10 和圖 2.11 抽象出的 E-R 圖 : ( 3)從數(shù)據(jù)流圖圖 2.12 抽象出的 E-R 圖: ( 4)從分 E-R 圖圖 3.1 和圖 3.2 經(jīng)消除沖突和冗余合成的總 E-R 圖: 圖 3.1 分 E-R 圖 1 圖 3.2 分 E-R 圖 2 編號(hào) 名稱 價(jià)格 索賠倍 數(shù) 朝向 樓層 價(jià)格 類型 編號(hào) - 13 - 四 .邏輯設(shè)計(jì)階段 概念設(shè)計(jì)階段是獨(dú)立于任何一種數(shù)據(jù)模型的,但是邏輯設(shè)計(jì)階段就與選用的 DBMS 產(chǎn)品發(fā)生關(guān)系了,系統(tǒng)邏輯設(shè)計(jì)的任務(wù)就是將概念設(shè)計(jì)階段設(shè)計(jì)好的基本 E-R 圖轉(zhuǎn)換為選用 DBMS 產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。具體內(nèi)容包括數(shù)據(jù)組織(將 E-R 圖轉(zhuǎn)換成關(guān)系模型、模型優(yōu)化、數(shù)據(jù)庫模式定義、用戶子模式設(shè)計(jì))、數(shù)據(jù)處理(畫出系統(tǒng)功能模塊圖)兩大任務(wù)。 4.1 數(shù)據(jù)庫模式定義: 數(shù)據(jù)庫的模式定義包括三個(gè)方面: 1.數(shù)據(jù)的邏輯結(jié)構(gòu) ; 2.數(shù)據(jù)之間的聯(lián)系; 3.數(shù)據(jù)有關(guān)的完整性約 束、安全性要求。 由于顧客與客房的聯(lián)系方式為 1: n(一對(duì)多 ),可以將其之間的聯(lián)系與 n 端實(shí)體客房合并,也可以獨(dú)立作為一種關(guān)系模式,我們選擇將其作為獨(dú)立的關(guān)系模式。由于顧客與客房物品,消費(fèi)項(xiàng)目的聯(lián)系方式為 n:n(多對(duì)多 ),可以將其之間的聯(lián)系轉(zhuǎn)化為獨(dú)立的關(guān)系模式,具體的基本 E-R 圖向關(guān)系 - 14 - 模型的轉(zhuǎn)化如下: 表 4 1 數(shù)據(jù)庫模式匯總 編號(hào) 數(shù)據(jù)庫模式 說明 T-1 guest 顧客基本信息 T-2 RoomInformation 客房基本信息 T-3 Yproject 消費(fèi)項(xiàng)目基本信息 T-4 RoomObjectInformation 客房物品基本信息 T-5 RoomState 房態(tài)基本信息 T-6 Consumelist 消費(fèi)基本信息 T-7 ReturnObject 物品賠償信息 實(shí)體表: 顧客: guest(Gno,Gname,Gsex,Gid,Gtel,Gaddress,PreAccount,Ggrade ,Discount, balance) 客房基本信息: RoomInformation(Rno,Rtype,Rprice,Rfloor,Direction) 消費(fèi)項(xiàng)目: Yproject( Yno,Yname,Yprice) 客房物品信息: RoomObjectInformation(Obno,Obname,Obprice,Obmultiple) 聯(lián)系 表: 預(yù)訂: Reserve(Gno,Rno,Stime1,Rtime, Rltime) 退訂: Back(Gno,Rno,Stime2) 入住: Into(Gno,Rno,Stime3,Rtime,Rlime) 換房: Change(Gno,Rno,Stime4) 退房: Return(Gno,Rno,Stime5) 消費(fèi): Consumelist(Yno,Gno,Amount,Begintime) 物品賠償單 Returnobject(Obno,Gno,Rno, Dtime ,Dnum) (注:畫線的為主碼 ) 4.2 用戶子模式定義 將概念模型轉(zhuǎn)換為全局邏輯模型后,還應(yīng)該根據(jù)局部應(yīng)用的需要,結(jié)合具體 DBMS 的特點(diǎn),設(shè)計(jì)用戶的外模式。用戶模式注重考慮用戶的習(xí)慣與方便。包括: 1.使用更符合用戶習(xí)慣的別名。 2.可以對(duì)不同級(jí)別的用戶定義不同的 View,以保證系統(tǒng)的安全性。 3.簡(jiǎn)化用戶對(duì)系統(tǒng) 的使用。 表 4 2 用戶子模式定義 編號(hào) 用戶子模式( View)作用(共性:提供數(shù)據(jù)保密和安全保護(hù)機(jī)制 V-1 BookView 便于查詢預(yù)定信息 V-2 IntoView 便于查詢?nèi)胱⌒畔?V-3 EmRoView 便于查詢空房信息 - 15 - 五 .物理設(shè)計(jì) 數(shù)據(jù)庫的物理設(shè)計(jì)就是為邏輯數(shù)據(jù)模型選取一個(gè)最合適應(yīng)用要求的物理結(jié)構(gòu)的過程,在這個(gè)階段中要完成兩大任務(wù): ( 1)確定數(shù)據(jù)庫的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫中主要是存取方法和存儲(chǔ)結(jié)構(gòu); ( 2)對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率。 5.1 本系統(tǒng)的 功能主要包括如圖幾個(gè)方面: 5.2 程序流程圖 管理信息系統(tǒng)處理方式的合理選擇,是一個(gè)處理過程的設(shè)計(jì)問題。選擇處理方式實(shí)際上就是根據(jù)系統(tǒng)的任務(wù)、目標(biāo)和環(huán)境條件,合理選擇信息活動(dòng)的形式及其具體方法。 ( 1) 顧客基本信息的查詢和更新:描述顧客信息的查詢和更新(插入、刪除和更新)的過程。 圖 5.1 酒店管理系統(tǒng)功能模塊圖 酒店 - 16 - ( 2)客房物品、娛樂信息查詢和更新(插入,刪除和更新)程序流程圖: 5.3 關(guān)于 E-R 圖所需實(shí)體及其聯(lián)系需要的表設(shè)計(jì)如下: 表 5 1 顧客基本信息 列名 數(shù)據(jù)類型 可否為空 說明 Gno char(20) not null 顧客編號(hào) Gname char(20) not null 顧客姓名 Gsex char(2) not null 顧客性別 Gid char(18) not null 顧客身份證 Gtel char(11) 顧客電話 Gaddress char(20) 顧客地址 PreAccount float 顧客預(yù)付金額 Grade int 顧客積分 Discount float not null 顧客的折扣率 balance float 顧客余額 圖 5.3 客房物品、娛樂信息查詢和更新程序流程圖 - 17 - 表 5 2 房間基本信息 列名 數(shù)據(jù)類型 可否為空 說明 Rno char(10) not null 房間編號(hào) Rtype char(20) not null 房間類型 Rprice float not null 房間價(jià)格 Rfloor smallint not null 房間樓層 Direction char(10) not null 房間朝向 表 5 3 房間物品信息 列名 數(shù)據(jù)類型 可否為空 說明 Obno char(20) not null 物品編號(hào) Obname char(20) not null 物品名字 Obprice float not null 物品價(jià)格 Obmultiple float not null 物品索賠倍數(shù) 表 5 4 房態(tài)信息 列名 數(shù)據(jù)類型 可否為空 說明 Rno char(10) not null 房間號(hào) Gno char(20) not null 顧客號(hào) Atime datetime 實(shí)際入住時(shí)間 Ltime datetime 實(shí)際退房時(shí)間 Rtime datetime 預(yù)訂入住時(shí)間 Rltime datetime 預(yù)訂退房時(shí)間 IntoPrice float 入住價(jià)格 days int 入住天數(shù) Stime datetime 修改記錄時(shí)間 flag char(1) 預(yù)訂入住標(biāo)志位 表 5 5 娛樂項(xiàng)目信息 列名 數(shù)據(jù)類型 可否為空 說明 Yno char(20) not null 娛樂項(xiàng)目編號(hào) Yname char(20) not null 娛樂項(xiàng)目名稱 Yprice float not null 娛樂項(xiàng)目單價(jià)(時(shí)間計(jì)費(fèi)或個(gè)數(shù)計(jì)費(fèi)) 表 5 6 娛樂消費(fèi)信息 - 18 - 列名 數(shù)據(jù)類型 可否為空 說明 Gno char(20) not null 顧客號(hào) Yno char(20) not null 商品號(hào) Amount float 消費(fèi)數(shù)量 Begintime datetime not null 消費(fèi)開始時(shí)間 表 5 7 物品賠償信息 列名 數(shù)據(jù)類型 可否為空 說明 Gno char(20) not null 顧客號(hào) Rno char(10) not null 房間號(hào) Obno char(20) not null 物品號(hào) Dnum int 損壞個(gè)數(shù) Dtime datetime Datetime 損壞時(shí)間 5.4 用戶子模式定義 表 5 8 訂房視圖 列名 數(shù)據(jù)類型 可否為空 說明 Gno char(20) not null 顧客號(hào) Rno char(10) not null 房間號(hào) Rtype char(20) not null 房間類型 Rfloor smallint not null 房間樓層 Direction char(10) not null 房間朝向 IntoPrice float not null 入住價(jià)格 Rtime datetime not null 入住時(shí)間 Rltime datetime not null 打算退房時(shí)間 days int not null 居住天數(shù) Begintime datetime not null 查看時(shí)時(shí)間 表 5 9 入住視圖 列名 數(shù)據(jù)類型 可否為空 說明 Gno char(20) not null 顧客號(hào) Gname char(20) not null 顧客姓名 Rno char(10) not null 房間號(hào) Rtype char(20) not null 房間類型 Rfloor smallint not null 房間樓層 Direction char(10) not null 房間朝向 IntoPrice float not null 入住價(jià)格 Atime datetime not null 入住時(shí)間 - 19 - Ltime datetime not null 退房時(shí)間 days int not null 入住天數(shù) PreAccount float not null 預(yù)付金額 Begintime datetime not null 查看時(shí)時(shí)間 表 5 10 空房視圖 列名 數(shù)據(jù)類型 可否為空 說明 Rno char(10) not null 房間號(hào) Rtype char(20) not null 房間類型 Rprice float not null 入住價(jià)格 Rfloor int not null 房間樓層 Direction char(10) not null 房間朝向 六實(shí)施階段 6.1 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE OrderDB1 ON (NAME=OrderDB, FILENAME=D:mySQLOrderDB1.mdf, SIZE=3, MAXSIZE=10, FILEGROWTH=1) LOG ON (NAME=OrderDBlog, FILENAME=D:mySQLOrderDB1log.ldf, SIZE=1, MAXSIZE=5, FILEGROWTH=1) 6.2 建立數(shù)據(jù)表 ( 1)顧客信息表創(chuàng)建: create table guest( Gno char(20) not null primary key, Gname char(8) not null, Gsex char(2) not null, Gid char(20) not null, Gtel char(11) not null, Gaddress char(20) null, PreAccount numeric(8,2) not null, - 20 - Grade int, Discount float, balance float, check (PreAccount=0.0 and Grade0) ) ( 2)客房信息表創(chuàng)建: create table RoomInformation( Rno char(10) not null primary key, Rtype char(20) not null, Rprice float not null, Rfloor smallint not null, Direction char(10) not null, check (Rfloor between 1 and 100), check (Direction in(正北 ,正南 ,正西 ,正東 ,東北 ,西南 ,西北 ,東南 ), check (Rtype in(標(biāo)準(zhǔn) 1,標(biāo)準(zhǔn) 2,豪華 1,豪華 2,高級(jí) 1,高級(jí) 2) ) ( 3)房態(tài)表創(chuàng)建: create table RoomState( Rno char(10) not null, Gno char(20) not null, Atime datetime, Ltime datetime, Rtime datetime, Rltime datetime, Intoprice float, days int, Stime datetime, flag char(1), primary key(Rno,Gno), foreign key(Rno)references RoomInformation(Rno), foreign key(Gno)references guest(Gno), check (flag in(1,2,3) ) ( 4)娛樂項(xiàng)目基本信息表創(chuàng)建: create table Yproject( Yno char(20) not null primary key, Yname char(20) not null, Yprice float not null, check(Yprice0.0) ) - 21 - ( 5)顧客娛樂消費(fèi)信息表創(chuàng)建: create table ConsumeList( Gno char(20) not null, Yno char(20) not null, Amount float, Begintime datetime not null, primary key(Gno,Yno), foreign key(Gno)references guest(Gno), foreign key(Yno)references Yproject(Yno) ) ( 6)客房物品基本信息表創(chuàng)建: create table RoomObjectInformation( Obno char(20) not null primary key, Obname char(20) not null, Obprice float not null, Obmultiple float not null, ) ( 7)顧客賠償物品基本信息表創(chuàng)建: create table ReturnObject( Gno char(20) not null, Rno char(10) not null, Obno char(20) not null, Dnum int, Dtime datetime not null, primary key(Gno,Rno,Obno), foreign key(Gno)references guest(Gno), foreign key(Rno)references RoomInformation(Rno), foreign key(Obno)references RoomObjectInformation(Obno) ) 6.3建立視圖 ( 1)用于查詢預(yù)訂房信息的視圖定義如下: create view BookView(Gno,Gname,Rno,Rtype,Rfloor,Direction,IntoPrice,Rtime,Rltime,Days,Stime) as select RoomState.Gno,Gname,RoomState.Rno,Rtype,Rfloor,Direction,IntoPrice,Rtime,Rltime,Days,Stime from RoomInformation,RoomState,guest where flag=1and RoomInformation.Rno=RoomState.Rno and RoomState.Gno=guest.Gno - 22 - ( 2)用于查詢已入住房的試圖如下: create view IntoView(Gno,Gname,Rno,Rtype,Rfloor,Direction,IntoPrice,Atime,Ltime,Days,Preaccount) as select RoomState.Gno,Gname,RoomState.Rno,Rtype,Rfloor,Direction,IntoPrice,Atime,Ltime,Days,Preaccount from RoomInformation,RoomState,guest where flag=2 and RoomInformation.Rno=RoomState.Rno and RoomState.Gno=guest.Gno (3)用于查詢空房的視圖定義如下: create view EmptyRoomView(Rno,Rtype,Rprice,Rfloor,Direction) as select Rno,Rtype,Rprice,Rfloor,Direction from RoomInformation where Rno not in (select Rno from Roomstate) 6.4 創(chuàng)建存儲(chǔ)過程 ( 1) lsqSearchDate 的定義 : create procedure IsqSearchDate date datetime as select Yno,sum(Am ount) from ConsumeList where Begintime=date group by Yno ( 2) lsqSearchEmpty 的定義 : create procedure IsqSearchEmpty floor int as select Rno,Rtype,Rprice,Rfloor,Direction from EmptyRoomView where Rfloor=floor - 23 - ( 3) lsqWatchGuest 的定義 : create procedure IsqWatchGuest as select Gno,Gname,Gsex,Gid from guest ( 4) lsqSearchGuest 的定義 : create procedure IsqSearchGuest Gno char(20) as begin select Gno,Gname,Preaccount,balance from guest where Gno=Gno select RoomState.Rno,Rtype,IntoPrice from RoomState,RoomInformation where RoomState.Rno=Gno and RoomState.Rno=RoomInformation.Rno select c.Yno,Yname,Account,Account*Yprice AmuMoney,begintime from ComsumeList c,Yproject a where c.Gno=Gno and c.Yno=a.Yno select g.Rno,r.Obname,g.Dnum,r.Obprice,Obmultiple,Obprice * g.Dnum * r.Obmultiple AmendMoney,g.Dtime from ReturnObject g,RoomObjectInfomation r where g.Gno=Gno and g.Obno=r.Obno end ( 5) lsqConsumeList 的定義 : create procedure IsqConsumeList ConsumeList_Gno char(20), ConsumeList_Yno char(20), ConsumeList_Amount float, ConsumeList_Begintime datetime as insert into ConsumeList values(ConsumeList_Gno,ConsumeList_Yno,ConsumeList_Amount,ConsumeList_Begintime) ( 6) lsqAddRoomGoods 的定義 create procedure IsqAddRoomGoods GDnumber char(20), - 24 - GDname char(20), GDprice float, GDmultiple float as insert into RoomObjectInfomation(Obno,Obname,Obprice,Obmultiple) values(GDnumber,GDname,GDprice,GDmultiple) ( 7) lsqAddAmusement 的定義 : create procedure IsqAmusement Yno char(20), Yname char(20), Yprice float as insert into Yproject values(Yno,Yname,Yprice) ( 8) lsqAddGuest 的定義 : create procedure IsqAddGuest Gno char(20), Gname char(8), Gsex char(2), Gid char(20), Discount float as insert into guest(Gno,Gname,Gsex,Gid,Discount) values(Gno,Gname,Gsex,Gid,Discount) ( 9) lsqMoney 的定義 : create procedure IsqMoney Gno char(20), PreAccount float as update guest set PreAccount=PreAccount where Gno=Gno ( 10) lsqBook 的定義 : create procedure IsqBook Rno char(10), Gno char(20), Rtime datetime, - 25 - Rltime datetime, days int, Stime datetime, Discount float output, Rprice float output as begin select Discount=Discount from guest where Gno=Gno select Rprice=Rprice from RoomInformation where Rno=Rno insert into RoomState(Rno,Gno,Rtime,Rltime,IntoPrice,days,Stime,flag) values(Rno,Gno,Rtime,Rltime,Discount*Rprice,days,Stime,1) end ( 11) lsqInto 的定義 : create procedure IsqInto Rno char(10), Gno char(20), Atime datetime, Ltime datetime, days int, Stime datetime, money float as begin update guest set PreAccount=money update RoomState set Atime=Atime,Ltime=Ltime,days=days,Stime=Stime,flag=2 where Rno=Rno and Gno=Gno end ( 12) IsqInsertAmends 的定義 : create procedure IsqInsertAmends Gno char(20), Rno char(10), Obno char(20), Dnum int, Dtime datetime as insert into ReturnObject(Gno,Rno,Obno,Dnum,Dtime) - 26 - values(Gno,Rno,Obno,Dnum,Dtime) ( 13) lsqDeleteRoom 的定義 : create procedure IsqDeleteRoom Rno char(10), Gno char(20) as delete from RoomState where Rno=Rno and Gno=Gno 6.5 創(chuàng)建觸發(fā)器 ( 1) 當(dāng)插入訂房信息(即插入房態(tài)信息),觸發(fā) guest 表,根據(jù)顧客積分計(jì)算顧客新的折扣度: create trigger tri_Discount on RoomState for insert as declare Grade int, Gno char(20) select Gno=Gno from inserted select Grade=Grade from guest where Gno=Gno if(Grade=0 and Grade300) begin update guest set Discount=1.00 where Gno=Gno end else if(Grade500) begin update guest set Discount=0.95 where Gno=Gno end else if(Grade700) begin update guest set Discount=0.90 where Gno=Gno end else if(Grade1000) - 27 - begin update guest set Discount=0.85 where Gno=Gno end else begin update guest set Discount=0.80 where Gno=Gno end ( 2)當(dāng)修改房態(tài)信息(即插入入住信息)時(shí),觸發(fā) guest 表,計(jì)算新積分及余額: create trigger tri_grade_balance on RoomState for update as begin declare IntoPrice float, days int select IntoPrice=IntoPrice from RoomState where Rno in(select Rno from inserted) and Gno in(select Gno from inserted) select days=days from RoomState where Rno in(select Rno from inserted) and Gno in(select Gno from inserted) update guest set balance=PreAccount-IntoPrice*days,grade=grade+IntoPrice*days where Gno in(select Gno from inserted) end ( 3)當(dāng)修改房態(tài)信息(即插入入住信息)時(shí),觸發(fā) guest 表,計(jì)算新積分及余額: create trigger tri_delete on RoomState for delete as begin update guest set PreAccount=0,balance=0 where Gno in(select Gno from deleted) end ( 4)刪除客房信息(即退房)時(shí),觸發(fā) guest 表,把顧客的預(yù)付款和余額設(shè)為 0: create trigger tri_grade on ConsumeList for insert - 28 - as begin declare Gno char(20), Yno char(20), Amount int, Yprice float select Gno=Gno,Yno=Yno,Amount=Amount from inserted select Yprice=Yprice from Yproject where Yno=Yno update guest set grade=grade+Yprice*Amount/10,balance=balance-Yprice*Amount where Gno=Gno end ( 5) .當(dāng)插入新的物品賠償信息時(shí),觸發(fā)孤兒 guest 表,從新計(jì)算顧客積分和余額: create trigger tri_AmendsMoney on ReturnObject for insert as begin declare Gno char(20), Obno char(20), Dnum int, Obprice float, Obmultiple float select Gno=Gno,Obno=Obno,Dnum=Dnum from inserted select Obprice=Obprice,Obmultiple=Obmultiple from RoomObjectInformation where Obno=Obno update guest set balance=balance-Obprice*Dnum*Obmultiple where Gno=Gno end 6.6 插入具體數(shù)據(jù) ( 1)顧客表: insert guest values (G0001,方華 ,男上海市 ,200.0,50,1.00,100.00) insert guest values (G0002,張星 ,女重慶市 ,500.0,50,0.95,200.00) insert guest values - 29 - (G0003,鄭誠 ,男北京市 ,1000.0,50,0.90,500.00) insert guest values (G0004,許佳 ,女重慶市 ,2000.0,50,0.85,800.00) insert guest values (G0005,田惠 ,女長(zhǎng)沙市 ,3000.0,50,0.80,1100.00) insert guest values (G0006,陳東 ,男天津市 ,2500.0,50,0.80,1200.00) ( 2)房間基本信息表: insert RoomInformation values (R001,標(biāo)準(zhǔn) 1,100.0,1,正北 ) insert RoomInformation values (R002,標(biāo)準(zhǔn) 2,200.0,2,正南 ) insert RoomInformation values (R003,豪華 1,300.0,3,正西 ) insert RoomInformation values (R004,豪華 2,400.0,4,正東 ) insert RoomInformation values (R005,高級(jí) 1,500.0,5,東北 ) insert RoomInformation values (R006,高級(jí) 2,600.0,6,西南 ) ( 3)房態(tài)表: insert RoomState values (R001,G0001,2013-5-3,2013-5-5,2013-5-1,2013-5-4,200.0,2,2013-5-2,1) insert RoomState values (R002,G0002,2013-4-1,2013-4-11,2013-3-25,2013-4-5,2000.0,10,2013-5-2,2) insert RoomState values (R003,G0003,2013-4-8,2013-4-14,2013-4-1,2013-4-10,1800.0,6,2013-4-15,3) insert RoomState values (R004,G0004,2013-4-10,2013-4-10,2013-4-15,2013-4-4,2000.0,5,2013-4-6,3) insert RoomState values (R005,G0005,2013-4-15,2013-4-23,2013-4-5,2013-4-16,4000.0,8,2013-4-8,2) insert RoomState values (R006,G0006,2013-4-20,2013-4-30,2013-4-10,2013-4-22,6000.0,10,2013-4-5,1) ( 4)娛樂項(xiàng)目表: insert Yproject values (Y0001,溫泉 ,500.0) insert Yproject values (Y0002,唱歌 ,400.0) insert Yproject values (Y0003,桑拿 ,300.0) - 30 - insert Yproject values (Y0004,汗蒸 ,200.0) insert Yproject values (Y0005,游泳 ,300.0) insert Yproject values (Y0006,足療 ,400.0) ( 5)娛樂消費(fèi)表: insert ConsumeList values (G0001,Y0001,2.0,2013-5-3) insert ConsumeList values (G0002,Y0002,1.0,2013-4-1) insert ConsumeList values (G0003,Y0003,3.0,2013-4-8) insert ConsumeList values (G0004,Y0004,2.0,2013-4-10) insert ConsumeList values (G0005,Y0005,4.0,2013-4-15) insert ConsumeList values (G0006,Y0006,1.0,2013-4-20) ( 6)房間物品信息表: insert RoomObjectInformation values (Rb001,電話機(jī) ,2000.0,0.5) insert RoomObjectInformation values (Rb002,電視 ,1500.0,0.6) insert RoomObjectInformation values (Rb003,洗衣機(jī) ,1800.0,0.5) insert RoomObjectInformation values (Rb004,空調(diào) ,3000.0,0.7) insert RoomObjectInformation values (Rb005,冰箱 ,1400.0,0.5) insert RoomObjectInformation values (Rb006,電腦 ,3000.0,0.6) ( 7)物品賠償信息表: insert ReturnObject values (G0001,R001,Rb001,1,2013-3-4) insert ReturnObject values (G0002,R002,Rb002,1,2013-4-2) insert ReturnObject values (G0003,R003,Rb003,1,2013-4-12) insert ReturnObject values - 31 - (G0004,R004,Rb004,1,2013-4-12) insert ReturnObject values (G0005,R005,Rb005,1,2013-4-18) insert ReturnObject values (G0006,R006,Rb006,1,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論