數據庫酒店客房管理系統_第1頁
數據庫酒店客房管理系統_第2頁
數據庫酒店客房管理系統_第3頁
數據庫酒店客房管理系統_第4頁
數據庫酒店客房管理系統_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 河南城建學院數據庫原理及應用課程設計專 業 班 級 : 0834131 課程設計題目: 酒店客房管理系統 指 導 教 師 : 吳孝麗 蘇靖楓 學 生 學 號 : 083413135 學 生 姓 名 : 本小組合作者: 計算機科學與工程學院2015年6月目 錄1 需求分析階段11.1 概述11.2 需求階段的目標及任務11.3 安全性和完整性要求21.4 建立數據業務流程及數據字典22 概念分析階段43 邏輯設計階段53.1 數據組織63.2數據處理94 物理設計階段94.1數據存儲方面94.2系統功能模塊95 數據實施階段105.1 建立數據庫、數據表、視圖、索引105.2數據入庫176 系

2、統調試和測試17心得體會19附錄20參考文獻251 需求分析階段1.1 概述 進行數據庫系統設計,首先要對系統的現狀進行分析,明確自己酒店客房管理系統課程設計所要實現的目標、需求和功能,制定和選擇一個較好的系統方案,有計劃,有頭緒,有思路,不能盲目的就著手去做,從而達到一個合理的優化系統。需求分析在于弄清這次課程設計的酒店管理系統的確切要求,因此,數據庫課程設計的第一步就是明確數據庫的目的和如何使用該系統。明確目的之后,才可以確定自己需要保存那些表信息,以及每個表中需要保存哪些字段。對于酒店客房管理系統,需要了解以下內容: 1.了解酒店客房管理的基本內容;2.綜合的理解酒店客房管理各身份層次的

3、不同需求;3.了解酒店客房管理的基本業務流程;4.了解酒店客房人工管理模式與信息系統的工作概況,以及它們之間的區別;5.通過網上查閱資料以及翻閱相關書籍,了解用戶對酒店客房管理系統的業務要求,安全性和完整性要求;1.2 需求階段的目標及任務(1)處理對象房客基本信息(Customer):房客編號,房客身份證號,房客姓名,房客性別,房客電話;房間基本信息(Room):房間編號,房間類型號,房間位置(樓層),房間描述(朝向);房間類型信息(RoomType):房間類型號,房間類型名,房間面積,房間價格;客房業務歷史記錄信息(History):房客編號,房客身份證號,房客姓名,房客電話,房間編號,消

4、費金額,入住時間,退房時間;客房業務信息(RoomOperation):房客編號,房客身份證號,房間編號,入住時間;房間狀態信息(RoomStatus):房間編號,房間狀態(有人 / 未住)。(2) 處理功能及要求 系統對酒店客房管理系統的功能及要求如下: 能夠存儲一定數量的房客信息,并方便有效的進行相應的房客數據操作和管理,這主要包括:·房客信息的錄入,刪除和修改; ·房客信息的關鍵字檢索查詢。 能夠對房客的入住信息,換房信息,退房信息,進行相應的操作,這主要包括: ·房客入住,換房,退房的登記,刪除及修改; ·房客住房歷史信息的刪除、修改; 

5、3;房客住房金額的統計與查詢。 能夠提供一定的安全機制,提供數據信息授權訪問,修改和刪除,防止隨意查詢,修改及刪除。 對查詢、統計的結果能夠列表顯示。1.3 安全性和完整性要求(1)安全性要求 系統安全性要求體現在數據庫安全性、信息安全性和系統分平臺的安全性等方面。安全性之基礎的是通過視圖機制,不同用戶只能訪問系統授權的視圖,這樣可以提供系統數據一定程度上的安全性。系統平臺的安全性體現在操作系統的安全性、計算機系統的安全性和網絡體系的安全性等方面。(2) 完整性要求 系統完整性要求系統中數據的正確性以及相容性??赏ㄟ^ 建立主、外鍵,使用unique約束,或者使用觸發器更新。1.4 建立數據業務

6、流程及數據字典 (1)酒店客房管理系統業務流程圖(如圖1) 圖1 酒店客房管理系統業務流程圖(2)酒店客房管理系統數據字典 數據項:系統涉及的數據項有16項,如表1所示表1 數據項列表數據項編號數據項名數據項含義存儲結構 別名DI-01CuName房客姓名NVARCHAR(10) 姓名DI-02CuNo房客編號NCHAR(6) 房客號DI-03CuSex房客性別NCHAR(2) 性別DI-04RoomNo房間號NCHAR(6) 房間號DI-05CuPhone房客電話NVARCHAR(20) 電話DI-06CuCard房客身份證NVARCHAR(20) 身份證DI-07TypeNo房間類型號NC

7、HAR(6) 類型號DI-08RoomFloor房間樓層NVARCHAR(10) 位置DI-09RoomStatus 房間狀態NVARCHAR(10) 狀態DI-10TypeName房間類型名稱NVARCHAR(10) 類型名DI-11TypeArea房間面積NVARCHAR(10) 面積DI-12TypePrice房間價錢INT 價錢DI-13Descripiption房間描述NVARCHAR(20) 描述DI-14Price房客消費INT 消費DI-15IntoTime入住時間DATETIME 入住時間DI-16OutTime退房時間DATETIME 退房時間 數據結構,如表2所示。更換

8、符合多高多高對法國德國多高多高多高多高多高 豆 表2 數據結構列表 數據結構編號數據結構名數據結構含義 組成DS-1Customer房客信息CuNo,CuName,CuPhone,CuSex,CuCardDS-2Room房間信息RoomNo,TypeNo,RoomFloor,DescripiptionDS-3RoomType房間類型TypeNo,TypeName,TypeArea,TypePriceDS-4History業務記錄信息CuNo,CuName,CuPhone,CuCard,Price,OutTime,RoomNoDS-5RoomStatus房間狀態RoomNo,RoomStatus

9、DS-6RoomOperation客房業務信息RoomNo,CuNo,CuCard,IntoTime2 概念分析階段 圖2酒店客房管理系統全局E-R圖 上述E-R圖各實體的屬性如下所示:房客基本信息:Customer(CuNo,CuCard,CuName,CuSex,CuPhone)房間基本信息:Room(RoomNo,TypeNo,RoomFloor,Description)房間類型信息:RoomType(TypeNo,TypeName,TypeArea,TypePrice)客房業務歷史記錄信息:History(CuNo,CuCard,CuName,CuPhone,RoomNo,Price,

10、IntoTime,OutTime)客房業務信息:RoomOperation(CuNo,CuCard,RoomNo,IntoTime)房間狀態信息:RoomStatus(RoomNo,Status)數據庫關系圖: 3 邏輯設計階段以上的概念設計階段是獨立于任何一種數據模型的,但是邏輯設計階段就與選用的數據庫管理系統(DBMS)產品發生關系了,系統邏輯設計的任務就是將概念設計階段設計好的基本E-R圖轉換為選用DBMS產品所支持的數據模型相符合的邏輯結構。具體內容包括數據組織(將E-R圖轉換成關系模型、模型優化、數據庫模式定義、用戶子模式設計)、數據處理(畫出系統功能模塊圖)兩大任務。3.1 數據組

11、織 (1)將E-R圖轉換為關系模型實體型轉換為關系模式。實體的屬性就是關系的屬性,實體的碼就是關系的碼。對于實體間的聯系則有以下不同的情況:一個m:n聯系轉換為一個關系模式。與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合。一個1:n聯系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合并。如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為n端實體的碼。 一個1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并。三個或三個以上實體間的一個多元聯系可以轉換為一個關系模式。

12、與該多元聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,而關系的碼為各實體碼的組合具有相同碼的關系模式可合并。例如房間信息與房間類型信息之間是1:n的關聯。可以將其之間的聯系轉化為獨立的關系模式,具體的基本E-R圖向關系模型的轉化如下:房客基本信息:Customer(CuNo,CuCard,CuName,CuSex,CuPhone)房間基本信息:Room(RoomNo,TypeNo,RoomFloor,Description)房間類型信息:RoomType(TypeNo,TypeName,TypeArea,TypePrice)客房業務歷史記錄信息:History(CuNo,CuCar

13、d,CuName,CuPhone,RoomNo,Price,IntoTime,OutTime)客房業務信息:RoomOperation(CuNo,CuCard,RoomNo,IntoTime)房間狀態信息:(RoomNo,Status)(注:標有直線下劃線的為主屬性,標有波浪線下劃線的是外鍵屬性)(2)模型優化 第一范式要求每一列的項不可分割,酒店管理系統的六個表都滿足了1NF;簡單理解,第二范式要求每個表所描述的是一件事,例如在Room表中如果加上房間狀態Status,則Room表就不滿足2NF了,它包括了房間信息和房間是否有房客入住的信息兩個事件,所以就有了RoomStatus表;第三范式

14、要求,每一項都不傳遞依賴,如果Room表中再加上房間類型名,則TypeName通過Room中的TypeNo傳遞依賴于RoomNo,所以有了RoomType表?,F在六張表都達到了3NF。 (3)數據庫模式定義 根據分析,本數據庫共創建了6個表,如表3表8所示 表3 房客信息表列名數據類型可否為空 說明CuNoNCHARNOT NULL 房客編號CuNameNVARCHARNOT NULL 房客姓名CuSexNCHAR 房客性別CuPhoneNVARCHAR 電話CuCardNVARCHARNOT NULL 身份證 表4 房間信息表列名數據類型可否為空 說明RoomNoNCHARNOT NULL

15、房間號TypeNoNCHARNOT NULL 類型號RoomFloorNVARCHAR 位置DescriptionNVARCHAR 描述 表5 房間類型信息表列名數據類型可否為空 說明TypeNoNCHARNOT NULL 類型號TypeName NVARCHARNOT NULL 類型名TypeAreaNVARCHARNOT NULL 面積TypePriceINT 價錢 表6 客房業務表列名數據類型可否為空 說明CuNo NCHARNOT NULL 房客編號RoomNoNCHAR 房間號IntoTime DATETIME 入住時間CuCard NVARCHARNOT NULL 身份證 表7 業

16、務記錄表列名數據類型可否為空 說明CuNo NCHAR 房客編號CuCardNVARCHAR 身份證CuPhoneNVARCHAR 電話CuNameNVARCHAR 姓名RoomNoNCHARNOT NULL 房間號Price INT 消費金額IntoTime DATETIME 入住時間OutTime DATETIME 退房時間 表8 房間狀態表列名數據類型可否為空 說明RoomNo NCHARNOT NULL 房間號StatusNVARCHAR 狀態(4) 用戶子模式定義,如表912。 表9 房間基本信息視圖列名數據類型可否為空 說明RoomNo NCHARNOT NULL 房間號TypeN

17、ameNCHARNOT NULL 類型號RoomFloorNVARCHAR 位置TypePriceINT 價錢 表10 退房房客基本信息視圖列名數據類型可否為空 說明CuNameNVARCHAR 姓名CuSexNCHAR 房客性別CuCard NVARCHARNOT NULL 身份證CuPhoneNVARCHAR 電話OutTime DATETIME 退房時間 表11 空房間基本信息視圖列名數據類型可否為空 說明RoomNo NCHARNOT NULL 房間號TypeNameNCHARNOT NULL 類型號RoomFloorNVARCHAR 位置TypePriceINT 價錢 表12 房客基

18、本信息視圖列名數據類型可否為空 說明CuNameNVARCHAR 姓名CuSexNCHAR 房客性別CuCard NVARCHARNOT NULL 身份證CuPhoneNVARCHAR 電話3.2數據處理 酒店客房管理系統 房客管理 房間管理 類型管理增加房間刪除房間查詢住房換房退房修改信息 圖3 系統功能模塊圖4 物理設計階段數據庫的物理設計就是為邏輯數據模型選取一個最合適應用要求的物理結構的過程,在這個階段中要完成兩大任務:(1)確定數據庫的物理結構,在關系數據庫中主要是存取方法和存儲結構;(2)對物理結構進行評價,評價的重點是時間和空間效率。 4.1數據存儲方面 為數據庫中各基本表建立的

19、索引如下: 由于基本表History、Customer的CuName、CuCard在現實生活中經常在查詢條件中出現,在兩個屬性上建立索引。 4.2系統功能模塊 實現對房間信息,房客信息的查詢、添加、刪除操作,功能模塊見圖3。5 數據實施階段5.1 建立數據庫、數據表、視圖、索引 (1)建立數據庫Create database 酒店客房管理系統(2)建立數據表 房客基本信息表的建立:CREATE TABLE Customer(CuNo NCHAR(6) PRIMARY KEY,-房客編號CuCard NVARCHAR(20) UNIQUE NOT NULL,-身份證CuName NVARCHAR

20、(10) NOT NULL,-房客姓名CuSex NCHAR(2),-房客性別CuPhone NVARCHAR(20),-電話房間基本信息表的建立:CREATE TABLE Room(RoomNo NCHAR(6) PRIMARY KEY,-房間號TypeNo NCHAR(6) NOT NULL,-房間類型號RoomFloor NVARCHAR(10) ,-房間位置Description NVARCHAR(20)-房間描述)房間類型基本信息表的建立:CREATE TABLE RoomType(TypeNo NCHAR(6) PRIMARY KEY,-房間類型號TypeName NVARCHAR

21、(10) NOT NULL,-類型名稱TypeArea NVARCHAR(10),-房間面積TypePrice INT NOT NULL-房間價錢)業務記錄基本信息表的建立:CREATE TABLE History(CuNo NCHAR(6),-房客編號CuCard NVARCHAR(20)UNIQUE NOT NULL, -身份證CuName NVARCHAR(10), -姓名CuPhone NVARCHAR(20),-電話RoomNo NCHAR(6),-房間號Price int,-消費金額IntoTime DATETIME,-入住時間OutTime DATETIME,-退房時間PRIMA

22、RY KEY (IntoTime,RoomNo)客房業務基本信息表的建立CREATE TABLE RoomOperation(CuNo NCHAR(6) PRIMARY KEY,-房客編號RoomNo NCHAR(6),-房間號IntoTime DATETIME,-入住時間CuCard NVARCHAR(20)UNIQUE NOT NULL -身份證)房間狀態基本信息表的建立CREATE TABLE RoomStatus(RoomNo NCHAR(6) PRIMARY KEY,-房間號Status NVARCHAR(6)-狀態)(3) 建立視圖用于查詢房間基本信息的視圖create view

23、Roomview(房間號,房間類型,位置,價錢) as select RoomNo,TypeName,RoomFloor,TypePricefrom Room ,RoomType where Room .TypeNo =RoomType .TypeNo 用于查詢退房房客基本信息的視圖create view Customerview(姓名,性別,身份證,電話,退房時間) asselect Customer.CuName ,CuSex ,Customer.CuCard ,Customer.CuPhone ,History.OutTime from History ,Customer where C

24、ustomer.CuNo =History.CuNo 用于查詢未住人的客房信息create view Roomnopeople(房間號,類型,位置,價錢) asselect Room.RoomNo,TypeName,RoomFloor,TypePricefrom Room ,RoomStatus ,RoomType where Status='未住'and Room .RoomNo =RoomStatus .RoomNo and Room .TypeNo =RoomType .TypeNo 用于查詢房客基本信息的視圖create view ShowCustomerview(姓名

25、,性別,身份證,電話) asselect CuName,CuSex,CuCard,CuPhonefrom Customer (4) 建立索引建立業務記錄信息上的房客姓名索引create index i_History on History(CuName) 建立房客信息上的身份證索引create index i_Customer on Customer(CuCard) (5) 建立存儲過程添加新的房間存儲過程的建立:create proc p_InsertRoom RoomNo nchar(6),TypeNo nchar(6),RoomFloor nvarchar(10),Description

26、 nvarchar(20),Status nvarchar(6)='未住'asinsert into Room values(RoomNo,TypeNo,RoomFloor,Description)insert into RoomStatus values(RoomNo,Status)根據房間類型獲取未住房間信息的存儲過程的建立:create proc p_ShowRoom TypeNo nchar(6), Status nvarchar(6)='未住'asselect Room.RoomNo ,Room.RoomFloor,Room.Description,R

27、oomType.TypeArea ,RoomType.TypeName,RoomType.TypePricefrom Room,RoomType,RoomStatus where Room.TypeNo =TypeNo and Status=Status and Room.TypeNo=RoomType.TypeNo and Room.RoomNo =RoomStatus.RoomNo -根據房間號查詢房間信息的存儲過程的建立create proc p_GetRoom RoomNo nchar(6)asselect Room.RoomNo ,RoomFloor,Description,Type

28、Name,TypeArea,TypePricefrom Room ,RoomType where Room.TypeNo =RoomType .TypeNo and Room.RoomNo =RoomNo新的房客入住時的存儲過程的建立create proc p_AddCustomer CuNo nchar(6),RoomNO nchar(6),CuName nvarchar(10),CuSex nchar(2),CuCard nvarchar(20),CoPhone nvarchar(20),IntoTime datetimeasupdate RoomStatus set Status =&#

29、39;有人'where RoomNo=RoomNoif (select COUNT (*) from Customer where CuNo =CuNo)=0begin insert into Customer values(CuNo,CuCard,CuName,CuSex ,CoPhone )end elsebeginupdate Customer set CuCard=CuCard,CuName=CuName,CuSex=CuSex,CuPhone =CoPhonewhere CuNo =CuNoendinsert into RoomOperation values(CuNo,Ro

30、omNO,IntoTime,CuCard)根據姓名信息查詢房客具體信息的存儲過程的建立create proc p_Customer-CuName nvarchar(10)='%'asselect * from Customer where CuName like CuName+'%'根據房間號查詢房間入住信息的存儲過程的建立 create proc p_GetCustomer RoomNo nchar(6)asselect Customer.CuName ,Customer .CuCard ,Customer .CuPhone ,Customer .CuSex

31、,RoomOperation .IntoTime from Customer ,RoomOperation where RoomOperation.CuNo =Customer.CuNo and RoomOperation .RoomNo =RoomNo退房存儲過程的建立create proc p_OutRoom CuNo nchar(6),RoomNO nchar(6),CuName nvarchar(10),CuSex nchar(2),CuCard nvarchar(20),CoPhone nvarchar(20),IntoTime datetime,OutTime datetime,P

32、rice int asupdate RoomStatus set Status ='未住'where RoomNo =RoomNO declare TypePrice intselect TypePrice=RoomType.TypePrice from Room ,RoomType where Room.TypeNo =RoomType .TypeNo and Room .RoomNo =RoomNO set Price =TypePrice *DATEDIFF (DAY ,IntoTime ,OutTime )if(Price =0)beginset Price =Type

33、Price endinsert into History values(CuNo,CuCard ,CuName ,CoPhone,RoomNO ,Price ,IntoTime,OutTime)delete from RoomOperation where RoomNo =RoomNO (6) 建立觸發器當修改RoomType表中某一信息時,觸發RoomType表修改這一信息create trigger T_updateRoomType on RoomTypefor updateasif(UPDATE (TypeNo)or update(TypeArea)begin print's事務

34、不能被處理,修改失敗'rollback transactionendelseprint'修改成功'當刪除History中房客信息記錄時,觸發Customer表,刪除相應的記錄create trigger T_deleteCustomer on Historyafter deleteasbegin delete from Customer where Customer.CuNo in( select CuNo from deleted)end當修改房RoomOperation表中房客房間信息時,觸發RoomStatus表修改相應房間狀態記錄create trigger T

35、_UpdateCustomer on RoomOperationfor updateas if UPDATE(RoomNo) begin update RoomStatus set Status ='未住' where RoomNo =(select RoomNo from deleted )update RoomStatus set Status ='有人' where RoomNo =(select RoomNo from inserted )end5.2數據入庫系統包括房客基本信息、房間基本信息、房間類型基本信息、業務記錄信息、客房業務信息、房間狀態信息,

36、共有6張基本表,采用事先在Excel中錄入數據,然后使用SQL Server 2008數據導入/導出向導功能,直接將數據導入到相應的基本表中。6 系統調試和測試 對該酒店客房管理系統進行測試,驗證每個功能是否符合要求,具體測試如下: 通過視圖查看各個基本表和視圖中的數據(見附錄1); 檢測各個存儲過程的功能(見附錄2); 檢測各個觸發器的效果(見附錄3)。 心得體會通過兩周的數據庫課程設計,使我對數據庫原理及應用這門課程有了更深入的理解。數據庫原理及應用是一門實踐性較強的課程,為了學好這門課程,必須在掌握理論知識的同時,加強上機實踐。我的課程設計題目是酒店客房管理系統,此次課程設計加深了我對數

37、據庫設計有關知識的理解。之前對于數據庫設計各階段的理解不透徹,很多概念都很模糊。通過本次課程設計,我進一步了解了書本上的知識,并且親身體驗了數據庫設計的各個環節。了解了數據庫設計的流程。感觸最深的是需求分析階段和概念模型設計階段。需求分析階段是整個數據庫設計的基礎,這個階段直接影響到后面各個階段的設計。由于對業務不是十分精通,在這個階段返工了好幾次,如果這個階段做的不好,后面就無法繼續進行下去。概念模型設計階段,最重要的是從數據流圖中抽象出實體,并且要考慮沖突的發生。 另外,我明白了理論與實際應用相結合的重要性,并提高了自己組織數據及編寫大型程序的能力。培養了基本的、良好的程序設計技能以及合作能力。這次課程設計同樣提高了我的綜合運用所學知識的能力。與此同時,更深入的了解并掌握了SQL SERVER 2008的功能。由于在有關存儲過程和觸發器的知識掌握的不是太好,平常實驗

溫馨提示

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

評論

0/150

提交評論