數(shù)據(jù)庫實務(wù)實驗報告酒店前臺管理系統(tǒng)方案_第1頁
數(shù)據(jù)庫實務(wù)實驗報告酒店前臺管理系統(tǒng)方案_第2頁
數(shù)據(jù)庫實務(wù)實驗報告酒店前臺管理系統(tǒng)方案_第3頁
數(shù)據(jù)庫實務(wù)實驗報告酒店前臺管理系統(tǒng)方案_第4頁
數(shù)據(jù)庫實務(wù)實驗報告酒店前臺管理系統(tǒng)方案_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.PAGE.《數(shù)據(jù)庫管理實務(wù)》實驗報告課程號:B0900980實驗項目:數(shù)據(jù)庫設(shè)計、創(chuàng)建、管理,數(shù)據(jù)庫操作學(xué)號姓名馬冰潔同組人學(xué)號姓名實驗地點工程學(xué)院機房〔文波指導(dǎo)教師肖慎勇時間20XX6月評語〔要求:按時完成實驗;實驗內(nèi)容和過程記錄完整;回答問題完整、正確;實驗報告的撰寫認真、格式符合要求。成績教師簽字肖慎勇一、實驗?zāi)康?.理解并掌握數(shù)據(jù)庫設(shè)計的概念、方法和步驟。2.初步應(yīng)用數(shù)據(jù)庫設(shè)計方法。了解需求分析的內(nèi)容。3.重點運用ER模型進行概念設(shè)計,然后將ER模型轉(zhuǎn)換為關(guān)系模型。4.深入理解SQLServer2005數(shù)據(jù)庫的存儲結(jié)構(gòu)。5.深入理解SQLServer2005的數(shù)據(jù)類型、表對象設(shè)計與定義。6.掌握SQLServer2005Managementstudio的應(yīng)用。運用交互方式和命令方式建立數(shù)據(jù)庫和表。7.認識和掌握Transact-SQL的數(shù)據(jù)庫操作。8.深入理解視圖意義。掌握SQLServer中創(chuàng)建、管理與應(yīng)用視圖的方法。9.深入理解數(shù)據(jù)庫安全的概念。10.深入理解SQLServer2005的安全體系框架。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ā)器。二、實驗設(shè)備〔環(huán)境及要求PC、WindowsXP、SQLSERVER2005三、實驗內(nèi)容及要求實驗項目:各小組自選的項目。通過調(diào)查、收集信息、分析,寫出分析與設(shè)計報告。1.簡要的系統(tǒng)需求分析包括業(yè)務(wù)分析、功能需求分析、信息需求分析。試分析該系統(tǒng)的基本業(yè)務(wù),計算機信息系統(tǒng)需要完成的基本功能、信息系統(tǒng)需要處理的信息。2.概念設(shè)計設(shè)計系統(tǒng)的概念模型,采用ER模型。3.邏輯設(shè)計將ER模型為關(guān)系模型,指出每個關(guān)系的主鍵、外鍵和必要的約束。4.寫出數(shù)據(jù)庫的物理設(shè)計包括存儲組織結(jié)構(gòu)、表的結(jié)構(gòu)設(shè)計等。5.T-SQL命令方式創(chuàng)建數(shù)據(jù)庫的操作利用SQL命令創(chuàng)建數(shù)據(jù)庫文件、表、索引、聯(lián)系和主鍵、外鍵等約束。〔實驗報告應(yīng)寫出實驗的過程,包括必要的截圖。6.利用T-SQL命令增加、刪除、修改數(shù)據(jù)。7.利用T-SQL命令進行數(shù)據(jù)的檢索和統(tǒng)計根據(jù)自己設(shè)計的數(shù)據(jù)庫和輸入的數(shù)據(jù),寫出至少10個查詢要求及對應(yīng)的SQL查詢命令,應(yīng)該包含如下功能:投影和選擇;多表連接;分組統(tǒng)計與HAVING;子查詢;查詢結(jié)果保存。8.利用SQL命令創(chuàng)建視圖對象根據(jù)開發(fā)的系統(tǒng)的需要,至少設(shè)計三個視圖:基于單表的、包含多表連接的、包含統(tǒng)計運算的。利用SQL對視圖進行查詢。9.對視圖進行插入、刪除、修改數(shù)據(jù)操作。體會視圖與表的異同。10.編寫自定義函數(shù)。〔1編寫一個自定義函數(shù),將一個字符串作為自變量,返回顛倒順序的字符串。寫出源代碼?!?編寫一個自定義函數(shù),能夠?qū)崿F(xiàn)參數(shù)化查詢的功能。自己設(shè)定函數(shù)的具體要求,然后編寫出來。11.編寫利用游標進行數(shù)據(jù)處理的存儲過程。并在存儲過程中應(yīng)用事務(wù)的概念。自己確定過程的具體要求,然后編寫出來。12.編寫一個實現(xiàn)修改表的觸發(fā)器,實現(xiàn)完整性控制。13.設(shè)置服務(wù)器身份驗證模式。用命令創(chuàng)建若干不同驗證模式的登錄賬戶。14.將部分登錄賦予服務(wù)器角色。然后撤消。15.將部分登錄映射到你的數(shù)據(jù)庫中成為用戶。16.創(chuàng)建自定義角色、架構(gòu)。17.通過角色給用戶授權(quán)。18.直接給用戶授權(quán),驗證其獲得權(quán)限前后的操作差別。19.刪除用戶和自定義的角色。四、回答問題1.你如何認識需求分析在系統(tǒng)開發(fā)中的地位和重要性?需求分析就是根據(jù)用戶或者客戶的需要來設(shè)計數(shù)據(jù)庫。只有根據(jù)需求設(shè)計出的數(shù)據(jù)庫才是有用的,否則整個設(shè)計過程都是在做無用功。并且在需求設(shè)計這個過程中根據(jù)具體需要設(shè)計出模型,后面的具體實現(xiàn)過程遵照前面設(shè)計的模型來完成,使得后面的工作能夠更加具有效率。在需求分析中要嚴格遵守客戶的需求,并且要根據(jù)需求找出最合適的方案,為后面的具體實現(xiàn)打下基礎(chǔ)。需求分析是整個開發(fā)過程的第一個階段,也是最重要的一步。2.設(shè)計ER圖、關(guān)系模型分別屬于數(shù)據(jù)庫設(shè)計的哪一階段?設(shè)計ER圖屬于概念設(shè)計階段,關(guān)系模型屬于邏輯設(shè)計階段。3.主鍵、外鍵對于關(guān)系數(shù)據(jù)庫的意義何在?主鍵是關(guān)系中能唯一區(qū)分、確定不同元組的單個屬性或者屬性組合。外鍵能夠保證數(shù)據(jù)庫的數(shù)據(jù)的完整性和一致性,通過外鍵,能夠?qū)⑾嗷リP(guān)聯(lián)的表聯(lián)系起來。4.在數(shù)據(jù)庫存儲結(jié)構(gòu)設(shè)計時要考慮哪些因素?需要綜合考慮存取時間、存儲空間利用率和維護代價三方面的因素。5.在表設(shè)計時對于數(shù)據(jù)類型的選擇和使用如何考慮?數(shù)據(jù)類型的選擇首先要根據(jù)該屬性的性質(zhì)進行選擇,如數(shù)值型,日期型等等。在確定基本類型之后,要考慮數(shù)據(jù)存取時間、取值范圍、處理效率多方面的因素,選取合適的數(shù)據(jù)類型,這主要是在數(shù)值類型上的選擇。6.交互式如何實現(xiàn)表之間的聯(lián)系?SQL命令如何實現(xiàn)表之間的聯(lián)系?交互式:單擊工具欄上的"關(guān)系"按鈕,打開"外鍵關(guān)系"對話框,在其中設(shè)置各表間關(guān)系。SQL命令:利用FOREIGNKEYREFERENCESreferenced_table_name<referenced_column>ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}7.如果在定義表時進行了主鍵、外鍵以及約束等完整性設(shè)置,對于數(shù)據(jù)的輸入有何影響?試舉例說明。主鍵和外鍵一般不允許為空,如果沒有輸入值的話會報錯。再比如"性別"這一字段如果開發(fā)人員已經(jīng)約束了其值只能為"男"或者"女",當使用者輸入除以上兩個值之外的任何值都會報錯。8.用INSERTINTO命令輸入,如果數(shù)據(jù)與字段數(shù)量和要求不一致有什么問題?當表定義中有默認值的時候,插入記錄是否可以省略該字段的數(shù)據(jù)?如果數(shù)據(jù)與字段數(shù)量和要求不一致,只有在少于并且沒有寫出的那個已定義了默認值或者可為空的情況下才為正確,其他情況均是錯誤的。當表定義中有默認值的時候,插入記錄可以省略該字段的數(shù)據(jù)。9.HAVING子句有什么作用?HAVING子句和WHERE語句一樣都是實現(xiàn)查詢功能中條件的控制和數(shù)據(jù)的選擇,WHERE子句不能包含聚集函數(shù),而HAVING子句一般包含聚集函數(shù)。HAVING子句還可以用來對分組結(jié)果進行篩選。10.當通配字符作為普通字符參與匹配查詢時,如何解決這樣的問題?①通過在ESCAPE子句中指定轉(zhuǎn)義符、在查詢條件下使用轉(zhuǎn)義符指定某個通配字符是正常字符;②將通配符用方括號[]括起來,指定一個字符、字符串或范圍,要求所匹配對象為它們中任意一個。11.可否利用視圖進行數(shù)據(jù)的插入、刪除、修改?對由多表連接成的視圖修改數(shù)據(jù)時,不能同時影響一個以上的基表,也不能刪除視圖中的數(shù)據(jù)對視圖上的某些列不能修改,這些列是:計算列,內(nèi)置函數(shù)列和行集合函數(shù)列

對具有NOTNULL的列進行修改時可能會出錯。通過視圖修改或者插入數(shù)據(jù)時,必須保證未顯示的具有NOTNULL屬性的列有值,可以是默認值,IDENTITY等,否則不能像視圖中插入數(shù)據(jù)行如果某些列因為規(guī)則或者約束的限制不能接受從視圖插入的數(shù)據(jù)時,則插入數(shù)據(jù)可能會失敗12.根據(jù)自己的體會,談?wù)勔晥D在數(shù)據(jù)庫體系中的作用。視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中以存儲的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且在引用視圖時動態(tài)生成。視圖中看到的就是需要的。視圖不僅可以簡化用戶對數(shù)據(jù)的理解,也可以簡化他們的操作。那些被經(jīng)常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件。視圖還保證了數(shù)據(jù)的安全性。通過視圖用戶只能查詢和修改他們所能見到的數(shù)據(jù)。數(shù)據(jù)庫中的其它數(shù)據(jù)則既看不見也取不到。數(shù)據(jù)庫授權(quán)命令可以使每個用戶對數(shù)據(jù)庫的檢索限制到特定的數(shù)據(jù)庫對象上,但不能授權(quán)到數(shù)據(jù)庫特定行和特定的列上。13.視圖是如何保存的?視圖中的數(shù)據(jù)是否真的存儲在文件中?視圖是一個虛擬表,是以腳本的形式存在于數(shù)據(jù)庫中,即其中數(shù)據(jù)仍然是原來表的數(shù)據(jù)。視圖中的數(shù)據(jù)任然是表中的數(shù)據(jù),并不真的存儲在文件中。14.SQLSERVER有幾種身份驗證模式?區(qū)別是什么?不同驗證模式的登錄賬戶有何區(qū)別?SQLServer2005提供了兩種對數(shù)據(jù)庫資源的訪問進行身份驗證的模式:Windows身份驗證和混合模式身份驗證。Windows身份驗證。配置SQLServer2005使用Windows身份驗證時,只有通過身份驗證的Windows用戶可以訪問SQL實例。對于每個需要訪問SQL實例的Windows用戶,必須為其添加一個Windows登錄。且該登錄帳戶必須為計算機的用戶方可以訪問SQLServer?;旌夏J缴矸蒡炞C。再混合模式身份驗證下,Windows用戶和SQL用戶都可以訪問數(shù)據(jù)庫實例。需要為非Windows用戶提供訪問權(quán)限時,比如說另一個客戶操作系統(tǒng)的用戶需要訪問SQLServer時就使用混合模式身份驗證。15.Sa賬戶有何特點?Sa賬戶是SQLServer的特殊賬戶,sa賬戶擁有服務(wù)器和所有的數(shù)據(jù)庫。即Sa賬戶擁有最高的管理權(quán)限,可以執(zhí)行服務(wù)器范圍內(nèi)所有操作。它是以SQLServer身份驗證的,所以必須設(shè)置一個密碼。同時,sa賬戶的屬性不可以更改,密碼可以修改。Sa登錄時無法刪除的。16.共有幾種服務(wù)器角色?最高權(quán)限的角色是什么?能夠創(chuàng)建數(shù)據(jù)庫的角色是哪個?共有8種固定服務(wù)器角色,分別是:sysadmin,serveradmin,setupadmin,securityadmin,processadmin,dbcreator,diskadmin,bulkadmin;同時每一個登錄用戶都屬于public服務(wù)器角色。最高權(quán)限的角色是sysadmin;能夠創(chuàng)建數(shù)據(jù)庫的角色是:sysadmin,dbcreator;17.數(shù)據(jù)庫用戶和登錄賬戶有什么關(guān)系?guest是什么用戶?有何作用?這是兩種不同級別的安全機制,登錄賬戶是SQLServer級的安全性設(shè)置,而數(shù)據(jù)庫用戶則是數(shù)據(jù)庫級的安全性設(shè)置。登錄賬戶用于登錄服務(wù)器,但是當某一用戶要訪問某個數(shù)據(jù)庫時,除了可以成為服務(wù)器的一個登錄以外,還必須成為這個數(shù)據(jù)庫的用戶賬戶,即獲得一定的授權(quán)。數(shù)據(jù)庫用戶賬號在一般情況下是從某個登錄賬戶中映射過來的。Guest是來賓用戶,是用來共享文件的。任何一個登錄都可以以此身份訪問數(shù)據(jù)庫。Guest自動本身只具有public權(quán)限。也可以由其他用戶授權(quán)。18.數(shù)據(jù)庫角色有哪兩類?PUBLIC角色有何特點?數(shù)據(jù)庫角色分為固定的數(shù)據(jù)庫角色和用戶定義數(shù)據(jù)庫角色。每個數(shù)據(jù)庫都有一系列固定數(shù)據(jù)庫角色。雖然每個數(shù)據(jù)庫中都存在名稱相同的角色,但各個角色的作用域只是在特定的數(shù)據(jù)庫內(nèi)。用戶定義數(shù)據(jù)庫角色是用戶根據(jù)工作的職能定義一系列角色,并給每個角色指派了適合這項工作的權(quán)限。從而在數(shù)據(jù)庫中管理這些權(quán)限。PUBLIC角色的特點:默認不具有任何權(quá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)默認架構(gòu)是什么?怎樣為用戶指定架構(gòu)?SQLServer2000中數(shù)據(jù)庫用戶和構(gòu)架是隱式連在一起的,架構(gòu)將用戶和權(quán)限之間建立了一個間接地方式。數(shù)據(jù)庫架構(gòu)是一個獨立于數(shù)據(jù)庫用戶的非重復(fù)命名空間,可以將架構(gòu)視為對象的容器。每個數(shù)據(jù)庫用戶都是與該用戶同名架構(gòu)的所有者;而在SQLServer2005中構(gòu)架和用戶是不同的實體。一個對象只能屬于一個架構(gòu),就像一個文件只能存放于一個文件夾中一樣。與文件夾不同的是,架構(gòu)是不能嵌套的。系統(tǒng)默認架構(gòu)是dbo架構(gòu);通過使用CREATEUSER和ALTERUSER語句,可以分配一個默認架構(gòu);也可以通過SSMS在該用戶的屬性下面分配一個默認架構(gòu)。20.什么是安全對象?怎樣為數(shù)據(jù)庫用戶指定查詢表的權(quán)限?安全對象是SQLServer數(shù)據(jù)庫引擎授權(quán)系統(tǒng)控制對其進行訪問的資源。安全對象范圍有服務(wù)器、端點和架構(gòu)。為指定數(shù)據(jù)庫用戶授予table的權(quán)利,然后在下面的權(quán)限中選擇select即可。授權(quán)命令:GRANT{ALL[PRIVILEGES]}|permission[<column[,...n]>][,...n][ON[class::]securable]TOprincipal[,...n][WITHGRANTOPTION][ASprincipal]簡述自定義函數(shù)、存儲過程和觸發(fā)器的異同。自定義函數(shù):接受參數(shù)、執(zhí)行操作并且將運算結(jié)果以值的形式返回的例程。自定義函數(shù)有且只有一個返回值,就像普通的函數(shù)一樣,可以直接在表達式中嵌入調(diào)用。存儲過程:是一個可重用的代碼模塊,可以高效率地完成指定的操作。存儲過程可以沒有返回值,也可以有任意個輸出參數(shù),必須單獨調(diào)用。觸發(fā)器:當表或視圖中的某些重要數(shù)據(jù)發(fā)生變化時,為了保持數(shù)據(jù)的一致性和完整性,可以自動執(zhí)行某段程序保證相關(guān)聯(lián)其他數(shù)據(jù)也跟著進行相應(yīng)的變化。能完成這種功能的程序就是觸發(fā)器,它是一種特殊類型的存儲過程。觸發(fā)器是一種特殊類型的存儲過程,但是不能直接被調(diào)用執(zhí)行,只能自動執(zhí)行,在對特定表或列作特定類型的數(shù)據(jù)修改時執(zhí)行。什么是游標?應(yīng)用游標的步驟是什么?游標是一種處理數(shù)據(jù)的方法,它可以對結(jié)果集進行逐行處理,也可以指向結(jié)果集中的任意位置,并對該位置的數(shù)據(jù)進行處理。應(yīng)用游標的步驟:聲明游標——打開游標——讀取游標——關(guān)閉游標——釋放游標。五、分析討論首先第18個關(guān)于驗證授權(quán)前后用戶操作的差別那步我不會驗證,在游標那題里面也沒有用到事務(wù),感覺自己在游標、自定義編程、存儲過程等方面的基礎(chǔ)及學(xué)習(xí)較為薄弱。剛開始將系統(tǒng)想得很大,后來在做的過程中發(fā)現(xiàn)一環(huán)套一環(huán),如果做整個酒店管理系統(tǒng)真的很復(fù)雜,還包括財務(wù)管理、倉庫管理、員工管理等方面,最后我和搭檔商量決定只做客房及顧客信息管理等的內(nèi)容,實現(xiàn)的功能也相對較少。相信經(jīng)過一步一步的學(xué)習(xí),我們的能力也會進一步的提升,努力作出比較完善的信息系統(tǒng)。以下為本次實驗的過程記錄報告撰寫?!部砂ū匾慕貓DMC酒店前臺管理系統(tǒng)系統(tǒng)需求分析業(yè)務(wù)分析·工作人員登錄:工作人員登錄,并且有權(quán)限的限制,不同的權(quán)限允許的操作不同;·客房預(yù)訂:客人可以提前預(yù)定房間,可以要求房間的類型,入住時間等;·取消預(yù)定:客人可以對已經(jīng)預(yù)定的客房進行取消預(yù)定;·入住登記:對入住的客戶的信息進行錄入,客戶入住房間;·退房登記:入住的客戶離開,進行退房登記,更新客房客戶信息;·客房信息查詢:客戶可以要求查詢自己的房間號,剩余房間數(shù)量,房間信息等信息;·客戶信息查詢:客戶可以要求查詢自己的相關(guān)信息,酒店可以根據(jù)需要查詢客戶的信息;功能需求分析·功能總流程圖酒店前臺管理系統(tǒng)酒店前臺管理系統(tǒng)登錄窗口身份驗證權(quán)限識別相關(guān)操作預(yù)定房間取消預(yù)定退房登記客房信息查詢?nèi)胱〉怯浛蛻粜畔⒉樵凃炞C失敗·客房預(yù)定客房預(yù)訂客房預(yù)訂是否有空余房間預(yù)定失敗預(yù)定房間登記、修改相關(guān)信息查詢否是·取消預(yù)定取消預(yù)定取消預(yù)定預(yù)定信息刪除、修改相關(guān)信息查詢?nèi)∠A(yù)定操作·入住登記入住登記入住登記是否預(yù)定查詢住房信息及要求,確認入住房間確認預(yù)定信息及入住房間登記入住信息,修改相關(guān)信息·退房登記退房登記退房登記入住信息修改客戶及客房相關(guān)信息查詢·信息查詢信息查詢信息查詢客房信息查詢客戶信息查詢3、信息需求分析·工作人員登錄:需要處理工作人員的信息,驗證賬號密碼是否正確且互相匹配,并且授予該工作人員一定的操作權(quán)限,只能進行權(quán)限范圍內(nèi)的操作?!た头款A(yù)訂:需要處理客房及客戶的信息,修改客房的狀態(tài),以及入住時間;簡單登記客戶的信息?!と∠A(yù)定:需要處理客房及客戶的信息,修改客房的狀態(tài),以及入住時間;修改客戶的預(yù)定信息。·入住登記:需要處理客房及客戶的信息,查詢客戶是否預(yù)定過房間,若預(yù)定,則登記客房和客戶的各項信息;若沒有預(yù)定,則先查詢是否有符合條件的房間,如果有,則登記客房和客戶的各項信息,如果沒有,則入住失敗?!ね朔康怯洠盒枰幚砜头考翱蛻舻男畔?查詢客戶及客房的相關(guān)信息,并修改客房的各項信息以及客戶的退房時間及入住天數(shù)。·客戶信息查詢:需要處理客戶的信息,根據(jù)需要查詢客戶的各項信息。·客房信息查詢:需要處理客房的信息,根據(jù)需要查詢客戶的各項信息。概念設(shè)計整體ER圖房間房間客戶工作人員入住操作客戶編號客戶姓名客戶性別身份證號客戶客戶地址是否預(yù)定消費金額付款時間備注客戶編號房間號入住時間退房時間入住天數(shù)入住登記o預(yù)定客房取消預(yù)定信息查詢編號密碼權(quán)限房間號狀態(tài)類型m1mn部分組成圖房間房間Rooms房間號RoomNo狀態(tài)StatusNo類型TypeNo工作人員工作人員Workers編號EmployeeId密碼PassWord權(quán)限Restricte客戶客戶Client客戶編號ClientID客戶姓名ClientName客戶性別ClientSex身份證號ClientCertificateID客戶ClientPhone客戶地址ClientAdress是否預(yù)定ClientBookOrNot消費金額ClientConsume付款時間PaymentTime備注ClientRemarks工作人員工作人員Works操作Operation房間Rooms入住登記o預(yù)定客房取消預(yù)定信息查詢客戶編號客戶編號ClientID客戶Client入住房間號RoomNo入住時間LiveDate退房時間OutDate入住天數(shù)房間Rooms邏輯設(shè)計客戶信息表員工登錄信息表房間信息表房間狀態(tài)信息表房間類型信息表入住信息表數(shù)據(jù)庫的物理設(shè)計存儲組織結(jié)構(gòu):數(shù)據(jù)庫是依照某種數(shù)據(jù)模型組織起來并存放二級存儲器中的數(shù)據(jù)集合。這種數(shù)據(jù)集合具有如下特點:盡可能不重復(fù),以最優(yōu)方式為某個特定組織的多種應(yīng)用服務(wù),其數(shù)據(jù)結(jié)構(gòu)獨立于使用它的應(yīng)用程序,對數(shù)據(jù)的增、刪、改和檢索由統(tǒng)一軟件進行管理和控制。從發(fā)展的歷史看,數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。數(shù)據(jù)庫的基本結(jié)構(gòu)分三個層次,反映了觀察數(shù)據(jù)庫的三種不同角度。<1>物理數(shù)據(jù)層。它是數(shù)據(jù)庫的最內(nèi)層,是物理存貯設(shè)備上實際存儲的數(shù)據(jù)的集合。這些數(shù)據(jù)是原始數(shù)據(jù),是用戶加工的對象,由內(nèi)部模式描述的指令操作處理的位串、字符和字組成。<2>概念數(shù)據(jù)層。它是數(shù)據(jù)庫的中間一層,是數(shù)據(jù)庫的整體邏輯表示。指出了每個數(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)系是通過映射進行轉(zhuǎn)換的。表的結(jié)構(gòu)設(shè)計:1.客戶信息表ClientInfo客戶編號〔ClientIDchar<8>主鍵客戶姓名<ClientName>varchar<30>非空客戶性別〔ClientSexchar<4>身份證號ClientCertificateIDvarchar<18>非空出生日期〔ClientBirthdaydatetime,〔ClientPhonevarchar<12>非空是否預(yù)定〔ClientBookOrNotint住址〔ClientAdressvarchar<50>消費金額〔ClientConsumemoney結(jié)賬日期〔PaymentTimedatetime備注〔ClientRemarksvarchar<40>2.房間信息表RoomInfo房間號〔RoomNoint主鍵狀態(tài)號〔StatusNoint非空類型號〔TypeNoint非空房間備注〔RoomRemarksvarchar<40>3.房間狀類型表RoomType類型號TypeNoint主鍵類型名稱〔TypeNamevarchar<10>非空該類房間數(shù)〔TypeAmountint非空價格〔Pricemoney非空4.房間狀態(tài)表RoomStatus狀態(tài)號〔StatusNoint主鍵狀態(tài)名〔RoomStatusvarchar<10>非空該狀態(tài)房間數(shù)〔StatusAmountint非空5.工作人員登錄表LoginInfo員工編號〔EmployeeIdchar<8>密碼〔PassWordchar<6>非空權(quán)限〔Restricteint非空五.T-SQL命令方式創(chuàng)建數(shù)據(jù)庫的操作利用SQL命令創(chuàng)建數(shù)據(jù)庫文件、表、索引、聯(lián)系和主鍵、外鍵等約束。1、創(chuàng)建數(shù)據(jù)庫文件createdatabaseMC酒店前臺管理系統(tǒng)onprimary<name='MC酒店前臺管理系統(tǒng)_data',filename='H:\數(shù)據(jù)庫事務(wù)實驗\馬冰潔\1009030116馬冰潔\MC酒店前臺管理系統(tǒng).mdf',size=50,maxsize=100,filegrowth=10>logon<name='MC酒店前臺管理系統(tǒng)_log',filename='H:\數(shù)據(jù)庫事務(wù)實驗\馬冰潔\1009030116馬冰潔\MC酒店前臺管理系統(tǒng).ldf',size=10,maxsize=25,filegrowth=5>2、創(chuàng)建表useMC酒店前臺管理系統(tǒng)CreatetableRoomStatus<StatusNointPrimarykey,RoomStatusvarchar<10>notnull,StatusAmountintnotnull>CreatetableRoomType<TypeNointPrimarykey,TypeNamevarchar<10>notnull,TypeAmountintnotnull,Pricemoneynotnull>CREATETABLERoomInfo<RoomNointPRIMARYKEY,StatusNointNOTNULL,TypeNointNOTNULL,RoomRemarksvarchar<40>,foreignkey<StatusNo>referencesRoomStatus<StatusNo>onupdatecascade,foreignkey<TypeNo>referencesRoomType<TypeNo>onupdatecascade,>CreateTABLEClientInfo<ClientIDchar<8>PRIMARYKEY,ClientNamevarchar<30>notnull,ClientSexchar<4>,ClientCertificateIDvarchar<18>notnull,ClientBirthdaydatetime,ClientPhonevarchar<12>notnull,ClientBookOrNotint,ClientAdressvarchar<50>,ClientConsumemoney,PaymentTimedatetime,ClientRemarksvarchar<40>,>CREATETABLELoginInfo<EmployeeIdchar<8>PRIMARYKEY,PassWordchar<6>notnull,Restricteintnotnull,>createtableReInfo<ClientIDchar<8>NOTNULL,RoomNointNOTNULL,LiveDatedatetime,OutDatedatetime,DayNoASOutDate-LiveDate,primarykey<RoomNo,ClientID>,foreignkey<RoomNo>referencesRoomInfo<RoomNo>,FOREIGNKEY<ClientID>REFERENCESClientInfo<ClientID>>3、創(chuàng)建索引createindexsroominfoonReInfo<ClientIDASC,RoomNo>useMC酒店前臺管理系統(tǒng)GOEXECsp_helpindexReInfoGOcreateindexsclientinfoonClientInfo<ClientIDASC,ClientName>useMC酒店前臺管理系統(tǒng)GOEXECsp_helpindexClientInfoGO六.利用T-SQL命令增加、刪除、修改數(shù)據(jù)。1、插入數(shù)據(jù):登記客戶基本信息,入住信息,管理客房信息USEMC酒店前臺管理系統(tǒng)INSERTINTOClientInfovalues<'C0000004','馬冰潔','女',,'1993-01-23','5927195260',2,'中國XX省',1000,'2011-07-1009:06:07','需要早餐'>INSERTINTOClientInfovalues<'C0000001','林靜','男',,'1982-11-23',,0,'中國北京市XX路',3100,'2011-07-1009:06:07','每日:分前不要打掃其房間'>INSERTINTOClientInfovalues<'C0000002','葉華','男',,'1988-01-23',,0,'中國XX市鼓浪嶼',3000,'2011-07-1919:06:07','每日換枕頭'>INSERTINTOClientInfovalues<'C0000003','素素','女',,'1982-11-23',,1,'中國北京市XX路',3100,'2011-07-1009:06:07','對海鮮過敏'>INSERTINTORoomInfovalues<8204,2,4,''>INSERTINTORoomInfovalues<5203,2,4,''>INSERTINTORoomInfovalues<2222,2,4,''>INSERTINTORoomInfovalues<8888,1,5,''>INSERTINTORoomInfovalues<3402,0,1,''>INSERTINTORoomInfovalues<2202,2,2,''>INSERTINTORoomInfovalues<2201,1,2,''>INSERTINTORoomStatusvalues<2,'不空閑',178>INSERTINTORoomStatusvalues<0,'已預(yù)訂',20>INSERTINTORoomStatusvalues<1,'空閑',99>INSERTINTORoomTypevalues<4,'商務(wù)套房',80,400>INSERTINTORoomTypevalues<1,'單人房',40,120>INSERTINTORoomTypevalues<2,'標準間',100,150>INSERTINTORoomTypevalues<5,'總統(tǒng)套房',2,1888>INSERTINTORoomTypevalues<3,'豪華間',60,270>INSERTINTOLoginInfovalues<'A0000007','WWWNDX',0>INSERTINTOLoginInfovalues<'B0000001','123456',1>INSERTINTOReInfovalues<'C0000001',8204,'2011-07-0509:06:07','2011-07-1009:06:07'>INSERTINTOReInfovalues<'C0000002',5203,'2011-07-0419:06:07','2011-07-1009:06:07'>INSERTINTOReInfovalues<'C0000003',2222,'2011-07-0909:06:07','2011-07-1319:06:07'>INSERTINTOReInfovalues<'C0000004',2202,'2011-07-0909:06:07','2011-07-1319:06:07'>2、修改數(shù)據(jù)USEMC酒店前臺管理系統(tǒng)GO--客戶調(diào)房間updateReInfosetRoomNo=2201whereClientID='C0000004'--客戶入住修改房間狀態(tài)updateRoomInfosetStatusNo=2whereRoomNo=2202--將客戶的消費減去200元,但因為之后設(shè)置了一個保護安全性的觸發(fā)器所以這個應(yīng)該執(zhí)行不了updateClientInfosetClientConsume=ClientConsume-200whereClientID='C0000004'3、刪除數(shù)據(jù)--客戶退房deletefromReInfowhereClientID='C0000004'--刪除客戶信息deletefromClientInfowhereClientName='馬冰潔'七.利用T-SQL命令進行數(shù)據(jù)的檢索和統(tǒng)計根據(jù)自己設(shè)計的數(shù)據(jù)庫和輸入的數(shù)據(jù),寫出至少10個查詢要求及對應(yīng)的SQL查詢命令,應(yīng)該包含如下功能:投影和選擇;多表連接;分組統(tǒng)計與HAVING;子查詢;查詢結(jié)果保存。USEMC酒店前臺管理系統(tǒng)Go--1.查詢所有顧客姓名SELECTClientNamefromClientInfo--2.查詢空閑房間SELECTRoomNofromRoomInfowhereStatusNo=1--3.顯示每個房間客戶的備注要求SELECTClientInfo.ClientID,RoomNo,ClientName,ClientSex,ClientRemarksfromClientInfo,ReInfowhereClientInfo.ClientID=ReInfo.ClientID--4.查詢男女顧客各自人數(shù)selectClientSex,Count<ClientSex>as人數(shù)fromClientInfogroupbyClientSex--5.查詢?nèi)司杖氪笥?000的客房類型SELECTTypeName,AVG<ClientConsume>AS平均收入fromRoomType,ClientInfo,ReInfo,RoomInfowhereRoomInfo.RoomNo=ReInfo.RoomNoandClientInfo.ClientID=ReInfo.ClientIDandRoomInfo.TypeNo=RoomType.TypeNoGroupbyTypeNameHavingAVG<ClientConsume>>1000--6.從RoomInfo表查詢共有幾種類型的客房SELECTTypeNofromRoomInfoGROUPBYTypeNoHAVINGCOUNT<*>>2--7.查詢?nèi)胱〕^兩間房的客房類型的客房號SELECTRoomNofromRoomInfoWHERETypeNoIN<SELECTTypeNofromRoomInfoGROUPBYTypeNoHAVINGCOUNT<*>>2>--8.查詢價格超過酒店客房平均價格的客房信息SELECT*fromRoomTypewherePrice><SELECTAVG<Price>fromRoomType>--9.查詢來自中國北京市XXX的客戶姓名SELECTClientNamefromClientInfowhereClientSex='男'ANDClientAdressLIKE'中國北京市%'--10.查詢所有商務(wù)套房的基本信息selectRoomNo,StatusNo,RoomRemarksfromRoomInfowhereTypeNo=<selectTypeNofromRoomTypewhereTypeName='商務(wù)套房'>八.利用SQL命令創(chuàng)建視圖對象根據(jù)開發(fā)的系統(tǒng)的需要,至少設(shè)計三個視圖:基于單表的、包含多表連接的、包含統(tǒng)計運算的。useMC酒店前臺管理系統(tǒng)go--1.創(chuàng)建VIP顧客基本信息視圖createviewclientVIPinfoasselectClientID,ClientName,ClientSex,ClientCertificateID,ClientBirthday,ClientPhone,ClientConsumefromClientInfowhereClientConsume>2000select*fromclientVIPinfo--2.創(chuàng)建男顧客的基本信息視圖createviewclientmaninfoasselectClientID,ClientName,ClientSex,ClientCertificateID,ClientBirthday,ClientPhonefromClientInfowhereClientSex='男'fromClientInfoselect*fromclientmaninfo--3.創(chuàng)建住在某個房間的客戶基本信息及入住信息視圖createviewroomreinfoasselectClientInfo.ClientID,ClientName,ClientSex,ClientCertificateID,ClientBirthday,ClientPhone,RoomNo,LiveDate,OutDatefromClientInfo,ReInfowhereRoomNo=2202andClientInfo.ClientID=ReInfo.ClientID--4.創(chuàng)建空閑房間基本信息視圖createviewfreeroomasselectRoomInfo.RoomNo,RoomType.TypeName,RoomRemarksfromRoomStatus,RoomInfo,RoomTypewhereRoomStatus='空閑'andRoomInfo.StatusNo=RoomStatus.StatusNoandRoomInfo.TypeNo=RoomType.TypeNoselect*fromfreeroom--5.創(chuàng)建每種房間的總收入視圖createviewzxfasselectRoomType.TypeName,SUM<ClientConsume>asSumConsumefromClientInfo,ReInfo,RoomInfo,RoomTypewhereClientInfo.ClientID=ReInfo.ClientIDandReInfo.RoomNo=RoomInfo.RoomNoandRoomInfo.TypeNo=RoomType.TypeNogroupbyTypeNameselect*fromzxf利用SQL對視圖進行查詢。--1.查詢收入超過1萬的房間類型selectTypeName,SumConsumefromzxfwhereSumConsume>10000--2.查詢XX顧客的客戶號selectClientIDfromclientmaninfowhereClientName='林靜'--3.查詢空閑房間中商務(wù)套房的房間號selectRoomNofromfreeroomwhereTypeName='商務(wù)套房'九.對視圖進行插入、刪除、修改數(shù)據(jù)操作。體會視圖與表的異同。1、對視圖進行插入數(shù)據(jù)insertintoclientmaninfovalues<'C0000011','Jason','男',,'1988-07-04','123456789'>insertintoclientVIPinfovalues<'C0000012','FrejaBlack','女',,'1988-06-04','123456789',5000>2、修改數(shù)據(jù)updateclientVIPinfosetClientConsume=ClientConsume+200whereClientSex='男'beforeAfterupdateclientmaninfosetClientName='池賢宇'whereClientID='C0000005'beforeAfterupdatefreeroomsetTypeName='海景套房'whereTypeName='總統(tǒng)套房'After3、刪除數(shù)據(jù)deletefromclientmaninfowhereClientNameLIKE'Ja%'after十.編寫自定義函數(shù)。〔1編寫一個自定義函數(shù),將一個字符串作為自變量,返回顛倒順序的字符串。寫出源代碼。USEMC酒店前臺管理系統(tǒng)GOCREATEFUNCTIONMBJ<PVARCHAR<100>>RETURNSVARCHAR<100>ASBEGINDECLAREIINT,NINTSETN=LEN<P>SETI=LEN<P>-1WHILEI>0BEGINSETP=P+SUBSTRING<P,I,1>SETI=I-1ENDSETP=RIGHT<P,N>RETURNPENDGOSELECTDBO.MBJ<'MCJDQTGLXT'>〔2編寫一個自定義函數(shù),能夠?qū)崿F(xiàn)參數(shù)化查詢的功能。createfunctionclientsq<ClientIDchar<8>>returnstableasreturn<selectClientID,ClientName,ClientCertificateIDfromClientInfoWhereClientID=ClientID>goSELECT*FROMDBO.clientsq<'C0000001'>〔3自己設(shè)定函數(shù)的具體要求,然后編寫出來。自定義一個帶參數(shù)SQL函數(shù),輸入一個參數(shù)n,返回1*2*3*……*nCREATEFUNCTIONjc<nint>RETURNSvarchar<300>ASBEGINDECLAREsvarchar<300>sets=str<n>whilen>1beginsets=str<n-1>+'*'+ltrim<s>setn=n-1endreturn<ltrim<s>>ENDgoselectdbo.jc<10>十一.編寫利用游標進行數(shù)據(jù)處理的存儲過程。并在存儲過程中應(yīng)用事務(wù)的概念。自己確定過程的具體要求,然后編寫出來。--利用游標進行數(shù)據(jù)修改的存儲過程,將ClientInfo中所有女性的備注改為"女士可免費參加舞會"createprocedureUpdateHKUNo--存儲過程里面放置游標asbegindeclareUpdateHKUNoCursorcursor--聲明一個游標,查詢滿足條件的數(shù)據(jù)forselectClientIDfromClientInfowhereClientSex='女'openUpdateHKUNoCursor--打開declarenoToUpdatevarchar<20>--聲明一個變量,用于讀取游標中的值fetchnextfromUpdateHKUNoCursorintonoToUpdatewhilefetch_status=0--循環(huán)讀取begin--printnoToUpdateupdateClientInfosetClientRemarks='女士可免費參加舞會'whereClientID=noToUpdatefetchnextfromUpdateHKUNoCursorintonoToUpdateendendexecUpdateHKUNocloseUpdateHKUNoCursor--關(guān)閉deallocateUpdateHKUNoCursordropprocedureUpdateHKUNo十二.編寫一個實現(xiàn)修改表的觸發(fā)器,實現(xiàn)完整性控制。當將顧客消費金額減少時系統(tǒng)為防止人為謀私、操作錯誤等拒絕修改USEMC酒店前臺管理系統(tǒng)gocreatetriggert1ondbo.ClientInfoforupdateasbegindeclareoldvaluemoneydeclarenewvaluemoneyselectoldvalue=Clien

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論