版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、安徽廣播電視大學(xué)開放教育??朴?jì)算機(jī)應(yīng)用專業(yè)畢業(yè)論文基于B/S結(jié)構(gòu)賓館客房管理系統(tǒng)編寫者:程嬌嬌安徽廣播電視大學(xué)六安分校2007年5月目 錄1 概 述12 需 求 分 析22.1 理解需求22.2 需求分析23 UML系統(tǒng)建模33.1 賓館客房管理系統(tǒng)的用例分析33.2 賓館客房管理系統(tǒng)的域類分析43.3 賓館客房管理系統(tǒng)的設(shè)計(jì)54 系 統(tǒng) 配 置74.1 軟件配置74.2 硬件配置74.3 網(wǎng)絡(luò)配置85 數(shù)據(jù)庫分析95.1 E-R圖分析105.2 表與字段分析和SQL Server數(shù)據(jù)庫建模106 數(shù)據(jù)庫設(shè)計(jì)116.1 創(chuàng)建數(shù)據(jù)庫116.2 創(chuàng)建表136.3 創(chuàng)建存儲過程167 連接數(shù)據(jù)庫20
2、8 頁面設(shè)計(jì)及相關(guān)代碼分析218.1 賓館客房管理系統(tǒng)首頁設(shè)計(jì)及其代碼分析228.2 客房信息管理頁面設(shè)計(jì)及其代碼分析238.3 客房信息添加/修改頁面設(shè)計(jì)及其代碼分析258.4 客房經(jīng)營管理頁面設(shè)計(jì)及其代碼分析288.5 訂房/退房管理頁面設(shè)計(jì)及其代碼分析318.6 經(jīng)營狀況統(tǒng)計(jì)頁面設(shè)計(jì)及其代碼分析349 調(diào) 試 運(yùn) 行3610 小 結(jié)37致謝38參考文獻(xiàn)3837摘要:隨著我國改革開放的不斷推進(jìn),國內(nèi)人民生活水平的不斷提高,旅游出行的人民越來越多,商務(wù)活動也相當(dāng)?shù)幕钴S;再加上入境旅游的人也越來越多,入境從事商務(wù)活動的外賓也越來越多。因此,現(xiàn)在國內(nèi)的賓館住宿行業(yè)也越來越多。賓館客房管理的科學(xué)化
3、、系統(tǒng)化、信息化也成為各個(gè)賓館追求的目標(biāo)。因此,而要實(shí)現(xiàn)這些功能,就要求各個(gè)賓館配備一套客房管理信息系統(tǒng),以便在賓館內(nèi)實(shí)施良好的完善的管理且以最快地速度響應(yīng)客戶的需求,及時(shí)為他們提供服務(wù),為他們提供一個(gè)高效、便捷的居住環(huán)境。客房管理信息系統(tǒng)(MIS)是各個(gè)賓館軟件建設(shè)中一個(gè)重要的應(yīng)用系統(tǒng),它大大了改善賓館管理的基礎(chǔ)環(huán)境。由于本人多年從事賓館客房管理工作,為了把三年來學(xué)校所學(xué)的計(jì)算機(jī)理論應(yīng)用于實(shí)踐,經(jīng)過對客房管理信息業(yè)務(wù)的若干基本問題調(diào)研,開發(fā)了此客房管理信息系統(tǒng),基本實(shí)現(xiàn)了對賓館用戶信息、客房類型、客房信息、客房經(jīng)營的管理,以及對客戶信息查詢和經(jīng)營狀況統(tǒng)計(jì)等功能。系統(tǒng)開發(fā)采用Microsoft
4、的Visual Studio .NET集成式開發(fā)平臺和C#開發(fā)語言。C# 應(yīng)用程序是圍繞讀取和更新數(shù)據(jù)庫中的信息展開的。為了允許在分布式、可縮放應(yīng)用程序中實(shí)現(xiàn)數(shù)據(jù)集成,采用Visual Studio .NET 提供對新一代數(shù)據(jù)訪問技術(shù) ADO .NET的支持。利用其強(qiáng)大的可視化界面功能及對數(shù)據(jù)庫的支持,先構(gòu)造一個(gè)原型,逐步增加功能,最終滿足需求。系統(tǒng)中采用SQL SERVER作為數(shù)據(jù)庫,解決訪問速度及數(shù)據(jù)共享的問題,大量采用SQL查詢語句,界面友好,功能較強(qiáng)。Microsoft .NET作為一種面向網(wǎng)絡(luò)、支持各種用戶終端的開發(fā)平臺環(huán)境,推動新一代因特網(wǎng)的發(fā)展,真正地讓人們可以在任何時(shí)間、任何地
5、點(diǎn)、通過任何設(shè)備得到信息。C是專門為.NET應(yīng)用而開發(fā)出的語言,它能夠建造所有的.NET應(yīng)用。其固有的特性保證了它是一種高效、安全、靈活、面向?qū)ο蟮默F(xiàn)代程序設(shè)計(jì)語言。從最普通的應(yīng)用到大規(guī)模的商業(yè)開發(fā),C與 .NET平臺的結(jié)合將為用戶提供完整的解決方案。ASP .NET是建立在.NET平臺架構(gòu)上,使用通用語言運(yùn)行時(shí)(Common Language Runtime)在服務(wù)器后端為用戶提供建立強(qiáng)大的企業(yè)級Web應(yīng)用服務(wù)的編程框架。關(guān)鍵字:關(guān)系數(shù)據(jù)庫 C# Microsoft.NET SQL Server ADO 客房管理系統(tǒng)管理信息系統(tǒng)1 概 述賓館客房管理系統(tǒng)的主要任務(wù)是對賓館的客房進(jìn)行管理,使用
6、戶能輕松地找到所需要的客房信息,提供訂房和退房服務(wù),并對賓館客房的業(yè)績進(jìn)行統(tǒng)計(jì)。圖1-3是一個(gè)典型的賓館客房管理系統(tǒng)的界面。圖1-3 典型的賓館客房管理系統(tǒng)界面在不同的賓館之間,賓館客房管理系統(tǒng)會存在一些差異。通常,賓館客房管理系統(tǒng)的主要功能包括以下幾個(gè)方面。 (1) 用戶信息管理:對賓館客房管理系統(tǒng)的使用員工進(jìn)行管理,包括對員工的基本信息(如用戶姓名、所屬部門、用戶類型等)進(jìn)行檢索、錄入和修改。(2) 客房類型管理:用戶可自定義客房類型,并對其進(jìn)行管理,包括對客房類型的基本信息(如類型名稱、面積、床位、價(jià)格等)進(jìn)行檢索、錄入和修改。(3) 客房信息管理:用戶對客房信息進(jìn)行管理,包括對客房的基
7、本信息(如客房號、客房類型、客房位置等)進(jìn)行檢索、錄入和修改。(4) 客房經(jīng)營管理:實(shí)現(xiàn)對客房的訂房和退房管理,包括對客房的業(yè)務(wù)信息(如客房號、入房時(shí)間、退房時(shí)間、金額等)進(jìn)行檢索、錄入和修改。 (5) 客戶信息查詢:用戶可對入住過賓館的客戶信息進(jìn)行查詢,包括對客戶的基本信息(如身份證號、客戶姓名、聯(lián)系電話)進(jìn)行檢索。(6) 經(jīng)營狀況統(tǒng)計(jì):根據(jù)賓館客房的業(yè)務(wù)記錄,用戶可選擇不同的統(tǒng)計(jì)方式對營業(yè)額進(jìn)行統(tǒng)計(jì)。從功能描述的內(nèi)容來看,可以實(shí)現(xiàn)六大功能。根據(jù)這些功能,設(shè)計(jì)出系統(tǒng)的功能模塊,如圖1-4所示。 圖1-4 賓館客房管理系統(tǒng)功能模塊示意圖2 需 求 分 析需求分析階段是賓館客房管理系統(tǒng)開發(fā)最重要
8、的階段。首先要了解和澄清用戶的需求,然后嚴(yán)格地定義該系統(tǒng)的需求規(guī)格說明書。我們將需求分析分為兩個(gè)過程,一是理解需求,二是分析需求,下面分別講解。2.1 理解需求理解需求是在問題及其最終解決方案之間架設(shè)橋梁的第一步。開發(fā)者只有和客戶充分理解了需求之后才能開始設(shè)計(jì)系統(tǒng),否則,對需求定義的任何改進(jìn),在設(shè)計(jì)上都必須大量的返工。下面是經(jīng)過雙方調(diào)研后得到的需求規(guī)格說明。(1) 系統(tǒng)界面采用Web方式,界面應(yīng)簡潔明了,用戶可方便瀏覽和查找客房信息。該系統(tǒng)的用戶有兩種類型:一是管理員,二是服務(wù)員,兩者應(yīng)具有不同的權(quán)限。(2) 系統(tǒng)需對用戶登錄進(jìn)行管理。使用各功能模塊時(shí),系統(tǒng)應(yīng)驗(yàn)證用戶身份的有效性,否則要求用戶
9、登錄。另外,允許用戶對自己的密碼進(jìn)行修改。(3) 系統(tǒng)應(yīng)提供客房的分類管理功能,可分類制訂客房面積、價(jià)格、是否配備空調(diào)等客房類型,對不同標(biāo)準(zhǔn)的客房進(jìn)行有效管理。系統(tǒng)可實(shí)現(xiàn)對客房信息的添加、刪除以及修改。 (4) 在進(jìn)行訂房/退房管理時(shí),系統(tǒng)可以根據(jù)客房當(dāng)前的狀態(tài)自動提示可用服務(wù)(訂房/退房)。如果客房沒有客人入住,則該客房的可用服務(wù)為“訂房”;否則,可用服務(wù)為“退房”。(5) 系統(tǒng)在各功能模塊的實(shí)現(xiàn)當(dāng)中,提供多級分類檢索和組合搜索。(6) 系統(tǒng)的客戶端在Windows平臺下運(yùn)行,服務(wù)器端可在Windows平臺或UNIX平臺下運(yùn)行。系統(tǒng)還需要有較好的安全性和可擴(kuò)展性。2.2 需求分析需求分析是從
10、客戶的需求中提取出軟件系統(tǒng)能夠幫助用戶解決的業(yè)務(wù)問題,通過對用戶業(yè)務(wù)問題的分析,規(guī)劃出系統(tǒng)的功能模塊,即定義用例。這個(gè)步驟是對理解需求的升華,直接關(guān)系到該系統(tǒng)的質(zhì)量。 經(jīng)過開發(fā)者同客戶的需求分析后,確定賓館客房管理系統(tǒng)的功能模塊(用例)包括: 用戶信息管理 客房類型管理 客房信息管理 客房經(jīng)營管理 客戶信息查詢 經(jīng)營狀況統(tǒng)計(jì)賓館系統(tǒng)完全采用Web方式,由前臺和后臺管理兩個(gè)部分組成。前臺作為與用戶直接交互的可視化界面,由于使用方便,能將系統(tǒng)的各個(gè)功能提供給用戶,以幫助用戶進(jìn)行客房管理。賓館系統(tǒng)前臺的結(jié)構(gòu)圖如圖1-5所示。圖1-5 賓館客房管理系統(tǒng)前臺結(jié)構(gòu)圖前臺在考慮功能實(shí)現(xiàn)的同時(shí),也考慮了操作的
11、簡潔和方便性,目的是讓大多數(shù)客戶能夠輕松地享受電子商務(wù)給他們帶來的便利。為了確??蛻艉唾e館的信息具有更好的安全性,前臺管理和后臺管理是分離的。前臺的各管理模塊需要經(jīng)過權(quán)限授權(quán)才可以使用,我們?yōu)榇嗽O(shè)計(jì)了兩個(gè)角色:一是賓館管理員,二是前臺服務(wù)員。其中: 賓館管理員享有最高權(quán)限,可以使用賓館客房管理系統(tǒng)所提供的所有功能,包括員工信息管理、客房類型管理、客房信息管理、客房經(jīng)營管理、客戶信息查詢、經(jīng)營狀況統(tǒng)計(jì)、個(gè)人密碼修改以及注銷功能。 前臺服務(wù)員的主要職能是負(fù)責(zé)訂房和退房,以及查詢?nèi)胱〉目蛻粜畔?。所有該角色只可以使用部分功能,包括客房?jīng)營管理、客戶信息查詢、個(gè)人密碼修改以及注銷功能。后臺管理主要由數(shù)據(jù)
12、庫系統(tǒng)作為支持,后臺管理的維護(hù)工作主要由系統(tǒng)管理員進(jìn)行,包括完成對各個(gè)數(shù)據(jù)表單的維護(hù)、數(shù)據(jù)庫的備份及恢復(fù)等工作,本實(shí)例我們選用的數(shù)據(jù)庫系統(tǒng)為SQL Server 2000。3 UML系統(tǒng)建模需求分析完成后,接下來的工作是對系統(tǒng)建模。因?yàn)閁ML很適合于對邏輯數(shù)據(jù)庫模式和物理數(shù)據(jù)庫模式建模,所以我們對系統(tǒng)進(jìn)行UML建模。下面是賓館客房管理系統(tǒng)的 UML建模過程。我們將使用Rational Rose進(jìn)行UML建模。3.1 賓館客房管理系統(tǒng)的用例分析系統(tǒng)的用例分析是UML建模的第一步。在上一節(jié)需求分析中,我們已經(jīng)確定了賓館客房管理系統(tǒng)的各功能模塊(用例),包括用戶信息管理、客房類型管理、客房信息管理、
13、客房經(jīng)營管理、客戶信息查詢、經(jīng)營狀況統(tǒng)計(jì)等。其用例圖如圖1-6所示。圖1-6 賓館客房管理系統(tǒng)用例圖該用例圖標(biāo)記了賓館客房管理系統(tǒng)的所有用例,并且形象地描述了各用例與用戶角色之間的關(guān)系。用例圖所表示的各用例的作用以及各用戶角色的權(quán)限因篇幅所限不再贅述。3.2 賓館客房管理系統(tǒng)的域類分析接下來我們對系統(tǒng)進(jìn)行域類分析。由于類圖用于對系統(tǒng)的靜態(tài)設(shè)計(jì)視圖建模,支持系統(tǒng)的功能需求(即系統(tǒng)要提供的最終服務(wù)),因此我們在此使用類圖來進(jìn)行域類分析。域類分析是建立在用例分析基礎(chǔ)上的,我們根據(jù)用例來確定賓館客房管理系統(tǒng)中所要用到的類及類間的關(guān)系,從而得到域類圖,如圖1-7所示。在域類分析時(shí),設(shè)計(jì)該系統(tǒng)的類圖應(yīng)注意
14、以下兩點(diǎn)。(1) 對數(shù)據(jù)對象類的確定確定對象類時(shí)需要考慮:結(jié)合數(shù)據(jù)庫細(xì)節(jié),定義類的標(biāo)記值,展開這些類的結(jié)構(gòu)性細(xì)節(jié),即屬性的細(xì)節(jié)。根據(jù)賓館客房管理系統(tǒng)的用例分析,我們確定所用到的類主要包括:用戶信息(UsersInfo)、客戶信息(CustomersInfo)、客房類型(RoomCategory)、客房信息(RoomsInfo)、客房狀態(tài)(RoomStatus)、客房業(yè)務(wù)(RoomOperation)、業(yè)務(wù)記錄(History)。(2) 對各類間關(guān)聯(lián)的確定觀察各類之間的關(guān)系,如循環(huán)關(guān)聯(lián)、一對一關(guān)聯(lián)和n-元關(guān)聯(lián)等,從而確定各類間的關(guān)聯(lián)。賓館客房管理系統(tǒng)的各類間的關(guān)聯(lián)可根據(jù)系統(tǒng)功能用例來確定,比如客
15、房信息(RoomsInfo)類和客房類別(RoomCategory)類之間是1: n的關(guān)聯(lián)。關(guān)聯(lián)須謹(jǐn)慎確定,以保證數(shù)據(jù)的完整性,防止以后頻繁的修改而影響系統(tǒng)的開發(fā)進(jìn)度。圖1-7 賓館客房管理系統(tǒng)域類圖3.3 賓館客房管理系統(tǒng)的設(shè)計(jì)在UML中,對系統(tǒng)的動態(tài)方面建模的五種圖有:用例圖、活動圖、狀態(tài)圖、時(shí)序圖和協(xié)作圖。在設(shè)計(jì)階段,我們需要使用狀態(tài)圖來描述類的對象的狀態(tài)及其行為,顯示對象的整個(gè)生命周期。在本系統(tǒng)中,有狀態(tài)圖的類有客房信息(RoomsInfo),該類的狀態(tài)圖如圖1-8所示。圖1-8 狀態(tài)圖另外,在多數(shù)情況下,為了描述用例的動態(tài)行為,我們還需要用到時(shí)序圖。時(shí)序圖可以單獨(dú)使用,以可視化、詳述
16、、構(gòu)造和文檔化一個(gè)特定對象群體的動態(tài)信息,對一個(gè)實(shí)例的特定控制流進(jìn)行建模。下面我們給出各個(gè)用例的時(shí)序圖,以幫助我們接下來的設(shè)計(jì)工作。訂房管理的時(shí)序圖,如圖1-9所示。圖1-9 訂房管理時(shí)序圖退房管理的時(shí)序圖,如圖1-10所示。圖1-10 退房管理時(shí)序圖可以類似上述時(shí)序圖的方式畫出其它用例的時(shí)序圖,考慮到本書篇幅所限,這里就不再贅述,請讀者自己完成。到此,經(jīng)過了需求分析,使用UML建模繪出了各用例的用例圖、狀態(tài)圖、時(shí)序圖之后,我們已經(jīng)對賓館客房管理系統(tǒng)的具體功能實(shí)現(xiàn)有了比較明確的認(rèn)識。接下來,需要我們對系統(tǒng)進(jìn)行框架設(shè)計(jì)和詳細(xì)設(shè)計(jì)。在進(jìn)行構(gòu)架設(shè)計(jì)時(shí),我們將賓館客房管理系統(tǒng)設(shè)計(jì)視圖中的類組織成一個(gè)標(biāo)
17、準(zhǔn)的三級體系結(jié)構(gòu),如圖1-11所示。用戶服務(wù)包(User Services)中的元素提供了表現(xiàn)信息和收集的可視化界面。業(yè)務(wù)服務(wù)包(Bussiness Services)中的元素負(fù)責(zé)維護(hù)、訪問和修改數(shù)據(jù)。數(shù)據(jù)服務(wù)包(Data Services)中的元素為另兩個(gè)包的元素搭橋,并包含了管理用戶請求(為了執(zhí)行業(yè)務(wù)上的任務(wù))的所有類和其他元素,包括支配數(shù)據(jù)操縱策略的業(yè)務(wù)規(guī)則。圖1-11 賓館客房管理系統(tǒng)的體系結(jié)構(gòu)然后,就可以進(jìn)行詳細(xì)設(shè)計(jì)了。至此,UML系統(tǒng)建模完成。4 系 統(tǒng) 配 置好的數(shù)據(jù)庫系統(tǒng)必然有一個(gè)性能價(jià)格比最優(yōu)的系統(tǒng)配置方案。系統(tǒng)配置要根據(jù)用戶的實(shí)際情況設(shè)計(jì),主要依據(jù)就是系統(tǒng)的吞吐量和系統(tǒng)對穩(wěn)
18、定性的要求,此外,用戶的維護(hù)水平也是一個(gè)重要的方面。4.1 軟件配置賓館客房管理系統(tǒng)的軟件配置要根據(jù)用戶對系統(tǒng)的穩(wěn)定性要求、系統(tǒng)的容量以及用戶的維護(hù)水平來確定??梢愿鶕?jù)用戶量的大小選擇不同的操作系統(tǒng)。當(dāng)然,一般情況下,雇員對微軟Windows界面比較熟悉,因此,建議客戶端都使用Windows 2000或者Windows XP操作系統(tǒng)。服務(wù)器端的選擇如表1-10所示。表1-10 賓館客房管理系統(tǒng)服務(wù)器端操作系統(tǒng)的選擇用 戶每秒數(shù)據(jù)庫并發(fā)數(shù)據(jù)訪問記錄數(shù)穩(wěn)定性要求維護(hù)水平備選操作系統(tǒng)小型賓館1050低差Windows 2000 Professional,Windows XP中小型賓館50500中一般
19、Windows NT,Windows 2000 Server、Windows XP中型賓館5002000較高較好Windows NT,Windows 2000 Server,Windows XP,Linux、UNIX大型賓館5002000較高較好UNIX大型綜合性賓館2000以上高好UNIX這里選擇Windows 2000 Server作為服務(wù)器端操作系統(tǒng)。4.2 硬件配置硬件配置主要包括客戶端硬件的選擇和服務(wù)器端硬件的選擇。賓館客房管理系統(tǒng)的硬件配置要根據(jù)用戶對系統(tǒng)的穩(wěn)定性要求、系統(tǒng)的容量、系統(tǒng)的吞吐量以及用戶的維護(hù)水平來確定。(1) 客戶端硬件選擇可以根據(jù)穩(wěn)定性要求選擇不同的客戶端硬件。一
20、般情況下,對客戶端硬件的要求不高。如表1-11所示。表1-11 賓館客房管理系統(tǒng)客戶端硬件的選擇用 戶穩(wěn)定性要求備選客戶端賓館管理員客戶端低Pentium CPU/64MB/4GB前臺服務(wù)員客戶端中Pentium IV/256MB/20GB(2) 服務(wù)器端硬件選擇可以根據(jù)數(shù)據(jù)量和吞吐量的大小選擇不同的服務(wù)器硬件。服務(wù)器端硬件的選擇如表1-12所示。表1-12 賓館客房管理系統(tǒng)服務(wù)器端硬件的選擇用 戶每秒數(shù)據(jù)庫并發(fā)數(shù)據(jù)訪問記錄數(shù)穩(wěn)定性要求維護(hù)水平備選服務(wù)器小型賓館1050低差Pentium /256MB/20GB個(gè)人計(jì)算機(jī)中小型賓館50500中一般Xeon雙CPU/1GB/RAID5 3
21、5;72GB中型賓館50500中一般Xeon雙CPU/1GB/RAID5 3×72GB大型賓館5002000較高較好小型計(jì)算機(jī)/雙機(jī)熱備或者Xeon 4CPU/4GB/RAID5 6×72GB大型綜合性賓館2000以上高好小型計(jì)算機(jī)/雙機(jī)熱備或者Xeon 4CPU/4GB/RAID5 6×72GB當(dāng)然,這種配置不是絕對的,這里只給出參考配置的范圍。4.3 網(wǎng)絡(luò)配置賓館客房管理系統(tǒng)的網(wǎng)絡(luò)配置一般有如下幾種類型。(1) 單機(jī)模式:即服務(wù)器和客戶端在一臺計(jì)算機(jī)上。(2) 百兆模式:計(jì)算機(jī)網(wǎng)絡(luò)的速度為百兆,如圖1-12所示。圖1-12 賓館客房管理系統(tǒng)網(wǎng)絡(luò)百兆配置(3)
22、千兆模式:計(jì)算機(jī)網(wǎng)絡(luò)的速度為千兆。實(shí)際上,沒有必要給每個(gè)節(jié)點(diǎn)都配備千兆網(wǎng)絡(luò)接口,只需要給服務(wù)器端配備千兆接口即可,如圖1-13所示。圖1-13 賓館客房管理系統(tǒng)網(wǎng)絡(luò)千兆配置可以根據(jù)用戶情況選擇不同的網(wǎng)絡(luò)配置,如表1-13所示。表1-13 賓館客房管理系統(tǒng)網(wǎng)絡(luò)配置的選擇用 戶每秒數(shù)據(jù)庫并發(fā) 數(shù)據(jù)訪問記錄數(shù)穩(wěn)定性要求維護(hù)水平備選網(wǎng)絡(luò)方案小型賓館1050低差單機(jī)模式中小型賓館50500中一般百兆模式中型賓館50500中一般百兆模式大型賓館5002000較高較好百兆模式大型綜合性賓館2000以上高好千兆模式5 數(shù)據(jù)庫分析UML系統(tǒng)建模工作完成后,接下來的工作就是數(shù)據(jù)庫分析了。數(shù)據(jù)庫分析是整個(gè)數(shù)據(jù)庫應(yīng)用
23、系統(tǒng)開發(fā)過程中的一個(gè)重要環(huán)節(jié),它具體可分為兩個(gè)部分:一是概念模型的分析,即E-R圖的分析;二是邏輯模型的分析,即表與字段的分析。由于在數(shù)據(jù)庫設(shè)計(jì)時(shí)要同時(shí)考慮多方面的問題,使設(shè)計(jì)工作變得十分復(fù)雜,因此需要軟件來實(shí)現(xiàn)。我們將使用SQL Server 2000自帶的視圖工具來進(jìn)行E-R圖分析和數(shù)據(jù)庫建模。5.1 E-R圖分析E-R圖的分析工作通常采用自底向下的設(shè)計(jì)方法,首先對局部視圖進(jìn)行分析設(shè)計(jì),然后再實(shí)現(xiàn)視圖集成。對賓館客房管理系統(tǒng)的E-R 圖分析是建立在UML系統(tǒng)模型基礎(chǔ)上的,我們不再對局部視圖進(jìn)行設(shè)計(jì)。在視圖集成時(shí),注意消除沖突、冗余,這里,我們直接給出視圖集成后的E-R圖,如圖1-14所示。
24、圖1-14 賓館客房管理系統(tǒng)E-R圖5.2 表與字段分析和SQL Server數(shù)據(jù)庫建模表與字段分析是建立在E-R圖基礎(chǔ)上的,我們可以通過E-R圖確定系統(tǒng)中所有表與字段的屬性。表與字段分析后就可以使用SQL Server 2000建立數(shù)據(jù)庫模型了。我們以圖10-14的賓館客房管理系統(tǒng)的E-R圖為基礎(chǔ),可設(shè)計(jì)表字段,然后建立數(shù)據(jù)庫模型。建立的數(shù)據(jù)庫模型如圖1-15所示。圖1-15 賓館客房管理系統(tǒng)的數(shù)據(jù)庫模型6 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫分析完成后,我們就可以對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)了。在賓館客房管理系統(tǒng)中,數(shù)據(jù)庫的設(shè)計(jì)工作主要包括建立管理系統(tǒng)的數(shù)據(jù)庫,創(chuàng)建所需要的表,也可以設(shè)計(jì)相關(guān)的視圖及存儲過程。這些設(shè)計(jì)工作
25、都在SQL Server 2000環(huán)境下操作并實(shí)現(xiàn)。6.1 創(chuàng)建數(shù)據(jù)庫在設(shè)計(jì)數(shù)據(jù)庫表結(jié)構(gòu)之前,首先要創(chuàng)建一個(gè)數(shù)據(jù)庫。本系統(tǒng)使用的數(shù)據(jù)庫名為JdglSys。用戶可以在企業(yè)管理器中創(chuàng)建數(shù)據(jù)庫,步驟如下。(1) 啟動SQL Server 2000數(shù)據(jù)庫在系統(tǒng)桌面上選擇“開始”|“程序”| Microsoft SQL Server |“服務(wù)管理器”命令,然后單擊“啟動”按鈕,即啟動SQL Server 2000。(2) 啟動企業(yè)管理器選擇“開始”|“程序”| Microsoft SQL Server |“企業(yè)管理器”命令,啟動數(shù)據(jù)庫的管理界面。(3) 新建數(shù)據(jù)庫展開Microsoft SQL Serv
26、er | local |“數(shù)據(jù)庫”后,右鍵單擊“數(shù)據(jù)庫”按鈕,在彈出的菜單中選擇“新建數(shù)據(jù)庫”命令后,會彈出新建數(shù)據(jù)庫窗口,如圖1-16所示。圖1-16 新建數(shù)據(jù)庫窗口在“名稱”項(xiàng)中輸入新數(shù)據(jù)庫的名稱JdglSys。單擊“數(shù)據(jù)文件”標(biāo)簽頁后,輸入數(shù)據(jù)庫文件的存放位置;單擊“事務(wù)日志”標(biāo)簽頁后,輸入數(shù)據(jù)庫日志的存放位置,如圖1-17所示。設(shè)置完成后,單擊“確定”按鈕即完成數(shù)據(jù)庫的創(chuàng)建。 圖1-17 數(shù)據(jù)庫文件和日志文件的存放位置讀者也可以在SQL Server提供的查詢分析器中執(zhí)行以下Transact-SQL語句:CREATE DATABASE JdglSys ONPRIMARY ( NAME
27、= JdglSys_Data, FILENAME = 'c:program filesmicrosoft sql servermssqldataJdglSys_Data.mdf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)LOG ON ( NAME = JdglSys_Log, FILENAME = 'c:program filesmicrosoft sql servermssqldataJdglSys_Log.ldf', SIZE = 100MB, MAXSIZE = 200, FILEGROWTH = 20)
28、,GO以上的Transact-SQL語句保存在隨書光盤的“Chap10DBCreateDB.sql”中。6.2 創(chuàng)建表數(shù)據(jù)庫JdglSys包含以下7個(gè)表:用戶信息表(UsersInfo)、客戶信息表(CustomersInfo)、客房類型表(RoomCategory)、客房信息表(RoomsInfo)、客房狀態(tài)表(RoomStatus)、客房業(yè)務(wù)表(RoomOperation)、業(yè)務(wù)記錄表(History)。下面分別介紹這些表的結(jié)構(gòu)。(1) 用戶信息表用戶信息表(UsersInfo)用來保存使用該系統(tǒng)的賓館員工的基本信息,表UsersInfo的結(jié)構(gòu)如表1-14所示。表1-14 用戶信息表(Us
29、ersInfo)編 號字 段 名 稱數(shù) 據(jù) 結(jié) 構(gòu)說 明1UserIdInt用戶編號2NameVarchar(50)用戶姓名3PasswordVarchar(50)密碼4GenderInt性別(0男,1女)5EmailVarchar(50)Email地址6AddressVarchar(50)通訊地址7TelephoneVarchar(50)聯(lián)系電話8DepartmentVarchar(50)所在部門9TypeInt用戶類型(1賓館管理員,2前臺服務(wù)員(2) 客戶信息表客戶信息表(CustomersInfo)用來保存在賓館訂房的客戶的基本信息,表CustomersInfo的結(jié)構(gòu)如表1-15所示。
30、表1-15 客戶信息表(CustomersInfo)編 號字 段 名 稱數(shù) 據(jù) 結(jié) 構(gòu)說 明1CIdentityIdnVarchar(50)身份證號2CNamenVarchar(50)客戶姓名3CPhonenVarchar(50)聯(lián)系電話(3) 客房類型表客房類型表(RoomCategory)用來保存賓館所有客房類型的基本信息,表RoomCategory的結(jié)構(gòu)如表1-16所示。 表1-16 客房類型表(RoomCategory)編 號字 段 名 稱數(shù) 據(jù) 結(jié) 構(gòu)說 明1RCategoryIdInt客房類型編號2NamenVarchar(50)類型名稱3AreaFloat客房面積4BedNumI
31、nt配置床位5PriceMoney客房價(jià)格6AirConditionInt配置空調(diào)(0是,1否)7TVInt配置電視(0是,1否)(4) 客房信息表客房信息表(RoomsInfo)用來保存賓館所有客房的相關(guān)信息,表RoomsInfo結(jié)構(gòu)的如表1-17所示。表1-17 客房信息表(RoomsInfo)編 號字 段 名 稱數(shù) 據(jù) 結(jié) 構(gòu)說 明1RoomIdInt客房號2RCategoryIdInt客房類型編號3RPostitionnVarchar(50)客房位置4DescriptionnVarchar(50)描述(5) 客房狀態(tài)表客房狀態(tài)表(RoomStatus)用來保存客房使用情況的基本信息,表
32、RoomStatus結(jié)構(gòu)的如表1-18所示。表1-18 客房狀態(tài)表(RoomStatus)編 號字 段 名 稱數(shù) 據(jù) 結(jié) 構(gòu)說 明1RoomIdInt客房編號2StatusInt狀態(tài)(1空房,2入住)(6) 客房業(yè)務(wù)表客房業(yè)務(wù)表(RoomOperation)用來保存目前賓館正有客戶入住的客房的相關(guān)信息,表RoomOperation的結(jié)構(gòu)如表1-19所示。 表1-19 客房業(yè)務(wù)表(RoomOperation)編 號字 段 名 稱數(shù) 據(jù) 結(jié) 構(gòu)說 明1RoomIdInt客房編號2BeginTimeDateTime入住時(shí)間3CIdentityIdnVarchar(50)客戶身份證號4Remarksn
33、Varchar(50)備注(7) 業(yè)務(wù)記錄表業(yè)務(wù)記錄表(History)用來保存賓館里所有入住過客戶的客房的業(yè)務(wù)信息,表History的結(jié)構(gòu)如表1-20所示。 表1-20 業(yè)務(wù)記錄表(History)編 號字 段 名 稱數(shù) 據(jù) 結(jié) 構(gòu)說 明1BeginTimeDateTime入住時(shí)間2EndTimeDateTime退房時(shí)間3RoomIdInt客房編號4TotalPriceMoney金額5CIdentityIdnVarchar(50)客戶身份證號6CNamenVarchar(50)客戶姓名7CPhonenVarchar(50)客戶電話8RemarksnVarchar(50)備注用戶可以在企業(yè)管理
34、器手動創(chuàng)建表,但這樣做非常麻煩。為了使讀者能夠方便地創(chuàng)建表,本書提供了創(chuàng)建表的腳本文件,它們保存在隨書光盤的“Chap10DBWsglSQL.sql”中。讀者可以直接在查詢分析器中創(chuàng)建這些表。(1) 創(chuàng)建用戶信息表(UsersInfo)的腳本文件如下:CREATE TABLE dbo.UsersInfo (UserId int NOT NULL ,Name varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Password varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Gender int NULL ,Emai
35、l varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Address varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Telephone varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Department varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Type int NULL ) ON PRIMARY(2) 創(chuàng)建客戶信息表(CustomersInfo)的腳本文件如下:CREATE TABLE dbo.CustomersInf
36、o (CIdentityId nvarchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,CName nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ,CPhone nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY(3) 創(chuàng)建客房類型表(RoomCategory)的腳本文件如下:CREATE TABLE dbo.RoomCategory (RCategoryId int IDENTITY (1, 1) NOT NULL ,Name varchar
37、(50) COLLATE Chinese_PRC_CI_AS NULL ,Area float NULL ,BedNum int NULL ,Price money NULL ,AirCondition int NULL ,TV int NULL ) ON PRIMARY (4) 創(chuàng)建客房信息表(RoomsInfo)的腳本文件如下:CREATE TABLE dbo.RoomsInfo (RoomId int NOT NULL ,RCategoryId int NULL ,RPosition nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Descri
38、ption nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY(5) 創(chuàng)建作者信息表(Authors)的腳本文件如下:CREATE TABLE dbo.Authors (PKId int IDENTITY (1, 1) NOT NULL ,Name nvarchar (40) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARY(6) 創(chuàng)建客房業(yè)務(wù)表(RoomOperation)的腳本文件如下:CREATE TABLE dbo.RoomOperation (RoomId int NOT N
39、ULL ,BeginTime datetime NULL ,CIdentityId nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Remarks nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY(7) 創(chuàng)建業(yè)務(wù)記錄表(History)的腳本文件如下:CREATE TABLE dbo.History (BeginTime datetime NOT NULL ,EndTime datetime NULL ,RoomId int NOT NULL ,TotalPrice money NUL
40、L ,CIdentityId nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ,CName nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ,CPhone nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ,Remarks nvarchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY讀者創(chuàng)建完用戶信息表(UsersInfo)之后,在該表中創(chuàng)建一個(gè)用戶,插入相應(yīng)的信息,并將其用戶類型置為1(賓館管理員)。讀者在運(yùn)行系統(tǒng)時(shí)
41、通過該用戶進(jìn)行登錄,可使用系統(tǒng)所有功能。本實(shí)例中使用的用戶名和密碼均為dragon。另外,讀者在查詢分析器中執(zhí)行這些SQL語句的時(shí)候,首先應(yīng)該將當(dāng)前操作數(shù)據(jù)庫設(shè)置為JdglSys。否則,所有表都將創(chuàng)建到Master數(shù)據(jù)庫中。6.3 創(chuàng)建存儲過程在賓館客房管理系統(tǒng)運(yùn)行過程中,系統(tǒng)會在數(shù)據(jù)庫中頻繁查找或更新各種信息,例如,向客房信息表(RoomsInfo)中插入或刪除新的客房信息,根據(jù)客房類型和狀態(tài)查找客房信息,記錄訂房或退房信息等操作。為了提高系統(tǒng)的運(yùn)行效率,我創(chuàng)建了13個(gè)存儲過程。部分存儲過程的Transact-SQL代碼如下。(1) 存儲過程sp_ValidateUser用于系統(tǒng)在用戶登錄時(shí)
42、驗(yàn)證該用戶身份的有效性。如果該用戶身份有效,返回該用戶的用戶類型。CREATE PROCEDURE sp_ValidateUser( name nvarchar(20), pwd nvarchar(15) , IsValid Int output,type Int output) ASif (select count(Type) from UsersInfo where Name=name and Password=pwd ) =1 begin - type用于記錄該用戶的用戶類型 select type=Type from UsersInfo where Name=name and Pass
43、word=pwd - 該用戶身份有效,IsValid置為1 select IsValid = 1 endelse - 該用戶身份無效,IsValid置為0 select IsValid = 0(2) 存儲過程sp_InsertRoom用于管理員添加新的客房信息時(shí),系統(tǒng)向表中錄入該客房信息。CREATE PROCEDURE sp_InsertRoom( RoomId int,RCategoryId int,RPosition nvarchar(50),Description nvarchar(50) AS - 向表RoomsInfo中插入新的客房信息 insert into RoomsInfo
44、values( RoomId,RCategoryId,RPosition,Description) - 向表RoomStatus中插入新信息,并將該客房狀態(tài)置為1(空房) insert into RoomStatus values( RoomId,1)(3) 存儲過程sp_ShowRoomByCatgAndStatus用于根據(jù)客房類別或狀態(tài)來獲取客房信息。CREATE PROCEDURE sp_ShowRoomByCatgAndStatus( RCategoryId int,Status int) AS - 查找所有客房的信息 if RCategoryId=0 and Status=0 Sel
45、ect r.RoomId, c.Name,s.Status From RoomsInfo r, RoomCategory c, RoomStatus s Where s.RoomId=r.RoomId and c.RCategoryId=r.RCategoryId - 根據(jù)客房類型查找客房信息 else if RCategoryId!=0 and Status=0 Select r.RoomId, c.Name,s.Status From RoomsInfo r, RoomCategory c, RoomStatus s Where s.RoomId=r.RoomId and c.RCateg
46、oryId=r.RCategoryId and r.RCategoryId=RCategoryId - 根據(jù)客房狀態(tài)查找客房信息 else if RCategoryId=0 and Status!=0 Select r.RoomId, c.Name,s.Status From RoomsInfo r, RoomCategory c, RoomStatus s Where s.RoomId=r.RoomId and c.RCategoryId=r.RCategoryId and s.Status=Status - 根據(jù)客房類型和狀態(tài)查找客房信息 else Select r.RoomId, c.N
47、ame,s.Status From RoomsInfo r, RoomCategory c, RoomStatus s Where s.RoomId=r.RoomId and c.RCategoryId=r.RCategoryId and r.RCategoryId=RCategoryId and s.Status=Status(4) 存儲過程sp_GetRoomDetails用于根據(jù)客房號來獲取客房的詳細(xì)信息。CREATE PROCEDURE sp_GetRoomDetails( RoomId int)AS Select r.RoomId, s.Status, c.Name, c.Area,
48、 c.BedNum, c.Price, r.RPosition From RoomsInfo r,RoomCategory c,RoomStatus s Where c.RCategoryId=r.RCategoryId and s.RoomId=r.RoomId and r.RoomId=RoomId(5) 存儲過程sp_DeleteRoom用于管理員刪除客房信息時(shí),系統(tǒng)刪除該客房在表中記錄。CREATE PROCEDURE sp_DeleteRoom ( RoomId int) AS -刪除該客房在表RoomsInfo中的記錄 Delete from RoomsInfo where Roo
49、mId = RoomId -刪除該客房在表RoomStatus中的記錄 Delete from RoomStatus where RoomId = RoomId(6) 存儲過程sp_AddOrder用于在客戶訂房時(shí),系統(tǒng)向表中插入或更新相關(guān)記錄。CREATE PROCEDURE sp_AddOrder ( RoomId int,CName nvarchar(50), CIdentityId nvarchar(50),CPhone nvarchar(50), BeginTime datetime, Remarks nvarchar(50)AS -將表RoomStatus中該客房的狀態(tài)置為2(入住) Update RoomStatus set Status=2 where RoomId=RoomId if (select count(*) from CustomersInfo where CIdentityId=CIdentityId)=0 begin -向表CustomersInfo中插入新的客戶記錄 Insert into CustomersInfo values( CIdentityId, CName,CPhone) end else begin -更新表CustomersInfo中該客戶的記錄 U
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年定制化客戶合作協(xié)議
- 廠區(qū)園林景觀養(yǎng)護(hù)服務(wù)協(xié)議模板2024
- 2024年度高品質(zhì)鋁單板購銷協(xié)議
- 2023-2024學(xué)年浙江省紹興市重點(diǎn)中學(xué)第二學(xué)期高三數(shù)學(xué)試題統(tǒng)練(一)
- 2024年專業(yè)吊車租賃服務(wù)協(xié)議范本
- 2024跨境航空貨物運(yùn)輸協(xié)議范本
- 2024年度高級店長任職協(xié)議
- 2024種苗行業(yè)購銷協(xié)議樣本
- 城市水溝2024年清理維護(hù)協(xié)議樣式
- 2024年個(gè)人經(jīng)營店鋪?zhàn)赓U協(xié)議
- 參保個(gè)人停保申請表
- 牛津版五年級英語上冊期中試卷(含答案)
- 建筑施工規(guī)范大全
- 食品安全自查、從業(yè)人員健康管理、進(jìn)貨查驗(yàn)記錄、食品安全事故處置保證食品安全的規(guī)章制度
- 抗高血壓藥物-課件
- 酒店預(yù)訂確認(rèn)函
- 小學(xué)課愛國主義教育教案
- 人教版八年級上冊英語單詞默寫版全
- 絡(luò)合物的分子軌道理論
- 第六講-中古日本文學(xué)課件
- 《小學(xué)教育政策與法規(guī)》總資料
評論
0/150
提交評論