2012數(shù)據(jù)庫實(shí)務(wù)實(shí)驗(yàn)報(bào)告_酒店前臺管理系統(tǒng) (2)_第1頁
2012數(shù)據(jù)庫實(shí)務(wù)實(shí)驗(yàn)報(bào)告_酒店前臺管理系統(tǒng) (2)_第2頁
2012數(shù)據(jù)庫實(shí)務(wù)實(shí)驗(yàn)報(bào)告_酒店前臺管理系統(tǒng) (2)_第3頁
2012數(shù)據(jù)庫實(shí)務(wù)實(shí)驗(yàn)報(bào)告_酒店前臺管理系統(tǒng) (2)_第4頁
2012數(shù)據(jù)庫實(shí)務(wù)實(shí)驗(yàn)報(bào)告_酒店前臺管理系統(tǒng) (2)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫管理實(shí)務(wù)實(shí)驗(yàn)報(bào)告課程號:B0900980實(shí)驗(yàn)項(xiàng)目:數(shù)據(jù)庫設(shè)計(jì)、創(chuàng)建、管理,數(shù)據(jù)庫操作學(xué)號姓名馬冰潔同組人學(xué)號姓名實(shí)驗(yàn)地點(diǎn)工程學(xué)院機(jī)房(文波)指導(dǎo)教師肖慎勇時(shí)間2012年6月評語(要求): 按時(shí)完成實(shí)驗(yàn);實(shí)驗(yàn)內(nèi)容和過程記錄完整;回答問題完整、正確;實(shí)驗(yàn)報(bào)告的撰寫認(rèn)真、格式符合要求。成績教師簽字肖慎勇一、實(shí)驗(yàn)?zāi)康?理解并掌握數(shù)據(jù)庫設(shè)計(jì)的概念、方法和步驟。2初步應(yīng)用數(shù)據(jù)庫設(shè)計(jì)方法。了解需求分析的內(nèi)容。3重點(diǎn)運(yùn)用ER模型進(jìn)行概念設(shè)計(jì),然后將ER模型轉(zhuǎn)換為關(guān)系模型。4深入理解SQL Server 2005數(shù)據(jù)庫的存儲結(jié)構(gòu)。5深入理解SQL Server 2005的數(shù)據(jù)類型、表對象設(shè)計(jì)與定義。6掌握

2、SQL Server 2005Management studio的應(yīng)用。運(yùn)用交互方式和命令方式建立數(shù)據(jù)庫和表。7認(rèn)識和掌握Transact-SQL 的數(shù)據(jù)庫操作。8深入理解視圖意義。掌握SQL Server 中創(chuàng)建、管理與應(yīng)用視圖的方法。9深入理解數(shù)據(jù)庫安全的概念。10深入理解SQL Server 2005的安全體系框架。11掌握登錄與服務(wù)器角色的概念、操作與應(yīng)用。掌握數(shù)據(jù)庫用戶、固定角色、自定義角色、架構(gòu)的概念、操作與應(yīng)用。掌握數(shù)據(jù)庫權(quán)限的概念、操作與應(yīng)用。12理解事務(wù)的概念。13深入理解并掌握服務(wù)器編程的意義及方法。14能夠編寫各種自定義函數(shù)和存儲過程。15理解觸發(fā)器,并能夠編寫、應(yīng)用觸發(fā)

3、器。二、實(shí)驗(yàn)設(shè)備(環(huán)境)及要求PC、 Windows XP、SQL SERVER 2005三、實(shí)驗(yàn)內(nèi)容及要求 實(shí)驗(yàn)項(xiàng)目:各小組自選的項(xiàng)目。通過調(diào)查、收集信息、分析,寫出分析與設(shè)計(jì)報(bào)告。1. 簡要的系統(tǒng)需求分析包括業(yè)務(wù)分析、功能需求分析、信息需求分析。試分析該系統(tǒng)的基本業(yè)務(wù),計(jì)算機(jī)信息系統(tǒng)需要完成的基本功能、信息系統(tǒng)需要處理的信息。2. 概念設(shè)計(jì)設(shè)計(jì)系統(tǒng)的概念模型,采用ER模型。3. 邏輯設(shè)計(jì)將ER模型為關(guān)系模型,指出每個關(guān)系的主鍵、外鍵和必要的約束。4. 寫出數(shù)據(jù)庫的物理設(shè)計(jì)包括存儲組織結(jié)構(gòu)、表的結(jié)構(gòu)設(shè)計(jì)等。5. T-SQL命令方式創(chuàng)建數(shù)據(jù)庫的操作利用SQL命令創(chuàng)建數(shù)據(jù)庫文件、表、索引、聯(lián)系和

4、主鍵、外鍵等約束。(實(shí)驗(yàn)報(bào)告應(yīng)寫出實(shí)驗(yàn)的過程,包括必要的截圖。)6. 利用T-SQL命令增加、刪除、修改數(shù)據(jù)。7. 利用T-SQL命令進(jìn)行數(shù)據(jù)的檢索和統(tǒng)計(jì)根據(jù)自己設(shè)計(jì)的數(shù)據(jù)庫和輸入的數(shù)據(jù),寫出至少10個查詢要求及對應(yīng)的SQL查詢命令,應(yīng)該包含如下功能:投影和選擇;多表連接;分組統(tǒng)計(jì)與HAVING;子查詢;查詢結(jié)果保存。8. 利用SQL命令創(chuàng)建視圖對象根據(jù)開發(fā)的系統(tǒng)的需要,至少設(shè)計(jì)三個視圖:基于單表的、包含多表連接的、包含統(tǒng)計(jì)運(yùn)算的。利用SQL對視圖進(jìn)行查詢。9. 對視圖進(jìn)行插入、刪除、修改數(shù)據(jù)操作。體會視圖與表的異同。10. 編寫自定義函數(shù)。(1)編寫一個自定義函數(shù),將一個字符串作為自變量,返

5、回顛倒順序的字符串。寫出源代碼。(2) 編寫一個自定義函數(shù),能夠?qū)崿F(xiàn)參數(shù)化查詢的功能。自己設(shè)定函數(shù)的具體要求,然后編寫出來。11. 編寫利用游標(biāo)進(jìn)行數(shù)據(jù)處理的存儲過程。并在存儲過程中應(yīng)用事務(wù)的概念。自己確定過程的具體要求,然后編寫出來。12. 編寫一個實(shí)現(xiàn)修改表的觸發(fā)器,實(shí)現(xiàn)完整性控制。13. 設(shè)置服務(wù)器身份驗(yàn)證模式。用命令創(chuàng)建若干不同驗(yàn)證模式的登錄賬戶。14. 將部分登錄賦予服務(wù)器角色。然后撤消。15. 將部分登錄映射到你的數(shù)據(jù)庫中成為用戶。16. 創(chuàng)建自定義角色、架構(gòu)。17. 通過角色給用戶授權(quán)。18. 直接給用戶授權(quán),驗(yàn)證其獲得權(quán)限前后的操作差別。19. 刪除用戶和自定義的角色。四、回答

6、問題1你如何認(rèn)識需求分析在系統(tǒng)開發(fā)中的地位和重要性?需求分析就是根據(jù)用戶或者客戶的需要來設(shè)計(jì)數(shù)據(jù)庫。只有根據(jù)需求設(shè)計(jì)出的數(shù)據(jù)庫才是有用的,否則整個設(shè)計(jì)過程都是在做無用功。并且在需求設(shè)計(jì)這個過程中根據(jù)具體需要設(shè)計(jì)出模型,后面的具體實(shí)現(xiàn)過程遵照前面設(shè)計(jì)的模型來完成,使得后面的工作能夠更加具有效率。在需求分析中要嚴(yán)格遵守客戶的需求,并且要根據(jù)需求找出最合適的方案,為后面的具體實(shí)現(xiàn)打下基礎(chǔ)。需求分析是整個開發(fā)過程的第一個階段,也是最重要的一步。2設(shè)計(jì)ER圖、關(guān)系模型分別屬于數(shù)據(jù)庫設(shè)計(jì)的哪一階段?設(shè)計(jì)ER圖屬于概念設(shè)計(jì)階段,關(guān)系模型屬于邏輯設(shè)計(jì)階段。3主鍵、外鍵對于關(guān)系數(shù)據(jù)庫的意義何在?主鍵是關(guān)系中能唯

7、一區(qū)分、確定不同元組的單個屬性或者屬性組合。外鍵能夠保證數(shù)據(jù)庫的數(shù)據(jù)的完整性和一致性,通過外鍵,能夠?qū)⑾嗷リP(guān)聯(lián)的表聯(lián)系起來。4在數(shù)據(jù)庫存儲結(jié)構(gòu)設(shè)計(jì)時(shí)要考慮哪些因素?需要綜合考慮存取時(shí)間、存儲空間利用率和維護(hù)代價(jià)三方面的因素。5在表設(shè)計(jì)時(shí)對于數(shù)據(jù)類型的選擇和使用如何考慮?數(shù)據(jù)類型的選擇首先要根據(jù)該屬性的性質(zhì)進(jìn)行選擇,如數(shù)值型,日期型等等。在確定基本類型之后,要考慮數(shù)據(jù)存取時(shí)間、取值范圍、處理效率多方面的因素,選取合適的數(shù)據(jù)類型,這主要是在數(shù)值類型上的選擇。6. 交互式如何實(shí)現(xiàn)表之間的聯(lián)系?SQL命令如何實(shí)現(xiàn)表之間的聯(lián)系?交互式:單擊工具欄上的“關(guān)系”按鈕,打開“外鍵關(guān)系”對話框,在其中設(shè)置各表間

8、關(guān)系。SQL命令:利用FOREIGN KEY REFERENCES referenced_table_name(referenced_column) ON DELETE NO ACTION|CASCADE|SET NULL|SET DEFAULT ON UPDATE NO ACTION|CASCADE|SET NULL|SET DEFAULT7如果在定義表時(shí)進(jìn)行了主鍵、外鍵以及約束等完整性設(shè)置,對于數(shù)據(jù)的輸入有何影響?試舉例說明。 主鍵和外鍵一般不允許為空,如果沒有輸入值的話會報(bào)錯。再比如“性別”這一字段如果開發(fā)人員已經(jīng)約束了其值只能為“男”或者“女”,當(dāng)使用者輸入除以上兩個值之外的任何值都會

9、報(bào)錯。8用INSERT INTO 命令輸入,如果數(shù)據(jù)與字段數(shù)量和要求不一致有什么問題?當(dāng)表定義中有默認(rèn)值的時(shí)候,插入記錄是否可以省略該字段的數(shù)據(jù)?如果數(shù)據(jù)與字段數(shù)量和要求不一致,只有在少于并且沒有寫出的那個已定義了默認(rèn)值或者可為空的情況下才為正確,其他情況均是錯誤的。當(dāng)表定義中有默認(rèn)值的時(shí)候,插入記錄可以省略該字段的數(shù)據(jù)。9HAVING子句有什么作用?HAVING子句和WHERE語句一樣都是實(shí)現(xiàn)查詢功能中條件的控制和數(shù)據(jù)的選擇,WHERE 子句不能包含聚集函數(shù),而HAVING 子句一般包含聚集函數(shù)。HAVING 子句還可以用來對分組結(jié)果進(jìn)行篩選。10當(dāng)通配字符作為普通字符參與匹配查詢時(shí),如何解

10、決這樣的問題? 通過在ESCAPE子句中指定轉(zhuǎn)義符、在查詢條件下使用轉(zhuǎn)義符指定某個通配字符是正常字符;將通配符用方括號括起來,指定一個字符、字符串或范圍,要求所匹配對象為它們中任意一個。11可否利用視圖進(jìn)行數(shù)據(jù)的插入、刪除、修改? 對由多表連接成的視圖修改數(shù)據(jù)時(shí),不能同時(shí)影響一個以上的基表,也不能刪除視圖中的數(shù)據(jù)對視圖上的某些列不能修改,這些列是:計(jì)算列,內(nèi)置函數(shù)列和行集合函數(shù)列對具有NOT NULL 的列進(jìn)行修改時(shí)可能會出錯。通過視圖修改或者插入數(shù)據(jù)時(shí),必須保證未顯示的具有NOT NULL 屬性的列有值,可以是默認(rèn)值,IDENTITY 等,否則不能像視圖中插入數(shù)據(jù)行如果某些列因?yàn)橐?guī)則或者約束

11、的限制不能接受從視圖插入的數(shù)據(jù)時(shí),則插入數(shù)據(jù)可能會失敗12根據(jù)自己的體會,談?wù)勔晥D在數(shù)據(jù)庫體系中的作用。視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實(shí)的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中以存儲的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用視圖時(shí)動態(tài)生成。視圖中看到的就是需要的。視圖不僅可以簡化用戶對數(shù)據(jù)的理解,也可以簡化他們的操作。那些被經(jīng)常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件。視圖還保證了數(shù)據(jù)的安全性。通過視圖用戶只能查詢和修改他們所能見到的數(shù)據(jù)。數(shù)據(jù)庫中的其它數(shù)據(jù)則既看不見也取不到。數(shù)據(jù)庫授權(quán)命令

12、可以使每個用戶對數(shù)據(jù)庫的檢索限制到特定的數(shù)據(jù)庫對象上,但不能授權(quán)到數(shù)據(jù)庫特定行和特定的列上。13視圖是如何保存的?視圖中的數(shù)據(jù)是否真的存儲在文件中?視圖是一個虛擬表,是以腳本的形式存在于數(shù)據(jù)庫中,即其中數(shù)據(jù)仍然是原來表的數(shù)據(jù)。視圖中的數(shù)據(jù)任然是表中的數(shù)據(jù),并不真的存儲在文件中。14SQL SERVER有幾種身份驗(yàn)證模式?區(qū)別是什么?不同驗(yàn)證模式的登錄賬戶有何區(qū)別?SQL Server2005提供了兩種對數(shù)據(jù)庫資源的訪問進(jìn)行身份驗(yàn)證的模式:Windows身份驗(yàn)證和混合模式身份驗(yàn)證。Windows身份驗(yàn)證。配置SQL Server2005使用Windows身份驗(yàn)證時(shí),只有通過身份驗(yàn)證的Window

13、s用戶可以訪問SQL實(shí)例。對于每個需要訪問SQL實(shí)例的Windows用戶,必須為其添加一個Windows登錄。且該登錄帳戶必須為計(jì)算機(jī)的用戶方可以訪問SQL Server。混合模式身份驗(yàn)證。再混合模式身份驗(yàn)證下,Windows用戶和SQL用戶都可以訪問數(shù)據(jù)庫實(shí)例。需要為非Windows用戶提供訪問權(quán)限時(shí),比如說另一個客戶操作系統(tǒng)的用戶需要訪問SQL Server時(shí)就使用混合模式身份驗(yàn)證。15Sa賬戶有何特點(diǎn)? Sa賬戶是SQL Server的特殊賬戶,sa賬戶擁有服務(wù)器和所有的數(shù)據(jù)庫。即Sa賬戶擁有最高的管理權(quán)限,可以執(zhí)行服務(wù)器范圍內(nèi)所有操作。它是以SQL Server身份驗(yàn)證的,所以必須設(shè)置

14、一個密碼。同時(shí),sa賬戶的屬性不可以更改,密碼可以修改。Sa登錄時(shí)無法刪除的。16共有幾種服務(wù)器角色?最高權(quán)限的角色是什么?能夠創(chuàng)建數(shù)據(jù)庫的角色是哪個?共有8種固定服務(wù)器角色,分別是:sysadmin,serveradmin,setupadmin,securityadmin,processadmin,dbcreator,diskadmin,bulkadmin;同時(shí)每一個登錄用戶都屬于public服務(wù)器角色。最高權(quán)限的角色是sysadmin;能夠創(chuàng)建數(shù)據(jù)庫的角色是:sysadmin,dbcreator;17數(shù)據(jù)庫用戶和登錄賬戶有什么關(guān)系?guest是什么用戶?有何作用?這是兩種不同級別的安全機(jī)制

15、,登錄賬戶是SQL Server級的安全性設(shè)置,而數(shù)據(jù)庫用戶則是數(shù)據(jù)庫級的安全性設(shè)置。登錄賬戶用于登錄服務(wù)器,但是當(dāng)某一用戶要訪問某個數(shù)據(jù)庫時(shí),除了可以成為服務(wù)器的一個登錄以外,還必須成為這個數(shù)據(jù)庫的用戶賬戶,即獲得一定的授權(quán)。數(shù)據(jù)庫用戶賬號在一般情況下是從某個登錄賬戶中映射過來的。Guest是來賓用戶,是用來共享文件的。任何一個登錄都可以以此身份訪問數(shù)據(jù)庫。Guest自動本身只具有public權(quán)限。也可以由其他用戶授權(quán)。18數(shù)據(jù)庫角色有哪兩類?PUBLIC角色有何特點(diǎn)?數(shù)據(jù)庫角色分為固定的數(shù)據(jù)庫角色和用戶定義數(shù)據(jù)庫角色。每個數(shù)據(jù)庫都有一系列固定數(shù)據(jù)庫角色。雖然每個數(shù)據(jù)庫中都存在名稱相同的角色

16、,但各個角色的作用域只是在特定的數(shù)據(jù)庫內(nèi)。用戶定義數(shù)據(jù)庫角色是用戶根據(jù)工作的職能定義一系列角色,并給每個角色指派了適合這項(xiàng)工作的權(quán)限。從而在數(shù)據(jù)庫中管理這些權(quán)限。PUBLIC角色的特點(diǎn):默認(rèn)不具有任何權(quán)限,但用戶可對此角色進(jìn)行授權(quán),他不能被刪除,是所有user自動擁有的角色。數(shù)據(jù)庫中的每個用戶都屬于 public 數(shù)據(jù)庫角色。如果想讓數(shù)據(jù)庫中的每個用戶都能有某個特定的權(quán)限,則將該權(quán)限指派給 public 角色。如果沒有給用戶專門授予對某個對象的權(quán)限,他們就使用指派給 public 角色的權(quán)限。19用戶與架構(gòu)有什么關(guān)系?系統(tǒng)默認(rèn)架構(gòu)是什么?怎樣為用戶指定架構(gòu)?SQL Server 2000中數(shù)據(jù)

17、庫用戶和構(gòu)架是隱式連在一起的,架構(gòu)將用戶和權(quán)限之間建立了一個間接地方式。數(shù)據(jù)庫架構(gòu)是一個獨(dú)立于數(shù)據(jù)庫用戶的非重復(fù)命名空間,可以將架構(gòu)視為對象的容器。每個數(shù)據(jù)庫用戶都是與該用戶同名架構(gòu)的所有者;而在SQL Server 2005中構(gòu)架和用戶是不同的實(shí)體。一個對象只能屬于一個架構(gòu),就像一個文件只能存放于一個文件夾中一樣。與文件夾不同的是,架構(gòu)是不能嵌套的。系統(tǒng)默認(rèn)架構(gòu)是dbo架構(gòu);通過使用CREATE USER 和ALTER USER 語句,可以分配一個默認(rèn)架構(gòu);也可以通過SSMS在該用戶的屬性下面分配一個默認(rèn)架構(gòu)。20. 什么是安全對象?怎樣為數(shù)據(jù)庫用戶指定查詢表的權(quán)限?安全對象是SQL Ser

18、ver 數(shù)據(jù)庫引擎授權(quán)系統(tǒng)控制對其進(jìn)行訪問的資源。安全對象范圍有服務(wù)器、端點(diǎn)和架構(gòu)。為指定數(shù)據(jù)庫用戶授予table的權(quán)利,然后在下面的權(quán)限中選擇select即可。 授權(quán)命令:GRANT ALL PRIVILEGES | permission ( column ,.n ) ,.n ON class : securable TO principal ,.n WITH GRANT OPTION AS principal 21 簡述自定義函數(shù)、存儲過程和觸發(fā)器的異同。 自定義函數(shù):接受參數(shù)、執(zhí)行操作并且將運(yùn)算結(jié)果以值的形式返回的例程。自定義函數(shù)有且只有一個返回值,就像普通的函數(shù)一樣,可以直接在表達(dá)式中

19、嵌入調(diào)用。 存儲過程:是一個可重用的代碼模塊,可以高效率地完成指定的操作。存儲過程可以沒有返回值,也可以有任意個輸出參數(shù),必須單獨(dú)調(diào)用。 觸發(fā)器:當(dāng)表或視圖中的某些重要數(shù)據(jù)發(fā)生變化 時(shí),為了保持?jǐn)?shù)據(jù)的一致性和完整性,可以自動執(zhí)行某段程序保證相關(guān)聯(lián)其他數(shù)據(jù)也跟著進(jìn)行相應(yīng)的變化。能完成這種功能的程序就是觸發(fā)器,它是一種特殊類型的存儲過程。觸發(fā)器是一種特殊類型的存儲過程,但是不能直接被調(diào)用執(zhí)行,只能自動執(zhí)行,在對特定表或列作特定類型的數(shù)據(jù)修改時(shí)執(zhí)行。22 什么是游標(biāo)?應(yīng)用游標(biāo)的步驟是什么? 游標(biāo)是一種處理數(shù)據(jù)的方法,它可以對結(jié)果集進(jìn)行逐行處理,也可以指向結(jié)果集中的任意位置,并對該位置的數(shù)據(jù)進(jìn)行處理。

20、 應(yīng)用游標(biāo)的步驟:聲明游標(biāo)打開游標(biāo)讀取游標(biāo)關(guān)閉游標(biāo)釋放游標(biāo)。五、分析討論首先第18個關(guān)于驗(yàn)證授權(quán)前后用戶操作的差別那步我不會驗(yàn)證,在游標(biāo)那題里面也沒有用到事務(wù),感覺自己在游標(biāo)、自定義編程、存儲過程等方面的基礎(chǔ)及學(xué)習(xí)較為薄弱。剛開始將系統(tǒng)想得很大,后來在做的過程中發(fā)現(xiàn)一環(huán)套一環(huán),如果做整個酒店管理系統(tǒng)真的很復(fù)雜,還包括財(cái)務(wù)管理、倉庫管理、員工管理等方面,最后我和搭檔商量決定只做客房及顧客信息管理等的內(nèi)容,實(shí)現(xiàn)的功能也相對較少。相信經(jīng)過一步一步的學(xué)習(xí),我們的能力也會進(jìn)一步的提升,努力作出比較完善的信息系統(tǒng)。 以下為本次實(shí)驗(yàn)的過程記錄報(bào)告撰寫。(可包括必要的截圖)MC酒店前臺管理系統(tǒng)一、 系統(tǒng)需求分

21、析1、 業(yè)務(wù)分析 ·工作人員登錄:工作人員登錄,并且有權(quán)限的限制,不同的權(quán)限允許的操作不同; ·客房預(yù)訂:客人可以提前預(yù)定房間,可以要求房間的類型,入住時(shí)間等; ·取消預(yù)定:客人可以對已經(jīng)預(yù)定的客房進(jìn)行取消預(yù)定; ·入住登記:對入住的客戶的信息進(jìn)行錄入,客戶入住房間; ·退房登記:入住的客戶離開,進(jìn)行退房登記,更新客房客戶信息; ·客房信息查詢:客戶可以要求查詢自己的房間號,剩余房間數(shù)量,房間信息等信息; ·客戶信息查詢:客戶可以要求查詢自己的相關(guān)信息,酒店可以根據(jù)需要查詢客戶的信息;2、 功能需求分析 ·功能總流

22、程圖酒店前臺管理系統(tǒng)登錄窗口身份驗(yàn)證權(quán)限識別相關(guān)操作預(yù)定房間取消預(yù)定退房登記客房信息查詢?nèi)胱〉怯浛蛻粜畔⒉樵凃?yàn)證失敗·客房預(yù)定客房預(yù)訂是否有空余房間預(yù)定失敗預(yù)定房間登記、修改相關(guān)信息查詢否是·取消預(yù)定取消預(yù)定預(yù)定信息刪除、修改相關(guān)信息查詢?nèi)∠A(yù)定操作·入住登記入住登記是否預(yù)定查詢住房信息及要求,確認(rèn)入住房間確認(rèn)預(yù)定信息及入住房間登記入住信息,修改相關(guān)信息·退房登記退房登記入住信息修改客戶及客房相關(guān)信息查詢·信息查詢信息查詢客房信息查詢客戶信息查詢3、信息需求分析 ·工作人員登錄:需要處理工作人員的信息,驗(yàn)證賬號密碼是否正確且互相匹配,

23、并且授予該工作人員一定的操作權(quán)限,只能進(jìn)行權(quán)限范圍內(nèi)的操作。 ·客房預(yù)訂:需要處理客房及客戶的信息,修改客房的狀態(tài),以及入住時(shí)間;簡單登記客戶的信息。 ·取消預(yù)定:需要處理客房及客戶的信息,修改客房的狀態(tài),以及入住時(shí)間;修改客戶的預(yù)定信息。 ·入住登記:需要處理客房及客戶的信息,查詢客戶是否預(yù)定過房間,若預(yù)定,則登記客房和客戶的各項(xiàng)信息;若沒有預(yù)定,則先查詢是否有符合條件的房間,如果有,則登記客房和客戶的各項(xiàng)信息,如果沒有,則入住失敗。 ·退房登記:需要處理客房及客戶的信息,查詢客戶及客房的相關(guān)信息,并修改客房的各項(xiàng)信息以及客戶的退房時(shí)間及入住天數(shù)。 &

24、#183;客戶信息查詢:需要處理客戶的信息,根據(jù)需要查詢客戶的各項(xiàng)信息。 ·客房信息查詢:需要處理客房的信息,根據(jù)需要查詢客戶的各項(xiàng)信息。二、 概念設(shè)計(jì)1. 整體ER圖房間客戶工作人員入住操作客戶編號客戶姓名客戶性別身份證號客戶電話客戶地址是否預(yù)定消費(fèi)金額付款時(shí)間備注客戶編號房間號入住時(shí)間退房時(shí)間入住天數(shù)入住登記o預(yù)定客房取消預(yù)定信息查詢編號密碼權(quán)限房間號狀態(tài)類型m1mn2. 部分組成圖房間Rooms房間號RoomNo狀態(tài)StatusNo類型TypeNo工作人員Workers編號EmployeeId密碼PassWord權(quán)限Restricte客戶Client客戶編號ClientID客戶

25、姓名ClientName客戶性別ClientSex身份證號ClientCertificateID客戶電話ClientPhone客戶地址ClientAdress是否預(yù)定ClientBookOrNot消費(fèi)金額ClientConsume付款時(shí)間PaymentTime備注ClientRemarks工作人員Works操作Operation房間Rooms入住登記o預(yù)定客房取消預(yù)定信息查詢客戶編號ClientID客戶Client入住房間號RoomNo入住時(shí)間LiveDate退房時(shí)間OutDate入住天數(shù)房間Rooms三、 邏輯設(shè)計(jì)客戶信息表員工登錄信息表房間信息表房間狀態(tài)信息表房間類型信息表入住信息表四、

26、數(shù)據(jù)庫的物理設(shè)計(jì)存儲組織結(jié)構(gòu):數(shù)據(jù)庫是依照某種數(shù)據(jù)模型組織起來并存放二級存儲器中的數(shù)據(jù)集合。這種數(shù)據(jù)集合具有如下特點(diǎn):盡可能不重復(fù),以最優(yōu)方式為某個特定組織的多種應(yīng)用服務(wù),其數(shù)據(jù)結(jié)構(gòu)獨(dú)立于使用它的應(yīng)用程序,對數(shù)據(jù)的增、刪、改和檢索由統(tǒng)一軟件進(jìn)行管理和控制。從發(fā)展的歷史看,數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。數(shù)據(jù)庫的基本結(jié)構(gòu)分三個層次,反映了觀察數(shù)據(jù)庫的三種不同角度。(1)物理數(shù)據(jù)層。它是數(shù)據(jù)庫的最內(nèi)層,是物理存貯設(shè)備上實(shí)際存儲的數(shù)據(jù)的集合。這些數(shù)據(jù)是原始數(shù)據(jù),是用戶加工的對象,由內(nèi)部模式描述的指令操作處理的位串、字符和字組成。(2)概念數(shù)據(jù)層。它是數(shù)據(jù)庫的中間一層,是數(shù)據(jù)

27、庫的整體邏輯表示。指出了每個數(shù)據(jù)的邏輯定義及數(shù)據(jù)間的邏輯聯(lián)系,是存貯記錄的集合。它所涉及的是數(shù)據(jù)庫所有對象的邏輯關(guān)系,而不是它們的物理情況,是數(shù)據(jù)庫管理員概念下的數(shù)據(jù)庫。(3)邏輯數(shù)據(jù)層。它是用戶所看到和使用的數(shù)據(jù)庫,表示了一個或一些特定用戶使用的數(shù)據(jù)集合,即邏輯記錄的集合。數(shù)據(jù)庫不同層次之間的聯(lián)系是通過映射進(jìn)行轉(zhuǎn)換的。表的結(jié)構(gòu)設(shè)計(jì):1.客戶信息表ClientInfo客戶編號(ClientID) char(8) 主鍵客戶姓名(ClientName) varchar(30) 非空客戶性別(ClientSex) char(4)身份證號ClientCertificateID varchar(18)

28、非空出生日期(ClientBirthday) datetime,聯(lián)系電話(ClientPhone) varchar(12) 非空是否預(yù)定(ClientBookOrNot) int住址(ClientAdress )varchar(50)消費(fèi)金額(ClientConsume) money結(jié)賬日期(PaymentTime) datetime備注(ClientRemarks) varchar(40)2.房間信息表RoomInfo房間號(RoomNo) int 主鍵狀態(tài)號(StatusNo) int 非空類型號(TypeNo) int 非空房間備注(RoomRemarks varchar(40)3.房間

29、狀類型表RoomType類型號TypeNo) int 主鍵類型名稱(TypeName) varchar(10) 非空該類房間數(shù)(TypeAmount) int 非空價(jià)格(Price) money 非空4.房間狀態(tài)表RoomStatus狀態(tài)號(StatusNo) int 主鍵狀態(tài)名(RoomStatus) varchar(10) 非空該狀態(tài)房間數(shù)(StatusAmount) int 非空5.工作人員登錄表LoginInfo員工編號(EmployeeId) char(8)密碼(PassWord char(6)) 非空權(quán)限(Restricte) int 非空五. T-SQL命令方式創(chuàng)建數(shù)據(jù)庫的操作利

30、用SQL命令創(chuàng)建數(shù)據(jù)庫文件、表、索引、聯(lián)系和主鍵、外鍵等約束。1、創(chuàng)建數(shù)據(jù)庫文件create database MC酒店前臺管理系統(tǒng)onprimary (name='MC酒店前臺管理系統(tǒng)_data',filename='H:數(shù)據(jù)庫事務(wù)實(shí)驗(yàn)馬冰潔1009030116馬冰潔MC酒店前臺管理系統(tǒng).mdf',size=50,maxsize=100,filegrowth=10)log on (name='MC酒店前臺管理系統(tǒng)_log',filename='H:數(shù)據(jù)庫事務(wù)實(shí)驗(yàn)馬冰潔1009030116馬冰潔MC酒店前臺管理系統(tǒng).ldf',si

31、ze=10,maxsize=25,filegrowth=5)2、創(chuàng)建表use MC酒店前臺管理系統(tǒng)Create table RoomStatus(StatusNo int Primary key,RoomStatus varchar(10) not null,StatusAmount int not null)Create table RoomType(TypeNo int Primary key,TypeName varchar(10) not null,TypeAmount int not null,Price money not null)CREATE TABLE RoomInfo(Ro

32、omNo int PRIMARY KEY,StatusNo int NOT NULL,TypeNo int NOT NULL,RoomRemarks varchar(40),foreign key (StatusNo) references RoomStatus(StatusNo)on update cascade,foreign key (TypeNo) references RoomType(TypeNo)on update cascade,)Create TABLE ClientInfo(ClientID char(8) PRIMARY KEY,ClientName varchar(30

33、) not null,ClientSex char(4),ClientCertificateID varchar(18) not null,ClientBirthday datetime,ClientPhone varchar(12) not null,ClientBookOrNot int,ClientAdress varchar(50),ClientConsume money,PaymentTime datetime,ClientRemarks varchar(40),)CREATE TABLE LoginInfo(EmployeeId char(8) PRIMARY KEY,PassWo

34、rd char(6) not null,Restricte int not null,)create table ReInfo(ClientID char(8) NOT NULL,RoomNo int NOT NULL, LiveDate datetime,OutDate datetime,DayNo AS OutDate-LiveDate,primary key (RoomNo,ClientID),foreign key (RoomNo) references RoomInfo(RoomNo),FOREIGN KEY (ClientID) REFERENCES ClientInfo(Clie

35、ntID) 3、創(chuàng)建索引create index sroominfoon ReInfo(ClientID ASC,RoomNo)use MC酒店前臺管理系統(tǒng)GO EXEC sp_helpindex ReInfoGOcreate index sclientinfoon ClientInfo(ClientID ASC,ClientName)use MC酒店前臺管理系統(tǒng)GO EXEC sp_helpindex ClientInfoGO六. 利用T-SQL命令增加、刪除、修改數(shù)據(jù)。1、插入數(shù)據(jù):登記客戶基本信息,入住信息,管理客房信息USE MC酒店前臺管理系統(tǒng)INSERT INTO ClientIn

36、fovalues('C0000004','馬冰潔','女','#39;,'1993-01-23','5927195260',2,'中國安徽省',1000,'2011-07-10 09:06:07','需要早餐')INSERT INTO ClientInfovalues('C0000001','林靜','男','#39;,'

37、1982-11-23','#39;,0,'中國北京市朝陽路',3100,'2011-07-10 09:06:07','每日:分前不要打掃其房間')INSERT INTO ClientInfovalues('C0000002','葉華','男','#39;,'1988-01-23','#39;,0,'中國廈門市鼓浪嶼',3000,'2011-07

38、-19 19:06:07','每日換枕頭')INSERT INTO ClientInfovalues('C0000003','素素','女','#39;,'1982-11-23','#39;,1,'中國北京市朝陽路',3100,'2011-07-10 09:06:07','對海鮮過敏')INSERT INTO RoomInfovalues(8204,2,4,'')IN

39、SERT INTO RoomInfovalues(5203,2,4,'')INSERT INTO RoomInfovalues(2222,2,4,'')INSERT INTO RoomInfovalues(8888,1,5,'')INSERT INTO RoomInfovalues(3402,0,1,'')INSERT INTO RoomInfovalues(2202,2,2,'')INSERT INTO RoomInfovalues(2201,1,2,'') INSERT INTO RoomSta

40、tusvalues(2,'不空閑',178) INSERT INTO RoomStatusvalues(0,'已預(yù)訂',20) INSERT INTO RoomStatusvalues(1,'空閑',99)INSERT INTO RoomTypevalues(4,'商務(wù)套房',80,400)INSERT INTO RoomTypevalues(1,'單人房',40,120)INSERT INTO RoomTypevalues(2,'標(biāo)準(zhǔn)間',100,150)INSERT INTO RoomTypev

41、alues(5,'總統(tǒng)套房',2,1888)INSERT INTO RoomTypevalues(3,'豪華間',60,270)INSERT INTO LoginInfovalues('A0000007','WWWNDX',0)INSERT INTO LoginInfovalues('B0000001','123456',1)INSERT INTO ReInfovalues('C0000001',8204,'2011-07-05 09:06:07','2011

42、-07-10 09:06:07')INSERT INTO ReInfovalues('C0000002',5203,'2011-07-04 19:06:07','2011-07-10 09:06:07')INSERT INTO ReInfovalues('C0000003',2222,'2011-07-09 09:06:07','2011-07-13 19:06:07')INSERT INTO ReInfovalues('C0000004',2202,'2011-07

43、-09 09:06:07','2011-07-13 19:06:07')2、修改數(shù)據(jù)USE MC酒店前臺管理系統(tǒng)GO-客戶調(diào)房間update ReInfoset RoomNo=2201where ClientID='C0000004'-客戶入住修改房間狀態(tài)update RoomInfoset StatusNo=2where RoomNo=2202-將客戶的消費(fèi)減去200元,但因?yàn)橹笤O(shè)置了一個保護(hù)安全性的觸發(fā)器所以這個應(yīng)該執(zhí)行不了update ClientInfoset ClientConsume=ClientConsume-200where Clien

44、tID='C0000004'3、刪除數(shù)據(jù)-客戶退房delete from ReInfowhere ClientID='C0000004'-刪除客戶信息delete from ClientInfowhere ClientName='馬冰潔'七. 利用T-SQL命令進(jìn)行數(shù)據(jù)的檢索和統(tǒng)計(jì)根據(jù)自己設(shè)計(jì)的數(shù)據(jù)庫和輸入的數(shù)據(jù),寫出至少10個查詢要求及對應(yīng)的SQL查詢命令,應(yīng)該包含如下功能:投影和選擇;多表連接;分組統(tǒng)計(jì)與HAVING;子查詢;查詢結(jié)果保存。USE MC酒店前臺管理系統(tǒng)Go-1.查詢所有顧客姓名SELECT ClientName from Cl

45、ientInfo-2.查詢空閑房間SELECT RoomNo from RoomInfo where StatusNo=1-3.顯示每個房間客戶的備注要求SELECT ClientInfo.ClientID,RoomNo,ClientName,ClientSex,ClientRemarks from ClientInfo,ReInfo where ClientInfo.ClientID=ReInfo.ClientID -4.查詢男女顧客各自人數(shù)select ClientSex,Count(ClientSex) as 人數(shù)from ClientInfo group by ClientSex-5.

46、查詢?nèi)司杖氪笥?000的客房類型SELECT TypeName,AVG(ClientConsume) AS 平均收入from RoomType,ClientInfo,ReInfo,RoomInfowhere RoomInfo.RoomNo=ReInfo.RoomNo and ClientInfo.ClientID=ReInfo.ClientID and RoomInfo.TypeNo=RoomType.TypeNoGroup by TypeName Having AVG(ClientConsume)>1000-6.從RoomInfo表查詢共有幾種類型的客房SELECT TypeNo f

47、rom RoomInfo GROUP BY TypeNo HAVING COUNT(*)>2-7.查詢?nèi)胱〕^兩間房的客房類型的客房號SELECT RoomNo from RoomInfo WHERE TypeNo IN(SELECT TypeNo from RoomInfo GROUP BY TypeNo HAVING COUNT(*)>2)-8.查詢價(jià)格超過酒店客房平均價(jià)格的客房信息SELECT * from RoomType where Price>(SELECT AVG(Price) from RoomType)-9.查詢來自中國北京市XXX的客戶姓名SELECT C

48、lientName from ClientInfo where ClientSex='男' AND ClientAdress LIKE '中國北京市%'-10.查詢所有商務(wù)套房的基本信息select RoomNo,StatusNo,RoomRemarksfrom RoomInfowhere TypeNo=(select TypeNo from RoomType where TypeName='商務(wù)套房')八. 利用SQL命令創(chuàng)建視圖對象根據(jù)開發(fā)的系統(tǒng)的需要,至少設(shè)計(jì)三個視圖:基于單表的、包含多表連接的、包含統(tǒng)計(jì)運(yùn)算的。use MC酒店前臺管理系統(tǒng)

49、go-1.創(chuàng)建VIP顧客基本信息視圖create view clientVIPinfoasselect ClientID,ClientName,ClientSex,ClientCertificateID,ClientBirthday,ClientPhone,ClientConsumefrom ClientInfowhere ClientConsume>2000select * from clientVIPinfo-2.創(chuàng)建男顧客的基本信息視圖create view clientmaninfoasselect ClientID,ClientName,ClientSex,ClientCert

50、ificateID,ClientBirthday,ClientPhonefrom ClientInfowhere ClientSex='男' from ClientInfoselect * from clientmaninfo-3.創(chuàng)建住在某個房間的客戶基本信息及入住信息視圖create view roomreinfoasselect ClientInfo.ClientID,ClientName,ClientSex,ClientCertificateID,ClientBirthday,ClientPhone,RoomNo,LiveDate,OutDatefrom ClientI

51、nfo,ReInfowhere RoomNo=2202andClientInfo.ClientID=ReInfo.ClientID-4.創(chuàng)建空閑房間基本信息視圖create view freeroomasselect RoomInfo.RoomNo,RoomType.TypeName,RoomRemarksfrom RoomStatus,RoomInfo,RoomTypewhere RoomStatus='空閑' and RoomInfo.StatusNo=RoomStatus.StatusNoand RoomInfo.TypeNo=RoomType.TypeNo select

52、 * from freeroom-5.創(chuàng)建每種房間的總收入視圖create view zxfasselect RoomType.TypeName,SUM(ClientConsume) as SumConsumefrom ClientInfo,ReInfo,RoomInfo,RoomTypewhere ClientInfo.ClientID=ReInfo.ClientIDand ReInfo.RoomNo=RoomInfo.RoomNo and RoomInfo.TypeNo=RoomType.TypeNogroup by TypeNameselect * from zxf利用SQL對視圖進(jìn)行查

53、詢。-1.查詢收入超過1萬的房間類型select TypeName,SumConsumefrom zxfwhere SumConsume>10000-2.查詢XX顧客的客戶號select ClientIDfrom clientmaninfowhere ClientName='林靜'-3.查詢空閑房間中商務(wù)套房的房間號select RoomNofrom freeroomwhere TypeName='商務(wù)套房'九. 對視圖進(jìn)行插入、刪除、修改數(shù)據(jù)操作。體會視圖與表的異同。1、對視圖進(jìn)行插入數(shù)據(jù)insert into clientmaninfovalues(&

54、#39;C0000011','Jason','男','#39;,'1988-07-04','123456789')insert into clientVIPinfovalues('C0000012','FrejaBlack','女','#39;,'1988-06-04','123456789',5000)2、修改數(shù)據(jù)update clientVIPinf

55、oset ClientConsume=ClientConsume+200where ClientSex='男'beforeAfterupdate clientmaninfoset ClientName='池賢宇'where ClientID='C0000005'beforeAfterupdate freeroomset TypeName='海景套房'where TypeName='總統(tǒng)套房'After3、刪除數(shù)據(jù)delete from clientmaninfowhere ClientName LIKE 'Ja%'after十. 編寫自定義函數(shù)。(1)編寫一個自定義函數(shù),將一個字符串作為自變量,返回顛倒順序的字符串。寫出源代碼。USE MC酒店前臺管理系統(tǒng)GOCREATE FUNCTION MBJ(P VARCHAR(100) RETURNS VARCHAR(100) AS BEGIN DECLARE I

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論