數(shù)據(jù)庫綜合實(shí)驗(yàn)_第1頁
數(shù)據(jù)庫綜合實(shí)驗(yàn)_第2頁
數(shù)據(jù)庫綜合實(shí)驗(yàn)_第3頁
數(shù)據(jù)庫綜合實(shí)驗(yàn)_第4頁
數(shù)據(jù)庫綜合實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理及應(yīng)用- SQL Server 2000陳學(xué)進(jìn)于 2010 年三月實(shí)驗(yàn)指導(dǎo)書精選文庫實(shí)驗(yàn)一用 E-R 圖設(shè)計(jì)數(shù)據(jù)庫1. 實(shí)驗(yàn)?zāi)康?) 熟悉 E-R 模型的基本概念和圖形的表示方法。2) 掌握將現(xiàn)實(shí)世界的事物轉(zhuǎn)化成 E-R 圖的基本技巧。3) 熟悉關(guān)系數(shù)據(jù)模型的基本概念。4) 掌握將 E-R 圖轉(zhuǎn)化成關(guān)系表的基本技巧。2. 實(shí)驗(yàn)內(nèi)容1) 根據(jù)需求確定實(shí)體,屬性和聯(lián)系。2) 將實(shí)體,屬性和聯(lián)系轉(zhuǎn)化為 E-R 圖。3) 將 E-R 圖轉(zhuǎn)化為表。3. 實(shí)驗(yàn)步驟1) 設(shè)計(jì)能夠表示出班級(jí)與學(xué)生關(guān)系的數(shù)據(jù)庫。確定班級(jí)實(shí)體和學(xué)生實(shí)體的屬性。確定班級(jí)和學(xué)生之間的聯(lián)系,給聯(lián)系命名并指出聯(lián)系的類型。確定聯(lián)

2、系本身的屬性。畫出班級(jí)與學(xué)生關(guān)系的 E-R 圖。將 E-R 圖轉(zhuǎn)化為關(guān)系模式,寫出各關(guān)系模式并標(biāo)明各自的主碼或外碼。2) 設(shè)計(jì)能夠表示出顧客與商品關(guān)系的數(shù)據(jù)庫。確定顧客實(shí)體和商品實(shí)體的屬性。確定顧客和商品之間的聯(lián)系,給聯(lián)系命名并指出聯(lián)系的類型。確定聯(lián)系本身的屬性。畫出顧客與商品關(guān)系的 E-R 圖。將 E-R 圖轉(zhuǎn)化為關(guān)系模式,寫出表的關(guān)系模式并標(biāo)明各自的主碼或外碼。3) 設(shè)計(jì)能夠表示學(xué)校與校長關(guān)系的數(shù)據(jù)庫。確定學(xué)校實(shí)體和校長實(shí)體的屬性。確定學(xué)校和校長之間的聯(lián)系,給聯(lián)系命名并指出聯(lián)系的類型。確定聯(lián)系本身的屬性。畫出學(xué)校與校長關(guān)系的 E-R 圖。將 E-R 圖轉(zhuǎn)化為關(guān)系模式,寫出表的關(guān)系模式并標(biāo)明

3、各自的主碼或外碼。4) 設(shè)計(jì)能夠表示出房地產(chǎn)交易中客戶,業(yè)務(wù)員和合同三者之間關(guān)系的數(shù)據(jù)庫。確定客戶實(shí)體,業(yè)務(wù)員實(shí)體和合同實(shí)體的屬性。確定客戶,業(yè)務(wù)員和合同三者之間的聯(lián)系,給聯(lián)系命名并指出聯(lián)系的類型。確定聯(lián)系本身的屬性。畫出客戶,業(yè)務(wù)員和合同三者關(guān)系E-R 圖。將 E-R 圖轉(zhuǎn)化為關(guān)系模式,寫出表的關(guān)系模式并標(biāo)明各自的主碼或外碼。5) 學(xué)生之間相互交流各自設(shè)計(jì)的數(shù)據(jù)庫。-2精選文庫實(shí)驗(yàn)二確定表中的關(guān)鍵字1. 實(shí)驗(yàn)?zāi)康?) 正確理解候選關(guān)鍵字,主關(guān)鍵字,組合關(guān)鍵字,外關(guān)鍵字的基本概念。2) 能夠正確判斷給定的表中各種類型的關(guān)鍵字。3) 在設(shè)計(jì)數(shù)據(jù)庫時(shí)能正確指定各種類型的關(guān)鍵字,知道如何實(shí)施數(shù)據(jù)完整

4、性。2. 實(shí)驗(yàn)內(nèi)容1) 復(fù)習(xí)候選關(guān)鍵字,主關(guān)鍵字,外關(guān)鍵字,組合關(guān)鍵字以及數(shù)據(jù)完整性的基本概念。2) 在給出的部門表和員工表中能正確標(biāo)識(shí)出各種類型的關(guān)鍵字。3. 實(shí)驗(yàn)步驟1) 寫出候選關(guān)鍵字,主關(guān)鍵字,組合關(guān)鍵字,外關(guān)鍵字,實(shí)體完整性,域完整性,參照完整性的定義。已知部門表和員工表分別見表2-1 和表 2-2表 2-1 部門表部門代碼部門名負(fù)責(zé)人地點(diǎn)0001生產(chǎn)部李華江浙江杭州0002銷售部張麗浙江寧波0003市場部王欣浙江溫州表 2-2 員工表員工代碼姓名家庭住址聯(lián)系電話郵政編碼部門代碼200001王華杭州869609863100060001200002李想富陽854387693100100

5、003200003張麗杭州678935423100170002200004李華江蕭山8284987331010100012) 確定部門表和員工表中的候選關(guān)鍵字,并陳述理由。3) 選擇部門表和員工表的關(guān)鍵字。4) 在部門表和員工表的結(jié)構(gòu)中標(biāo)注主關(guān)鍵字。5) 在員工表中確定可能的組合關(guān)鍵字,并陳述理由。6) 確定在部門表和員工表中共有的屬性。7) 指出哪個(gè)表中的屬性是外關(guān)鍵字。8) 確定哪個(gè)表是主表,哪個(gè)表是從表。9) 部門表和員工表是如何通過關(guān)鍵字實(shí)施數(shù)據(jù)完整性的。-3精選文庫實(shí)驗(yàn)三關(guān)系規(guī)范化1. 實(shí)驗(yàn)?zāi)康?) 了解函數(shù)依賴的基本概念。2) 能正確判斷某一關(guān)系是屬于第幾范式。3) 掌握規(guī)范化范式

6、的方法。2. 實(shí)驗(yàn)內(nèi)容1) 復(fù)習(xí)函數(shù)依賴,數(shù)據(jù)規(guī)范化,范式的基本概念以及各級(jí)范式的判別標(biāo)準(zhǔn)。2) 判斷給定的表滿足哪級(jí)范式的條件。3) 將給定的表轉(zhuǎn)換成滿足特定等級(jí)范式條件的表。3. 實(shí)驗(yàn)步驟1) 寫出函數(shù)依賴,數(shù)據(jù)規(guī)范化,范式的定義以及各級(jí)范式的判別標(biāo)準(zhǔn)。2) 有表 3-1 所示的項(xiàng)目表 1,判斷其是否滿足第一范式的條件,并說明理由。表 3-1 項(xiàng)目表 1項(xiàng)目代碼職員代碼部門累計(jì)工時(shí)間P2790P51E101系統(tǒng)集成部101P2060P27E305銷售部109P2298P51E508行政辦公室NULLP27723) 有表 3-2 所示的項(xiàng)目表 2,判斷其是否滿足第二范式的條件,并說明理由。表

7、 3-2 項(xiàng)目表 2項(xiàng)目代號(hào)職員代碼部門累計(jì)工作時(shí)間P27E101系統(tǒng)集成部90P27E305財(cái)務(wù)部10P51E508行政辦公室NULLP51E101系統(tǒng)集成部101P20E101系統(tǒng)集成部60P27E508行政辦公室724) 有表 3-3 所示的職員表,判斷其是否滿足第三范式的條件,并說明理由。表 3-3 職員表職員代碼部門部門負(fù)責(zé)人代碼E101系統(tǒng)集成部E901E305財(cái)務(wù)部E909E402銷售部E909E508行政辦公室E908E607財(cái)務(wù)部E909E608財(cái)務(wù)部E909-4精選文庫5) 有表 3-4 所示的項(xiàng)目表 3,判斷其是否滿足第三范式的條件,并說明理由。表 3-4 項(xiàng)目表 3項(xiàng)目

8、代碼職員代碼職員姓名累計(jì)工作時(shí)間P2E1李華玉48P5E2陳家偉100P6E3張勤15P3E4謝成權(quán)2505P5E4謝成權(quán)75P5E1李華玉406) 將項(xiàng)目表 1 轉(zhuǎn)換成滿足第一范式條件的表。7) 將項(xiàng)目表 2 轉(zhuǎn)化成滿足第二范式條件的表。8) 將職員表轉(zhuǎn)換成滿足第三范式條件的表。9) 將項(xiàng)目表 3 轉(zhuǎn)換成滿足 BCNF條件的表。10) 非規(guī)范化數(shù)據(jù)帶來的不利影響是什么 ?-5精選文庫實(shí)驗(yàn)四創(chuàng)建 SQL Server 2000 數(shù)據(jù)庫和表1. 實(shí)驗(yàn)的目的1) 熟悉企業(yè)管理器環(huán)境。2) 掌握創(chuàng)建數(shù)據(jù)庫和表的操作。2. 實(shí)驗(yàn)內(nèi)容1) 熟悉 SQL Server 2000 企業(yè)管理器環(huán)境。2) 創(chuàng)建

9、 XSCJ數(shù)據(jù)庫。3) 在 XSCJ數(shù)據(jù)庫中創(chuàng)建學(xué)生情況表 XSQK,課程表 KC,學(xué)生成績表 XS_KC。4) 在 XSQK、KC、 XS_KC表中輸入數(shù)據(jù)。3. 實(shí)驗(yàn)步驟1) 啟動(dòng) SQL Server 企業(yè)管理器,打開“ SQL Server Enterprise Mananger ”窗口,并在左邊的目錄樹結(jié)構(gòu)中選擇“數(shù)據(jù)庫”文件夾。2) 選擇“操作”菜單中的“新建數(shù)據(jù)庫”命令, 打開 “數(shù)據(jù)庫屬性” 對(duì)話框,并在 “名稱”框內(nèi)輸入數(shù)據(jù)庫名稱 XSCJ。3) 單擊“確定”按鈕,完成 XSCJ數(shù)據(jù)庫的創(chuàng)建。4) 打開剛才創(chuàng)建的 “ XSCJ” 文件夾,并在“ SQL Server Ente

10、rprise Mananger ”窗口的右邊窗口中選擇“表”對(duì)象。5) 選擇“操作”菜單中的“新建表”命令,打開SQL Server 的表編輯器窗口。-6精選文庫6) 根據(jù)表 4-1 所示的表結(jié)構(gòu)增加新列。表 4-1學(xué)生情況表 XSQK的結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空值默認(rèn)值說明學(xué)號(hào)Char6N主鍵姓名Char8N性別Bit1N男1,女0出生日期smalldatetime4N專業(yè)名Char10N所在系Char10N聯(lián)系電話char11Y7)點(diǎn)擊快捷工具欄上的快捷按鈕,在彈出的“選擇名稱”對(duì)話框中輸入表名 XSQK,然后單擊“確定”按鈕,關(guān)閉表編輯器窗口,完成新表的創(chuàng)建。8) 打開“表”對(duì)象,

11、在“ SQL Server Enterprise Manager ”窗口的右邊窗口中選擇剛才創(chuàng)建的“ XSQK”表。9) 選擇“操作”菜單中的“打開表”子菜單下的“返回所有行”命令,打開表的數(shù)據(jù)記錄窗口。10) 輸入的學(xué)生情況數(shù)據(jù)記錄見表 4-2 。表 4-2 學(xué)生情況記錄學(xué)號(hào)姓名性別出生日期專業(yè)所在系聯(lián)系電話020101楊穎01980-7-20計(jì)算機(jī)應(yīng)用計(jì)算機(jī)88297147020102方露露01981-1-15計(jì)算機(jī)應(yīng)用計(jì)算機(jī)88297147020103俞奇軍11980-2-20信息管理計(jì)算機(jī)88297151020104胡國強(qiáng)11980-11-7信息管理計(jì)算機(jī)88297151020105薛

12、冰11980-7-29水利工程水利系88297152020201秦盈飛01981-3-10電子商務(wù)經(jīng)濟(jì)系88297161020202董含靜01980-9-25電子商務(wù)經(jīng)濟(jì)系88297062020203陳偉11980-8-7電子商務(wù)經(jīng)濟(jì)系88297171020204陳新江11980-7-20房建水利系8829717111) 同理建課程表 KC,表的結(jié)構(gòu)見表 4-3 所示,表的內(nèi)容見表 4-4 所示。表 4-3課程表 KC的結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空值默認(rèn)值說明課程號(hào)Char3N主鍵課程名Char20N教師Char10開課學(xué)期Tinyint1只能 1-6學(xué)時(shí)Tinyint160學(xué)分Tinyi

13、nt1N-7精選文庫表 4-4課程表記錄課程號(hào)課程名教師開課學(xué)期學(xué)時(shí)學(xué)分101計(jì)算機(jī)原理陳紅2453102計(jì)算方法王頤3453103操作系統(tǒng)徐格2604104數(shù)據(jù)庫原理及應(yīng)用應(yīng)對(duì)剛3755105網(wǎng)絡(luò)基礎(chǔ)吳江江4453106高等數(shù)學(xué)孫中文1906107英語陳剛1906108VB程序設(shè)計(jì)趙紅韋370512) 同理建成績表 XS_KC,表的結(jié)構(gòu)見表 4-5 所示,表的內(nèi)容見表 4-6 所示。表 4-5 成績表 XS_KC的結(jié)構(gòu)列名數(shù)據(jù)類型長度是否允許為空值默認(rèn)值說明學(xué)號(hào)Char6N外鍵課程號(hào)Char3N外鍵成績Tinyint10-100 之間表 4-6成績表 XS_KC的記錄學(xué)號(hào)課程號(hào)成績02010

14、110185020101102870201011078802010210158020102102630201041077602020210355020202108800202031035702020410371-8精選文庫實(shí)驗(yàn)五查詢數(shù)據(jù)庫1實(shí)驗(yàn)?zāi)康?)熟悉 SQL Server 2000 查詢分析器環(huán)境。2)掌握基本的 SELECT查詢及其相關(guān)子句的使用。3)掌握復(fù)雜的 SELECT查詢,如多表查詢、子查詢、連接和聯(lián)合查詢。2實(shí)驗(yàn)內(nèi)容1)啟動(dòng) SQL Server 2000查詢分析器環(huán)境。2)涉及多表的簡單查詢。3)涉及多表的復(fù)雜查詢。3. 實(shí)驗(yàn)步驟1)啟動(dòng) SQL Server 查詢分析器,

15、打開“ SQL查詢分析器”窗口。2)在“SQL查詢分析器”窗口中選擇要操作的數(shù)據(jù)庫,如“XSCJ”數(shù)據(jù)庫。3)在 KC表中查詢學(xué)分低于3 的課程信息,并按課程號(hào)升序排列。在查詢命令窗口中輸入以下SQL查詢命令并執(zhí)行:SELECT * FROM KCWHERE KC學(xué).分 <3ORDER BY課程號(hào)-9精選文庫4)在 XS_KC表中按學(xué)號(hào)分組匯總學(xué)生的平均分,并按平均分的降序排列。SELECT學(xué)號(hào) , 平均分 =AVG(成績 ) FROM XS_KCGROUP BY 學(xué)號(hào)ORDER BY 平均分 DESC5)在 XS_KC表中查詢選修了3 門以上課程的學(xué)生學(xué)號(hào)。SELECT學(xué)號(hào) FROM

16、XS_KCGROUP BY 學(xué)號(hào)HAVING COUNT(*)>3-10精選文庫6)按學(xué)號(hào)對(duì)不及格的成績記錄進(jìn)行明細(xì)匯總。SELECT學(xué)號(hào) , 課程號(hào) , 成績 FROM XS_KCWHERE成績 <60ORDER BY學(xué)號(hào)COMPUTE COUNT(成績 )BY學(xué)號(hào)7)分別用子查詢和連接查詢,求107 號(hào)課程不及格的學(xué)生信息。用子查詢:SELECT 學(xué)號(hào) , 姓名 , 聯(lián)系電話FROM XSQKWHERE學(xué)號(hào) IN( SELECT 學(xué)號(hào)FROM XS_KC-11精選文庫WHERE 課程號(hào) = 107 AND 成績 <60)用連接查詢:SELECT學(xué)號(hào) , 姓名 , 聯(lián)系電話

17、FROM XSQKJOIN XS_KC ON XSQK學(xué).號(hào) =XS_KC學(xué).號(hào)WHERE課程號(hào) =107AND 成績 <608)用連接查詢在 XSQK表中查詢住在同一寢室的學(xué)生,即其聯(lián)系電話相同 SELECT A學(xué).號(hào) ,A. 姓名 ,A. 聯(lián)系電話 FROM XSQK A JOIN XSQK B ON A. 聯(lián)系電話 =B.聯(lián)系電話 WHERE A. 學(xué)號(hào) !=B. 學(xué)號(hào)請自已完成以下的查詢:9)查詢 XSQK表中所有的系名。10) 查詢有多少同學(xué)選修了課程。11) 查詢有多少同學(xué)沒有選課。12) 查詢與楊穎同一個(gè)系的同學(xué)姓名。13) 查詢選修了課程的學(xué)生的姓名、課程名與成績。14)

18、 統(tǒng)計(jì)每門課程的選課人數(shù)和最高分。15) 統(tǒng)計(jì)每個(gè)學(xué)生的選課門數(shù)和考試總成績,并按選課門數(shù)的降序排列。-12精選文庫實(shí)驗(yàn)六創(chuàng)建和使用視圖1實(shí)驗(yàn)?zāi)康?)掌握視圖的創(chuàng)建、修改和刪除。2)掌握使用視圖來訪問數(shù)據(jù)。2實(shí)驗(yàn)內(nèi)容1)創(chuàng)建一個(gè)簡單的視圖,查詢101 號(hào)課程不及格的學(xué)生信息。2)修改簡單視圖,查詢107 號(hào)課程成績介于70-90 的學(xué)生信息。3)使用視圖訪問數(shù)據(jù)。4)刪除所創(chuàng)建的視圖。3實(shí)驗(yàn)步驟1)啟動(dòng) SQL Server 企業(yè)管理器,打開“ SQL Server Enterprise Manager”窗口。2)選擇要?jiǎng)?chuàng)建視圖的數(shù)據(jù)庫文件夾,如“XSCJ”文件夾,并在右邊的對(duì)象窗口中選擇其中

19、的“視圖”對(duì)象。3)選擇“操作”菜單中的“新建視圖”命令,打開SQL Server 的視圖設(shè)計(jì)窗口。4)在“數(shù)據(jù)源關(guān)系圖窗口”中單擊鼠標(biāo)右鍵,打開“添加表”窗口,添加XSQK表和 XS_KC表。5)選擇 XSQK表的學(xué)號(hào)和姓名列,選擇XS_KC表的課程號(hào)和成績列,作為視圖的顯示列。6)設(shè)置學(xué)號(hào)列的排序類型為升序。7)設(shè)置查詢條件: 先在課程號(hào)行的 “準(zhǔn)則” 列設(shè)置條件為 “ =101”,然后在成績行的 “準(zhǔn)則”列設(shè)置條件為“ <60”。-13精選文庫8)點(diǎn)擊快捷工具欄上的快捷按鈕,在彈出的“另存為”對(duì)話框中輸入視圖名,如“v_101不及格”,然后單擊“確定”按鈕,關(guān)閉視圖設(shè)計(jì)窗口,完成視

20、圖的創(chuàng)建。9)在“ v_101 不及格”視圖上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“設(shè)計(jì)視圖”命令,修改視圖定義。10) 添加數(shù)據(jù)源 KC表,以顯示 107 號(hào)課程的課程名稱。打開“添加表”窗口,選擇“KC”表,系統(tǒng)自動(dòng)為KC表和 XS_KC表建立基于課程號(hào)的內(nèi)連接。11) 選擇 KC表中的課程名列。12) 添加查詢條件:修改課程號(hào)行中“準(zhǔn)則”列的條件為“ =107”;修改成績行中“準(zhǔn)則”列的條件為“ >=70”,并復(fù)制該行,去掉“輸出”列中的復(fù)選,并修改“準(zhǔn)則”列的條件為“ <=90”。13) 點(diǎn)擊快捷工具欄上的快捷按鈕,關(guān)閉視圖設(shè)計(jì)窗口,保存對(duì)視圖的修改。請自已創(chuàng)建以下視圖 :

21、14) 創(chuàng)建一個(gè)簡單視圖,查詢“計(jì)算機(jī)系”學(xué)生的信息。15) 創(chuàng)建一個(gè)簡單視圖,統(tǒng)計(jì)每門課程的選課人數(shù)和最高分。16) 創(chuàng)建一個(gè)復(fù)雜視圖,查詢與“俞奇軍”住在同一寢室的學(xué)生信息,即其聯(lián)系電話相同。17) 創(chuàng)建一個(gè)復(fù)雜視圖,查詢選修了課程的同學(xué)的姓名,課程名及成績。-14精選文庫實(shí)驗(yàn)七創(chuàng)建和使用索引1實(shí)驗(yàn)?zāi)康?)熟悉 SQL Server 2000索引管理器。2)掌握索引的創(chuàng)建和使用。3)掌握對(duì)索引的優(yōu)化操作。2實(shí)驗(yàn)要求1)使用索引管理器為XS-KC表創(chuàng)建索引 IX-XS-KC。2)使用強(qiáng)制索引查詢數(shù)據(jù)。3)用索引優(yōu)化向?qū)?yōu)化索引。3實(shí)驗(yàn)內(nèi)容1) 用索引管理器創(chuàng)建 XS_KC表的索引 IX_XS

22、_KC。選擇要?jiǎng)?chuàng)建索引的數(shù)據(jù)庫文件夾,如“ XSCJ”文件夾,并在右邊的對(duì)象窗口中選擇并打開其中的“表”對(duì)象。選擇所要?jiǎng)?chuàng)建索引的表,如“ XS_KC”表,并從“操作”菜單中選擇“所有任務(wù)”子菜單下的“管理索引”命令,打開 SQL Server 的索引管理器窗口。單擊其中的“新建”按鈕,創(chuàng)建新的索引,并為其設(shè)置相應(yīng)的屬性。為 XS_KC表創(chuàng)建一個(gè)基于“課程號(hào)”列和“成績”列的索引 IX_XS_KC,其中課程號(hào)列按升序排列,成績列按降序排列。首先,單擊“新建”按鈕,此時(shí)系統(tǒng)打開“新建索引”口,在其中的“列名”列表框中選擇“課程號(hào)”項(xiàng)。再選擇“成績”項(xiàng),并選中其后的“排列次序( DESC)”項(xiàng),使成

23、績列按降序排列。接著,選擇“填充因子”項(xiàng),其值保留系統(tǒng)默認(rèn)的 80,并選中“填充索引”選項(xiàng),使索引中間頁具有與葉級(jí)頁相同的填充程度。最后,將索引名設(shè)置為 IX_XS_KC。-15精選文庫單擊“確定”按鈕,完成新索引的創(chuàng)建。回到索引管理器窗口。2) 強(qiáng)制使用剛才創(chuàng)建的索引查詢數(shù)據(jù)。啟動(dòng) SQL Server 查詢分析器,打開“ SQL 查詢分析器”窗口,并在其右上腳的下拉框中選擇要操作的“ XSCJ”數(shù)據(jù)庫。強(qiáng)制使用“ IX_XS_KC索引查詢所有課程的及格成績記錄。在查詢命令窗口中輸入以下SQL查詢命令并執(zhí)行:SELECT學(xué)號(hào) ,課程表,成績FROMXS_KCWITH (INDEX ( IX_

24、XS_KC) )WHERE成績 >=60觀察一下顯示出來的數(shù)據(jù)是否有序3) 使用索引優(yōu)化向?qū)?yōu)化索引。索引優(yōu)化向?qū)Э梢愿鶕?jù)給定的工作負(fù)荷,通過使用查詢優(yōu)化器分析該工作負(fù)荷的查詢。此時(shí)為數(shù)據(jù)庫推薦最佳索引組合,而為了記錄工作負(fù)荷,必須使用 SQL事件探查創(chuàng)建一個(gè)跟蹤記錄工作負(fù)荷。啟動(dòng) SQL Server 事件探查器,打開“ SQL事件探查”窗口。選擇“文件“菜單中”新建“子菜單下的”跟蹤“命令”打開“跟蹤屬性”對(duì)話框,新建一個(gè)跟蹤。設(shè)置跟蹤名為“ INDEX_TRACE”,把跟蹤保存為負(fù)荷文件“ INDEX_TRACE”。然后單擊運(yùn)行按紐開始跟蹤。切換到 SQL查詢分析器窗口,在其中的查

25、詢命令中輸入以下SELECT查詢語句:SELECT A學(xué).號(hào) ,A. 姓名 ,D. 課程名 ,C. 成績 ,A. 聯(lián)系電話FROM XSQK A JOIN XSQK B ON A聯(lián).系電話 =B.聯(lián)系電話JOIN XS_KC C ON A. 學(xué)號(hào) =C.學(xué)號(hào) JOIN KC D ON D. 課程號(hào) =C.課程號(hào) WHERE A姓.名 =' 俞奇軍 ' and B. 姓名 !=' 俞奇軍 '切換回 SQL事件探查起窗口, 此時(shí)在窗口中列出了剛剛執(zhí)行的查詢語句的跟蹤信息。 單擊快捷工具欄的快捷鍵按鈕暫停跟蹤。-16SQL事件探查窗口”。精選文庫其中,注意列的含義如下

26、:1CPU列:表示查詢所占用的CPU時(shí)間,單位為毫秒。2Duration列:表示查詢執(zhí)行的時(shí)間,單位為毫秒。3Reads列:表示查詢所引起服務(wù)器執(zhí)行的物理磁盤讀取次數(shù)。4Writes 列:表示查詢所引起服務(wù)器執(zhí)行的物理磁盤寫入次數(shù)。選擇“工具”菜單中的“索引優(yōu)化向?qū)А泵睿蜷_“索引優(yōu)化向?qū)А睂?duì)話框。開始優(yōu)化索引。切換到 SQL事件探查窗口,然后點(diǎn)擊快捷工具欄上的快捷按鈕繼續(xù)跟蹤。切換到 SQL查詢分析器窗口,再次執(zhí)行剛才的SELECT查詢語句。切換回 SQL事件探查起窗口,此時(shí)在窗口中又列出了優(yōu)化索引執(zhí)行同樣的查詢語句的跟蹤信息。我們可以看到,優(yōu)化索引后,讀盤次數(shù)減少了,執(zhí)行時(shí)間變短了。比較

27、圖中兩次查詢的執(zhí)行情況,很顯然,經(jīng)過索引優(yōu)化后,查詢性能有了很大的提高。如果全換成大型表,優(yōu)化效果將更加明顯。單擊快捷工具欄上的快捷按鈕停止跟蹤,并關(guān)閉“-17精選文庫實(shí)驗(yàn)八創(chuàng)建并使用約束和默認(rèn)值對(duì)象1. 實(shí)驗(yàn)?zāi)康?) 掌握約束的定義和刪除操作。2) 掌握默認(rèn)值對(duì)象的定義和刪除。2實(shí)驗(yàn)內(nèi)容1)使用命令刪除 XSQK表中性別的約束,然后再創(chuàng)建。2)使用界面方式創(chuàng)建默認(rèn)值對(duì)象,并綁定到列,然后再刪除。3實(shí)驗(yàn)步驟1)刪除并重建 XSQK表中性別的約束。打開“ SQL 查詢分析器”窗口,選擇要操作的數(shù)據(jù)庫,如“XSCJ”數(shù)據(jù)庫。在命令窗口中輸入以下SQL命令并執(zhí)行,刪除XSQK表中性別列的約束。ALT

28、ER TABLE XSQKDROP CONSTRAINT CK_XSQK性別_在命令窗口中輸入以下 SQL命令并執(zhí)行,查詢創(chuàng)建剛才刪除的性別列約束, 使性別只能取值為 1(表示男)或者 0(表示女)。ALTER TABLE XSQKADD CONSTRAINT CK_ XSQK性別CHECK 性(別 =1 OR性別 =0)2)定義新的默認(rèn)值對(duì)象。啟動(dòng) SQL Server 企業(yè)管理器,打開“ SQL Server Enterprise Manager ”窗口。選擇要?jiǎng)?chuàng)建默認(rèn)值對(duì)象的數(shù)據(jù)庫文件夾,如“ XSCJ”文件夾,并在右邊的對(duì)象窗口中選擇其中的“默認(rèn)”對(duì)象。選擇“操作” 菜單中的 “新建默

29、認(rèn)” 命令,打開“默認(rèn)屬性” 對(duì)話框,并輸入名稱 “ DFO_ 出生日期”和值 1980-1-1注意: 1980-1-1 前后有單引號(hào)( )括起來,表示其為日期類型。單擊“確定”按鈕,完成默認(rèn)值對(duì)象的定義。3)將默認(rèn)值對(duì)象綁定到XSQK表的出生日期列。打開“默認(rèn)”對(duì)象,并選中剛才定義的默認(rèn)值對(duì)象DFO出生日期。選擇“操作”菜單中的“屬性”命令,打開“默認(rèn)屬性”對(duì)話框。單擊“綁定列”按鈕,打開“將默認(rèn)值綁定到列”的對(duì)話框。單擊“確定”按鈕,完成到列的綁定。-18精選文庫4)使用值對(duì)象為新插入行的出生日期列設(shè)置值。在對(duì)象窗口中選擇并打開其中的“表”對(duì)象,選中XSQK表。選擇“操作”菜單中“打開表”

30、子菜單下的“返回所有行”命令,打開表的數(shù)據(jù)記錄窗口。在表中插入一行新記錄,其中出生日期列不填,其值由剛才綁定的默認(rèn)值對(duì)象設(shè)定。如果在設(shè)置默認(rèn)值對(duì)象屬性時(shí),其值前后沒有加單引號(hào)( ),那么在插入出生日期列的默認(rèn)值時(shí),該值就不會(huì)是“ 1980-1-1 ”了。關(guān)閉數(shù)據(jù)記錄窗口。5)取消綁定并刪除默認(rèn)值對(duì)象。選擇并打開“默認(rèn)”對(duì)象,選中“DFO出生日期”默認(rèn)對(duì)象。選擇“操作”菜單中的“屬性”命令,打開“默認(rèn)屬性”對(duì)話框。單擊“綁定列”按鈕,打開“將默認(rèn)值綁定到列”對(duì)話框。單擊“確定”按鈕,取消到列的綁定,關(guān)閉“默認(rèn)屬性”對(duì)話框。選擇“操作”菜單中的“刪除”命令,打開“除去對(duì)象”對(duì)話框。單擊“全部除去”

31、按鈕,確定刪除。-19精選文庫實(shí)驗(yàn)九實(shí)現(xiàn)數(shù)據(jù)完整性1實(shí)驗(yàn)?zāi)康?)掌握域完整性的實(shí)現(xiàn)方法。2)掌握實(shí)體完整性的實(shí)現(xiàn)方法。3)掌握參照完整性的方法。2實(shí)驗(yàn)內(nèi)容1)使用界面方式創(chuàng)建規(guī)則對(duì)象,并綁定到列,實(shí)現(xiàn)域完整性。2)為表添加一個(gè)標(biāo)識(shí)列,實(shí)現(xiàn)實(shí)體完整性。3)為兩表建立關(guān)聯(lián),實(shí)現(xiàn)參照完整性。3實(shí)驗(yàn)步驟1)實(shí)現(xiàn)域完整性啟動(dòng) SQL Server 企業(yè)管理器,打開“ SQL Server Enterprise Manager ”窗口。選擇要?jiǎng)?chuàng)建規(guī)則對(duì)象的數(shù)據(jù)庫文件夾, 并在右邊的對(duì)象窗口中選擇其中的 “規(guī)則”對(duì)象。選擇“操作”菜單中的“新建規(guī)則”命令,打開“規(guī)則屬性”對(duì)話框。設(shè)置形如“(區(qū)號(hào))電話號(hào)碼”

32、的聯(lián)系電話格式檢查規(guī)則,單擊“確定”按鈕,完成規(guī)則對(duì)象的定義。打開“規(guī)則”對(duì)象,并選中剛才定義的規(guī)則對(duì)象 RO 聯(lián)系電話格式。選擇“操作”菜單中的“屬性”命令,打開“規(guī)則屬性”對(duì)話框。單擊“綁定列”按鈕,打開“將規(guī)則綁定到列”對(duì)話框,完成到列的綁定,關(guān)閉“規(guī)則屬性”對(duì)話框。在對(duì)象窗口中選擇并打開其中的“表”對(duì)象,選中 XSQK表并打開。在表中分別插入兩行新記錄, 其中一行的聯(lián)系電話格式為指定的格式, 另一行的聯(lián)系電話格式為非法格式。當(dāng)插入第一行時(shí),系統(tǒng)成功地插入了新數(shù)據(jù)行,但無信息返回;而在插入第二行時(shí)-20精選文庫系統(tǒng)提示錯(cuò)誤信息,拒絕接受非法格式的聯(lián)系電話,從而保證了域完整性。單擊“確定”

33、按鈕,取消插入,并關(guān)閉表的數(shù)據(jù)記錄窗口。2)實(shí)現(xiàn)實(shí)體完整性在對(duì)象窗口中選擇并打開其中的“表”對(duì)象,選中KC表。選擇“操作”菜單中的“設(shè)計(jì)表”命令,打開表編輯器窗口。添加一個(gè)標(biāo)識(shí)列,種子值為1,遞增量也為 1。點(diǎn)擊快捷工具攔上的快捷按鈕,完成標(biāo)識(shí)列的添加,然后關(guān)閉編輯窗口。選中 KC表并打開表的數(shù)據(jù)記錄窗口。可以看到,系統(tǒng)自動(dòng)為每行的標(biāo)識(shí)列填充了值,并從1 開始,依次遞增,這樣,表中的每一數(shù)據(jù)行都可以由標(biāo)識(shí)列唯一標(biāo)識(shí),實(shí)現(xiàn)了實(shí)體完整性。關(guān)閉表的數(shù)據(jù)記錄窗口。3)實(shí)現(xiàn)參照完整性在對(duì)象窗口中選擇打開其中的“表”對(duì)象,選中XS_KC表。先擇“操作”菜單中的“設(shè)計(jì)表”命令,打開表編輯器窗口。點(diǎn)擊快捷工具

34、攔上的快捷按鈕,打開“屬性”對(duì)話框的“關(guān)系”選項(xiàng)卡。為 XSQK表和 XS_KC表建立基于學(xué)號(hào)列的關(guān)系。-21精選文庫選中 XSQK表,并選擇“操作”菜單中“打開表”子菜單下的“返回所有行”命令,打開表的數(shù)據(jù)記錄窗口。將表中的值為“ 020101”的學(xué)號(hào)都修改為“ 020111”。由于 XSQK表中不存在值為“ 020111”的學(xué)號(hào),所以系統(tǒng)提示錯(cuò)誤信息,拒絕接受不存在的學(xué)號(hào),從而保證了參照完整性。單擊“確定”按鈕,取消修改,并關(guān)閉表的數(shù)據(jù)記錄窗口。-22精選文庫實(shí)驗(yàn)十實(shí)現(xiàn)存儲(chǔ)過程1實(shí)驗(yàn)?zāi)康?)掌握用戶存儲(chǔ)過程的創(chuàng)建操作。2)掌握用戶存儲(chǔ)過程執(zhí)行操作。3)掌握用戶存儲(chǔ)過程的刪除操作。2實(shí)驗(yàn)內(nèi)容

35、1)創(chuàng)建帶輸入?yún)?shù)的存儲(chǔ)過程和嵌套調(diào)用的存儲(chǔ)過程。2)執(zhí)行所創(chuàng)建的存儲(chǔ)過程。3)刪除所有新創(chuàng)建的存儲(chǔ)過程。3實(shí)驗(yàn)步驟1)創(chuàng)建帶輸入?yún)?shù)的存儲(chǔ)過程。啟動(dòng) SQL Server 查詢分析器,打開“ SQL查詢分析器”窗口。選擇要操作的數(shù)據(jù)庫,如“ XSCJ”數(shù)據(jù)庫。在查詢命令窗口中輸入創(chuàng)建存儲(chǔ)過程的CREATE PROCEDURE語句。這里,我們創(chuàng)建一個(gè)帶輸入?yún)?shù)的存儲(chǔ)過程 proc_XSQK1,其中的輸入?yún)?shù)用于接收課程號(hào),默認(rèn)值為 “ 101”,然后在 XS_KC表中查詢該課成績不及格的學(xué)生學(xué)號(hào),接著在 XSQK表中查找這些學(xué)生的基本信息, 包括學(xué)號(hào)、姓名、性別和聯(lián)系電話信息,最后輸出。點(diǎn)擊快

36、捷工具欄上的快捷銨鈕,對(duì)輸入的 CREATE PROCEDURE語句進(jìn)行語法分析。如果有語法錯(cuò)誤,則進(jìn)行修改,直到?jīng)]有語法錯(cuò)誤為止。點(diǎn)擊快捷工具攔上的快捷按鈕,執(zhí)行CREATE PROCEDURE語句。2) 創(chuàng)建帶嵌套調(diào)用的存儲(chǔ)過程。-23精選文庫在查詢命令窗口中輸入創(chuàng)建存儲(chǔ)過程的CREATE PROCEDURE語句。這里,我們創(chuàng)建一個(gè)帶嵌套調(diào)用的存儲(chǔ)過程 proc_XSQK2。該存儲(chǔ)過程也有一個(gè)輸入?yún)?shù),它用于接收授課教師姓名,默認(rèn)值為“王頤” ,然后嵌套調(diào)用存儲(chǔ)過程 proc_ 課程號(hào),輸出其所授課程的課程號(hào),接著用此課程號(hào)來完成上一部分實(shí)驗(yàn)中所創(chuàng)建的存儲(chǔ)過程 proc_XSQK1的功能。

37、相應(yīng)的CREATE PROCEDURE語句如下:DECLARE 課程號(hào) char (3)- 嵌套調(diào)用存儲(chǔ)過程 proc_ 課程號(hào)EXECUTE proc_課程號(hào) 授課老師, 課程號(hào) OUTPUT- 查詢指定課程成績不及格的學(xué)生的基本信息SELECT XSQK學(xué).號(hào), XSQK姓.名, XSQK性.別, XSQK聯(lián).系電話FROM XSQK,XS_KCWHERE XS_KC課.程號(hào) =課程號(hào)AND XS_KC成.績 <60AND XSQK學(xué).號(hào) =XS_KC學(xué).號(hào)PROC課程號(hào)的存儲(chǔ)過程如下 :CREATE PROCEDURE PROC課程號(hào)教師 CHAR(10)= 王頤 ,課程號(hào)碼CHA

38、R(3) OUTPUTASSELECT 課程號(hào)碼 =課程號(hào) FROM KCWHERE KC教.師 =教師點(diǎn)擊快捷工具欄上的快捷按鈕,對(duì)輸入的 CREATE PROCEDURE語句進(jìn)行語法分析。如果有語法錯(cuò)誤,則進(jìn)行修改,直到?jīng)]有語法錯(cuò)誤為止。點(diǎn)擊快捷工具欄上的快捷按鈕,執(zhí)行CREATE PROCEDURE語句。3) 執(zhí)行所創(chuàng)建的二個(gè)存儲(chǔ)過程在查詢命令窗口中輸入以下EXECUTE語句,執(zhí)行存儲(chǔ)過程proc_XSQK1。EXECUTE proc_XSQK1 101點(diǎn)擊快捷工具攔上的快捷按鈕,執(zhí)行存儲(chǔ)過程。在查詢命令窗口中輸入以下EXECUTE語句,執(zhí)行存儲(chǔ)過程proc_XSQK2。EXECUTE

39、proc_XSQK2 DEFAULT點(diǎn)擊快捷工具攔上的快捷按鈕,執(zhí)行存儲(chǔ)過程。3) 刪除新建的存儲(chǔ)過程在查詢命令的窗口中輸入DROP PROCEDURE語句和所有新創(chuàng)建的存儲(chǔ)過程名。DROP PROCEDUREProc_XSQK1 ,proc_XSQK2點(diǎn)擊快捷工具上的快捷按鈕,刪除存儲(chǔ)過程。-24精選文庫實(shí)驗(yàn)十一實(shí)現(xiàn)觸發(fā)器1. 實(shí)驗(yàn)?zāi)康?)掌握觸發(fā)器的創(chuàng)建、修改和刪除操作。2)掌握觸發(fā)器的觸發(fā)執(zhí)行。3)掌握觸發(fā)器與約束的不同。2. 實(shí)驗(yàn)要求1) 創(chuàng)建觸發(fā)器。2) 觸發(fā)器執(zhí)行觸發(fā)器。3) 驗(yàn)證約束與觸發(fā)器的不同作用期。4) 刪除新創(chuàng)建的觸發(fā)器。3. 實(shí)驗(yàn)內(nèi)容1) 創(chuàng)建觸發(fā)器啟動(dòng) SQLServ

40、er 查詢分析器,打開“ SQL查詢分析器”窗口 , 選擇要操作的數(shù)據(jù)庫,如“XSCJ”數(shù)據(jù)庫。在查詢命令窗口中輸入以下CREATE TRIGGER語句,創(chuàng)建觸發(fā)器。為 XS_KC表創(chuàng)建一個(gè)基于 UPDATE操作和 DELETE操作的復(fù)合型觸發(fā)器,當(dāng)修改了該表中的成績信息或者刪除了成績記錄時(shí),觸發(fā)器被激活生效,顯示相關(guān)的操作信息。- 創(chuàng)建觸發(fā)器CREATE TRIGGER tri_UPDATE_DELETE_XS_KCON XS_KCFOR UPDATE,DELETEAS- 檢測成績列表是否被更新IF UPDATE(成績 )BEGIN- 顯示學(xué)號(hào)、課程號(hào)、原成績和新成績信息SELECT INS

41、ERTED課.程號(hào), DELETED成.績 AS原成績,INSERTED成.績 AS原成績FROM DELETED, INSERTEDWHERE DELETED學(xué)號(hào). =INSERTED學(xué).號(hào)END- 檢測是更新還是刪除操作ELSE IF COLUMNS_UPDATED( )=0BEGIN- 顯示被刪除的學(xué)號(hào)、課程號(hào)和成績信號(hào)SELECT被刪除的學(xué)號(hào) =DELETED學(xué).號(hào), DELETED課.程號(hào),DELETED成.績 AS原成績FROM DELETEDENDELSE- 返回提示信息-25精選文庫PRINT 更新了非成績列! 點(diǎn)擊快捷工具欄上的快捷按鈕,完成觸發(fā)器的創(chuàng)建。2) 觸發(fā)觸發(fā)器在查詢命令窗口中輸入以下UPDATE XS_KC語句,修改成績列,激發(fā)觸發(fā)器。UPDATE XS_KC

溫馨提示

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

評(píng)論

0/150

提交評(píng)論