版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
重慶大學(xué)學(xué)生實(shí)驗(yàn)報告實(shí)驗(yàn)課程名稱數(shù)據(jù)庫原理開課實(shí)驗(yàn)室B1學(xué)院樓104學(xué)院數(shù)統(tǒng)學(xué)院年級大三專業(yè)班統(tǒng)計1班開課時間2015至2016學(xué)年第^學(xué)期總成績教師簽名數(shù)學(xué)與統(tǒng)計學(xué)院制旅館客房及消費(fèi)管理系統(tǒng)姓名學(xué)號任務(wù)王國慶20132058全部簽名:背景隨著社會經(jīng)濟(jì)的發(fā)展,人們對生活質(zhì)量的要求越來越高,人們的生活水平和消費(fèi)意識的提高,促進(jìn)了旅游業(yè)的發(fā)展,作為服務(wù)之一的旅館業(yè)也在不斷的完善服務(wù)體制。它是集餐飲、住宿于一體的立體化服務(wù)體系。面對快速發(fā)展的信息產(chǎn)業(yè)帶來的影響,旅館行業(yè)將面臨著機(jī)遇和挑戰(zhàn),其中顧客可以隨意消費(fèi)并統(tǒng)一結(jié)賬;旅館管理者可及時了解旅館的全部運(yùn)營情況及經(jīng)營走勢,找出運(yùn)轉(zhuǎn)成本,作為經(jīng)營決策的依據(jù)。只有運(yùn)用先進(jìn)的科學(xué)管理手段,利用計算機(jī)管理系統(tǒng)才能更好實(shí)現(xiàn)這一管理模式。因此開發(fā)一套簡單、實(shí)用的中小型旅館管理系統(tǒng)是十分有必要的?,F(xiàn)代旅館業(yè)迅速發(fā)展,新的管理觀念與模式層出不窮。旅館客房管理系統(tǒng)亦隨著旅館管理理念的發(fā)展而發(fā)展。旅館客房管理系統(tǒng)采用了先進(jìn)的數(shù)據(jù)庫理論,多媒體技術(shù),軟件工程理念等,其對客人個性化服務(wù)及全面徹底的信息化,使企業(yè)電算化水平提升到一個新的更高層次,提供大量豐富的基于企業(yè)管理經(jīng)營過程中實(shí)際的數(shù)據(jù)。本系統(tǒng)就是在這樣的一個背景之下,運(yùn)用所學(xué)知識,所建立的一個簡潔的旅館入住以及消費(fèi)的數(shù)據(jù)庫系統(tǒng)模型。
、需求分析階段現(xiàn)我們假設(shè)對一個旅店的業(yè)務(wù)流程進(jìn)行深入了解分析后畫出如下的總數(shù)據(jù)流圖,同時為了分析方便,還繪出了分?jǐn)?shù)據(jù)流圖??倲?shù)據(jù)流圖分?jǐn)?shù)據(jù)流圖①住宿數(shù)據(jù)流圖圖2.2住宿數(shù)據(jù)流圖
②退房數(shù)據(jù)流圖圖2.3退房數(shù)據(jù)流圖圖2.4客房數(shù)據(jù)流圖據(jù)圖可以分析,每個旅客進(jìn)入旅店后首先查看客房空閑表,看看是否有滿足要求的住房,若有則交預(yù)用金,辦理消費(fèi)卡,然后填寫住宿登記單,接著到總服務(wù)臺進(jìn)行住宿登記,拿著住宿單到相應(yīng)的住宿樓交給樓層服務(wù)員,樓層服務(wù)員給予開房住宿,若在住宿期間需要伙食消費(fèi)和娛樂消費(fèi),可憑借個人消費(fèi)卡到相應(yīng)部門消費(fèi),住宿結(jié)束時,則到總臺結(jié)賬,最后離開旅店。當(dāng)準(zhǔn)備用計算機(jī)管理時,首先要根據(jù)數(shù)據(jù)流圖和按照數(shù)據(jù)庫設(shè)計的要求建立各種數(shù)據(jù)表。旅店管理所涉及的數(shù)據(jù)表大致如下旅客登記表:由旅客填寫的登記單整理而成,它可以包括旅客姓名、性別、來源地、單位、身份證號、登記日期、聯(lián)系電話、消費(fèi)卡號等數(shù)據(jù)項(xiàng),其中消費(fèi)卡號由總臺會計填寫,其余由旅客填寫??头勘?給出旅店的所有客房登記,每條記錄表示一個房位,可以包括房序號、樓號、樓層號、房間號、床位號、房間電話、價格(元/天)、已用等數(shù)據(jù)項(xiàng),其中“已用”數(shù)據(jù)項(xiàng)表示該床位已被占用,若是可用則用1表示,否則用0表示。在客房表中專門增加了“房序號”數(shù)據(jù)項(xiàng),它是對所有床位的順序編號,用作為客房表的主碼,若不加入該數(shù)據(jù)項(xiàng),則主碼只能用樓號、樓層號、房間號、床位號等四個數(shù)據(jù)項(xiàng)聯(lián)合構(gòu)成,使用起來是相當(dāng)麻煩的,為了計算機(jī)操作簡便,所以增加房序號作為主碼。客房空閑表:由客房表中所有空閑床位的記錄所組成,它是客房表的一個視圖,選擇條件是“已用”數(shù)據(jù)項(xiàng)的值為0.消費(fèi)卡表:由所有旅客消費(fèi)卡所組成,可以包括卡號、資金總額、住宿費(fèi)、伙食費(fèi)、娛樂費(fèi)、余額等數(shù)據(jù)項(xiàng),其中卡號是該表的主碼,資金總額旅客預(yù)交和補(bǔ)交的資金總和。住宿表:給出所有旅客當(dāng)前所有住房的登記,只需要包括卡號和房序號這兩個數(shù)據(jù)項(xiàng),由于一個旅客可以住用多個床位,所以卡號在表中不唯一,而房序號在表中是唯一的,在需要時可把房序號設(shè)為主碼。通常不需要設(shè)置此主碼,這樣能夠保證每次插入到表中的記錄被順序放置到表尾。住宿費(fèi)表:由消費(fèi)卡表中的卡號、住宿費(fèi)、余額三個數(shù)據(jù)項(xiàng)組成,它是消費(fèi)卡表的一個視圖,是消費(fèi)卡表中的全部記錄在上述三列上的投影。只授予總臺服務(wù)員查看該表和修改住宿費(fèi)和余額值的權(quán)利。伙食費(fèi)表:是消費(fèi)卡表的一個視圖,是消費(fèi)卡表中的全部記錄在卡號、伙食費(fèi)、余額三列的投影。只授予伙食服務(wù)員查看該表和修改伙食費(fèi)和余額值得權(quán)利。娛樂費(fèi)表:是消費(fèi)卡表的一個視圖,是消費(fèi)卡表中的全部記錄在卡號、伙食費(fèi)、余額三列的投影。只授予娛樂服務(wù)員查看該表和修改娛樂費(fèi)和余額值得權(quán)利。催補(bǔ)款表:是消費(fèi)卡表的一個視圖,包括卡號和余額兩項(xiàng)數(shù)據(jù),選擇條件是資金余額不足一天的住宿費(fèi)。只授予總臺服務(wù)員查看該表的權(quán)利。旅店管理所涉及的處理要求大致如下:給旅客建立消費(fèi)卡:即向消費(fèi)卡表中插入一條記錄,該記錄的資金總額為預(yù)交金額,余額也等于預(yù)交金額,其它消費(fèi)金額均采用默認(rèn)值0.向消費(fèi)卡追加資金:即修改消費(fèi)卡表中對應(yīng)記錄的資金總額和余額數(shù)據(jù)項(xiàng)的值,使之增加相應(yīng)的金額。給旅客登記住房:首先把每條由卡號和房序號構(gòu)成的記錄插入到住宿表中,接著計算出該卡號一天的住宿費(fèi),然后修改住宿費(fèi)表,使得對應(yīng)記錄的住宿費(fèi)增加和余額減少相應(yīng)的值,最后還要修改客房表,使相應(yīng)記錄的“已用”屬性的值置為1.每天12點(diǎn)時催款:即查看催補(bǔ)款表,按卡號通知相應(yīng)旅客要么退房,要么補(bǔ)交資金。每天12點(diǎn)半加一天住宿費(fèi)(我們假定只按整天計算,不按半天計算):首先根據(jù)住宿表和客房表計算出每個卡號一天的住宿費(fèi),然后按該卡號修改住宿費(fèi)表中的相應(yīng)記錄,使住宿費(fèi)項(xiàng)增加和余額項(xiàng)減少相應(yīng)的值?;锸诚M(fèi):按旅客使用的卡號修改伙食費(fèi)表中所對應(yīng)的記錄,使伙食費(fèi)項(xiàng)增加和余額項(xiàng)減少一次就餐開支。娛樂消費(fèi):按旅客使用的卡號修改娛樂費(fèi)表中所對應(yīng)的記錄,使娛樂費(fèi)項(xiàng)增加和余額項(xiàng)減少一次娛樂開支。結(jié)算處理:首先要收回消費(fèi)卡,根據(jù)住宿表中該卡號對應(yīng)的所有房序號,把客房表中對應(yīng)記錄的“已用”屬性的值修改為0,接著從住宿表中刪除該卡號對應(yīng)的全部記錄,然后根據(jù)消費(fèi)卡表中的相應(yīng)記錄,退給旅客剩余的金額,刪除該條記錄,最后還要從旅客登記表中刪除掉對應(yīng)的記錄。二、概念設(shè)計階段根據(jù)需求分析結(jié)果,得到的用E-R圖表示的概念設(shè)計結(jié)果如下圖所示,為了清楚起見,只給出了主碼屬性,其他所有屬性均被省略。三、邏輯設(shè)計和物理設(shè)計階段由上一步概念設(shè)計得到四個基本表:客房表、住宿表、消費(fèi)卡表和旅客登記表,得到五個視圖表:客房空閑表、住宿費(fèi)表、伙食費(fèi)表、娛樂費(fèi)表和催補(bǔ)款表。下面我們用SQL語句給出它們的結(jié)構(gòu)定義。CREATEDATABASE旅店管理 /*建立旅店管理數(shù)據(jù)庫*/USE旅店管理 /*使旅店管理數(shù)據(jù)庫成為當(dāng)前庫*/CREATETABLE客房表(房序號INTPRIMARYKEY,樓號INTNOTNULL,樓層號INTNOTNULL,房間號INTNOTNULL,床位號INTDEFAULT1,房間電話CHAR(5),價格INTNOTNULL,已用INTCHECK(已用=0OR已用=1)DEFAULT0)CREATETABLE消費(fèi)卡表(卡號CHAR(6)PRIMARYKEY,資金總額FLOATDEFAULT0,住宿費(fèi)FLOATDEFAULT0,伙食費(fèi)FLOATDEFAULT0,娛樂費(fèi)FLOATDEFAULT0,余額FLOATDEFAULT0,CHECK(余額=資金總額-住宿費(fèi)-伙食費(fèi)-娛樂費(fèi))定義消費(fèi)卡表結(jié)構(gòu)時,我們還可以增加一個檢查約束,讓每個數(shù)值項(xiàng)的值都必須大于等于0,此時可利用下面的修改表結(jié)構(gòu)命令能完成。ALTERTABLE消費(fèi)卡表ADDCHECK(資金總額>=0AND余額>=0)CREATETABLE旅客登記表(姓名CHAR(8)NOTNULL,性別CHAR(2)NOTNULLCHECK(性性別=‘男’OR性別=‘女’),來源地CHAR(10),單位CHAR(10),身份證號CHAR(18)NOTNULL,登記日期DATETIMENOTNULL,聯(lián)系電話CHAR(13),消費(fèi)卡號CHAR(6)NOTNULL,FOREIGNKRY(消費(fèi)卡號)REFERENCES消費(fèi)卡表(卡號))CREATETABLE住宿表(卡號CHAR(6)NOTNULL,房序號INTNOTNULLUNIQUE,FOREIGNKEY(房序號)REFERENCES客房表(房序號),FOREIGNKEY(卡號)REFERENCES消費(fèi)卡表(卡號))CREATEVIEW客房空閑表ASSELECT*FROM客房表WHERE客房表.已用=0在視圖定義語句中,若視圖名后省略列名表,則該視圖包含查詢子句中投影出的所有列。該客房空閑表就包含客房表中的所有列的定義和“已用”列值為0的所有行的內(nèi)容。CREATEVIEW住宿費(fèi)表ASSELECT卡號,住宿費(fèi),余額FROM消費(fèi)卡表CREATEVIEW伙食費(fèi)表ASSELECT卡號,伙食費(fèi),余額FROM消費(fèi)卡表CREATEVIEW娛樂費(fèi)表ASSELECT卡號,娛樂費(fèi),余額FROM消費(fèi)卡表CREATEVIEW催補(bǔ)款表ASSELECT卡號,余額FROM消費(fèi)卡表AWHERE余額<ANY(SELECTSUM(Y,價格)FROM住宿表X,客房表YWHEREA.卡號=X.卡號ANDX.房序號=Y.房序號GROUPBY乂.卡號)AND卡號IN(SELECT卡號FROM住宿表)四、機(jī)器實(shí)現(xiàn)階段機(jī)器實(shí)現(xiàn)的主要任務(wù)和目標(biāo)就是把邏輯階段設(shè)計的結(jié)果,即數(shù)據(jù)庫的邏輯模式(它包括基本表和視圖的定義)在具體的計算機(jī)系統(tǒng)中建立起來,然后按照需求分析對數(shù)據(jù)庫的各種處理要求給出相應(yīng)的實(shí)現(xiàn)方法,由于各方面條件限制,這里我們假定只給出查詢語句的實(shí)現(xiàn)方法,分別如下所示。給旅客建立消費(fèi)卡給旅客建立消費(fèi)卡,就是把一個旅客對應(yīng)的記錄插入到消費(fèi)卡表中。INSERTINT。消費(fèi)卡表(卡號,資金總額,余額)VALUES(@A,@X,@Y)這里我們假定類型為CHAR(6)的字符變量@A中已經(jīng)保存著一個旅客的消費(fèi)卡卡號,類型為FLOAT的實(shí)型變量@X中已經(jīng)保存著該旅客的預(yù)交金額。消費(fèi)卡表中的住宿費(fèi)、伙食費(fèi)和娛樂費(fèi)沒有對應(yīng)值輸入,則自動設(shè)置為默認(rèn)值0.向消費(fèi)卡追加資金UPDATE消費(fèi)卡表SET資金總額=資金總額+@Y余額=資金總額+@YWHERE卡號=@A這里我們?nèi)约俣愋蜑镃HAR(6)的字符變量@A中已經(jīng)保存著一個旅客的消費(fèi)卡卡號,類型為FLOAT的實(shí)數(shù)變量@Y中已經(jīng)保存著該旅客追加的金額。給旅客登記住房此操作分為四步,第一步使用插入語句向住宿表中插入同一卡號的一條或者多條住宿記錄,為了方便操作,我們在這里假定只插入一條記錄,并且其卡號和房序號分別被保存在變量@A和@日中,則使用的插入語句如下:INSERTINTO住宿表(卡號,房序號)
VALUES(@A,@B)第二步查詢出卡號為@A值的一天住宿的費(fèi)用,并把它保存到@乂中。DECLARE@ACHAR(6)/*說明@A為字符類型的變量*/DECLARE@ACHAR(6)/*說明@A為字符類型的變量*/SET@A=‘003’/*給變量@A賦值*/DECLARE@XFLOAT/*說明@X為實(shí)數(shù)類型的變量*/SET@X=(SELECTSUM(Y.價格) /*把查詢結(jié)果賦給變量@X中*/FROM住宿表X,客房表YWHERE@A=X.卡號ANDX.房序號=丫.房序號GROUPBYX,卡號第三步修改住宿表,@A和@乂為上面使用的變量。UPDATE住宿費(fèi)表SET住宿費(fèi)=住宿費(fèi)+@X,余額=余額-@XWHERE卡號=@A第四步修改客房表,@A仍為上面使用的變量。UPDATE客房表SET已用=1WHERE房序號IN(SELECT房序號FROM住宿表WHERE卡號=@A)也可以這樣寫:UPDATE客房表SET已用=1FROM住宿表WHERE客房表.房序號=住宿表.房序號AND住宿表.卡號=@A每天十二點(diǎn)時催款,即查看催款表。SELECT*FROM催補(bǔ)款表每天十二點(diǎn)半加一天住宿費(fèi)。不難發(fā)現(xiàn),這個修改操作較之其它是比較復(fù)雜的,修改住宿費(fèi)的表達(dá)式、修改余額的表達(dá)式和WHERE中的選擇條件表達(dá)式中都會帶有查詢子句。對于住宿費(fèi)表中的每個記錄,若它的卡號在住宿表中有相應(yīng)的記錄,則就查詢出它一天住宿的總費(fèi)用,是住宿費(fèi)表中的住宿費(fèi)字段的值增加這個總費(fèi)用,同時使住宿費(fèi)表中的余額字段的值減少這個總費(fèi)用。需要注意的是:住宿費(fèi)表是消費(fèi)卡表的一個視圖,對住宿費(fèi)表中字段值的修改實(shí)際上是修改消費(fèi)卡表中的相應(yīng)字段值。UPDATE住宿費(fèi)表SET住宿費(fèi)=住宿費(fèi)+(SELECTSUM(Y,價格)FROM住宿表X,客房表YWHERE住宿費(fèi)表.卡號=X.卡號ANDX.房序號=丫.房序號GROUPBY乂.卡號),余額=余額-(SELECTSUM(Y,價格)FROM住宿表X,客房表YWHERE住宿費(fèi)表.卡號=X.卡號ANDX.房序號=丫.房序號GROUPBY乂.卡號)WHERE卡號IN(SELECT卡號FROM住宿表)伙食消費(fèi)在按卡號和一次待就餐開支修改伙食費(fèi)表中對應(yīng)記錄的伙食費(fèi)項(xiàng)和余額項(xiàng)的值之前,先查詢是否超支,若超支則顯示出提示信息,否則才允許就餐和做相應(yīng)的更改。為了方便起見,我們這里假定變量@入和@乂中已經(jīng)分別保存著一個卡號和一次待就餐費(fèi)。SELECT’你的費(fèi)用為',余額,‘!請減少伙食費(fèi)用!'FROM伙食費(fèi)表WHERE卡號=@AAND余額<@X若執(zhí)行此查詢時未顯示出提示信息,則執(zhí)行下面修改語句。UPDATE伙食費(fèi)表SET伙食費(fèi)=伙食費(fèi)+@X,余額=余額-@XWHERE卡號=@A娛樂消費(fèi)此處理過程與伙食消費(fèi)類似SELECT’你的費(fèi)用為’,余額,‘!請減少娛樂費(fèi)用!’FROM娛樂費(fèi)表WHERE卡號=@AAND余額<@X若執(zhí)行此查詢時未顯示出提示信息,則執(zhí)行下面修改語句。UPDATE娛樂費(fèi)表SET娛樂費(fèi)=娛樂費(fèi)+@X,余額=余額-@XWHERE卡號=@A結(jié)算處理此操作需要分四步完成。第一步修改客房表,變量@A中保存著退房者的卡號。UPDATE客房表SET已用=0FROM住宿表WHERE客房表.房序號=住宿表.房序號AND住宿表.卡號=@A第二步刪除住宿表中的卡號值等于@入的值的所有記錄。DELETEFROM住宿表WHERE卡號=@A第三步退款并從消費(fèi)卡表中刪除對應(yīng)記錄。退款金額為:SET@X=(SELECT余額FROM消費(fèi)卡表WHERE卡號=@A)刪除對應(yīng)記錄的操作為:DELETEFROM消費(fèi)卡表WHERE卡號=@A第四步從旅客登記表中刪除卡號值等于@A值的旅客記錄。DELETEFROM旅客登記表WHERE卡號=@A最后在機(jī)器實(shí)現(xiàn)階段要給各基本表輸入一些測試數(shù)據(jù)對各處理過程中所使用的語句進(jìn)行調(diào)試和驗(yàn)證。五、結(jié)束語:通過此次數(shù)據(jù)庫的課程設(shè)計,達(dá)到了學(xué)與用的結(jié)合,增強(qiáng)了對數(shù)據(jù)庫方面應(yīng)用的理解,對自己今后參與開發(fā)數(shù)據(jù)庫系統(tǒng)積累了不少經(jīng)驗(yàn)。在實(shí)驗(yàn)過程中,從建立數(shù)據(jù)開始
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《家樂福模式分析》課件
- 管理顧問工作總結(jié)
- 房地產(chǎn)行業(yè)客服經(jīng)驗(yàn)分享
- 服裝行業(yè)的保安工作總結(jié)
- 中央財經(jīng)大學(xué)財務(wù)管理課件-風(fēng)險與報酬
- 銀行求職自我介紹(15篇)
- 2023-2024年項(xiàng)目部治理人員安全培訓(xùn)考試題(原創(chuàng)題)
- 《電子政務(wù)》課件
- 2024年公司項(xiàng)目部負(fù)責(zé)人安全教育培訓(xùn)試題含答案(模擬題)
- 銷售個人年度工作總結(jié)(7篇)
- 2025年行政執(zhí)法人員執(zhí)法資格考試必考題庫及答案(共232題)
- 2025年北京探礦工程研究所招聘高校應(yīng)屆畢業(yè)生歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025-2030年中國新能源汽車行業(yè)市場分析報告
- 網(wǎng)站建設(shè)合同范本8篇
- 宜賓天原5萬噸氯化法鈦白粉環(huán)評報告
- GB/T 44888-2024政務(wù)服務(wù)大廳智能化建設(shè)指南
- 2024年工廠股權(quán)轉(zhuǎn)讓盡職調(diào)查報告3篇
- 2024年行政執(zhí)法考試題庫及答案(題)
- 針灸推拿題庫及參考答案
- 會計專業(yè)工作簡歷表(中級)
- 頂管施工技術(shù)全面詳解
評論
0/150
提交評論