數(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頁,還剩29頁未讀, 繼續(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)系本身的屬性。畫出班級(jí)與學(xué)

2、生關(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)明各自的主碼或外碼。4) 設(shè)計(jì)能夠表示出房地產(chǎn)交易中

3、客戶,業(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ù)庫。實(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ù)完整性。2. 實(shí)驗(yàn)內(nèi)容1) 復(fù)習(xí)候選關(guān)鍵字,主關(guān)鍵字,外關(guān)鍵字,組合

4、關(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李想富陽854387693100100003200003張麗杭州67893542310017000220000

5、4李華江蕭山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ù)完整性的。實(shí)驗(yàn)三 關(guān)系規(guī)范化1. 實(shí)驗(yàn)?zāi)康?) 了解函數(shù)依賴的基本概念。2) 能正確判斷某一關(guān)系是屬于第幾范式。3) 掌握規(guī)范化范式的方法。2. 實(shí)驗(yàn)內(nèi)容1) 復(fù)習(xí)函數(shù)依賴,數(shù)據(jù)規(guī)范化,范式的基本概念以及各級(jí)范式的

6、判別標(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í)間P27E101系統(tǒng)集成部90P51101P2060P27E305銷售部109P2298P51E508行政辦公室NULLP27723) 有表3-2所示的項(xiàng)目表2,判斷其是否滿足第二范式的條件,并說明理由。 表3-2 項(xiàng)目表2項(xiàng)目代號(hào)職員代碼部門累計(jì)工作時(shí)間P27E101系統(tǒng)集成部90P27E305財(cái)務(wù)部

7、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ù)部E9095) 有表3-4所示的項(xiàng)目表3,判斷其是否滿足第三范式的條件,并說明理由。 表3-4 項(xiàng)目表3項(xiàng)目代碼職員代碼職員姓名累計(jì)工作時(shí)間P2E1李華玉48P5E2陳家偉100P6E3張勤15P3E4謝成權(quán)2505P5E4謝成權(quán)7

8、5P5E1李華玉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ù)帶來的不利影響是什么?實(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)建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)

9、步驟1) 啟動(dòng)SQL Server企業(yè)管理器,打開“SQL Server Enterprise Mananger”窗口,并在左邊的目錄樹結(jié)構(gòu)中選擇“數(shù)據(jù)庫”文件夾。2) 選擇“操作”菜單中的“新建數(shù)據(jù)庫”命令,打開 “數(shù)據(jù)庫屬性” 對話框,并在 “名稱”框內(nèi)輸入數(shù)據(jù)庫名稱XSCJ。3) 單擊“確定”按鈕,完成XSCJ數(shù)據(jù)庫的創(chuàng)建。4) 打開剛才創(chuàng)建的 “XSCJ” 文件夾,并在“SQL Server Enterprise Mananger”窗口的右邊窗口中選擇“表”對象。5) 選擇“操作”菜單中的“新建表”命令,打開SQL Server的表編輯器窗口。 6) 根據(jù)表4-1所示的表結(jié)構(gòu)增加新列。

10、 表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)擊快捷工具欄上的快捷按鈕,在彈出的“選擇名稱”對話框中輸入表名XSQK,然后單擊“確定”按鈕,關(guān)閉表編輯器窗口,完成新表的創(chuàng)建。8) 打開“表”對象,在“SQL Server Enterprise Manager”窗口的右邊窗口中選擇剛才創(chuàng)建的“XSQK”表。9) 選擇“操作”菜單中的“打開表”子菜單下的“返回所有行”命令,打開表的數(shù)據(jù)記錄窗口。10)

11、輸入的學(xué)生情況數(shù)據(jù)記錄見表4-2。學(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薛冰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ì)系88

12、297171020204陳新江11980-7-20房建水利系88297171 表4-2 學(xué)生情況記錄11) 同理建課程表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é)分Tinyint1N 表4-4 課程表記錄課程號(hào)課程名教師開課學(xué)期學(xué)時(shí)學(xué)分101計(jì)算機(jī)原理陳紅2453102計(jì)算方法王頤3453103操作系統(tǒng)徐格2604104數(shù)據(jù)庫原理及應(yīng)用應(yīng)對剛3755105網(wǎng)絡(luò)基礎(chǔ)吳江江4453106高等數(shù)學(xué)孫中文19

13、06107英語陳剛1906108VB程序設(shè)計(jì)趙紅韋3705 12) 同理建成績表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)成績02010110185020101102870201011078802010210158020102102630201041077602020210355020202108800202031035702020410371實(shí)驗(yàn)五 查詢數(shù)據(jù)庫1實(shí)驗(yàn)?zāi)康?) 熟悉SQL

14、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查詢分析器,打開“SQL查詢分析器”窗口。2) 在“SQL查詢分析器”窗口中選擇要操作的數(shù)據(jù)庫,如“XSCJ”數(shù)據(jù)庫。3) 在KC表中查詢學(xué)分低于3的課程信息,并按課程號(hào)升序排列。 在查詢命令窗口中輸入以下SQL查詢命令并執(zhí)行: SELECT * FROM KC WHERE

15、KC.學(xué)分36) 按學(xué)號(hào)對不及格的成績記錄進(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 WHERE 課程號(hào)=107AND 成績60)用連接查詢:SELECT 學(xué)號(hào),姓名,聯(lián)系電話 FROM XSQK JOIN XS_KC ON XSQK.學(xué)號(hào)=XS_KC.學(xué)號(hào)WHERE課程號(hào)=107AND 成績6

16、08) 用連接查詢在XSQK表中查詢住在同一寢室的學(xué)生,即其聯(lián)系電話相同SELECT A.學(xué)號(hào),A.姓名,A.聯(lián)系電話 FROM XSQK A JOIN XSQK BON 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) 統(tǒng)計(jì)每門課程的選課人數(shù)和最高分。15) 統(tǒng)計(jì)每個(gè)學(xué)生的選課門數(shù)和考試總成績,并按選課門數(shù)的降序排列。實(shí)驗(yàn)六 創(chuàng)建和使用視圖1實(shí)驗(yàn)?zāi)康?) 掌握視圖的創(chuàng)

17、建、修改和刪除。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”文件夾,并在右邊的對象窗口中選擇其中的“視圖”對象。3) 選擇“操作”菜單中的“新建視圖”命令,打開SQL Server的視圖設(shè)計(jì)窗口。4) 在“數(shù)據(jù)源關(guān)系圖窗口”中單擊鼠標(biāo)右鍵,打開“添加表”窗

18、口,添加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è)置條件為“=70”,并復(fù)制該行,去掉“輸出”列中的復(fù)選,并修改“準(zhǔn)則”列的條件為“=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事

19、件探查器,打開“SQL事件探查”窗口。選擇“文件“菜單中”新建“子菜單下的”跟蹤“命令”打開“跟蹤屬性”對話框,新建一個(gè)跟蹤。設(shè)置跟蹤名為“INDEX_TRACE”,把跟蹤保存為負(fù)荷文件“INDEX_TRACE”。然后單擊運(yùn)行按紐開始跟蹤。切換到SQL查詢分析器窗口,在其中的查詢命令中輸入以下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.姓名=俞奇軍 an

20、d B.姓名!=俞奇軍切換回SQL事件探查起窗口,此時(shí)在窗口中列出了剛剛執(zhí)行的查詢語句的跟蹤信息。單擊快捷工具欄的快捷鍵按鈕暫停跟蹤。其中,注意列的含義如下:1CPU列:表示查詢所占用的CPU時(shí)間,單位為毫秒。2Duration列:表示查詢執(zhí)行的時(shí)間 ,單位為毫秒。3Reads列:表示查詢所引起服務(wù)器執(zhí)行的物理磁盤讀取次數(shù)。4Writes列:表示查詢所引起服務(wù)器執(zhí)行的物理磁盤寫入次數(shù)。選擇“工具”菜單中的“索引優(yōu)化向?qū)А泵?,打開“索引優(yōu)化向?qū)А睂υ捒?。開始優(yōu)化索引。切換到SQL事件探查窗口,然后點(diǎn)擊快捷工具欄上的快捷按鈕繼續(xù)跟蹤。切換到SQL查詢分析器窗口,再次執(zhí)行剛才的SELECT查詢語句

21、。切換回SQL事件探查起窗口,此時(shí)在窗口中又列出了優(yōu)化索引執(zhí)行同樣的查詢語句的跟蹤信息。我們可以看到,優(yōu)化索引后,讀盤次數(shù)減少了,執(zhí)行時(shí)間變短了。比較圖中兩次查詢的執(zhí)行情況,很顯然,經(jīng)過索引優(yōu)化后,查詢性能有了很大的提高。如果全換成大型表,優(yōu)化效果將更加明顯。單擊快捷工具欄上的快捷按鈕停止跟蹤,并關(guān)閉“SQL事件探查窗口”。實(shí)驗(yàn)八 創(chuàng)建并使用約束和默認(rèn)值對象1. 實(shí)驗(yàn)?zāi)康?) 掌握約束的定義和刪除操作。2) 掌握默認(rèn)值對象的定義和刪除。2實(shí)驗(yàn)內(nèi)容1) 使用命令刪除XSQK表中性別的約束,然后再創(chuàng)建。2) 使用界面方式創(chuàng)建默認(rèn)值對象,并綁定到列,然后再刪除。3實(shí)驗(yàn)步驟1)刪除并重建XSQK表中性

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

23、窗口。選擇要?jiǎng)?chuàng)建默認(rèn)值對象的數(shù)據(jù)庫文件夾,如“XSCJ”文件夾,并在右邊的對象窗口中選擇其中的“默認(rèn)”對象。選擇“操作”菜單中的“新建默認(rèn)”命令,打開“默認(rèn)屬性”對話框,并輸入名稱“DFO_出生日期”和值 1980-1-1注意:1980-1-1前后有單引號(hào)()括起來,表示其為日期類型。單擊“確定”按鈕,完成默認(rèn)值對象的定義。3)將默認(rèn)值對象綁定到XSQK表的出生日期列。打開“默認(rèn)”對象,并選中剛才定義的默認(rèn)值對象DFO_出生日期。選擇“操作”菜單中的“屬性”命令,打開“默認(rèn)屬性”對話框。單擊“綁定列”按鈕,打開“將默認(rèn)值綁定到列”的對話框。單擊“確定”按鈕,完成到列的綁定。4)使用值對象為新插

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

25、綁定,關(guān)閉“默認(rèn)屬性”對話框。選擇“操作”菜單中的“刪除”命令,打開“除去對象”對話框。單擊“全部除去”按鈕,確定刪除。實(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ī)則對象,并綁定到列,實(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ī)則對象的數(shù)據(jù)庫文件夾,并在右邊的對象窗口中選擇其中的“規(guī)則”對

26、象。選擇“操作”菜單中的“新建規(guī)則”命令,打開“規(guī)則屬性”對話框。設(shè)置形如“(區(qū)號(hào))電話號(hào)碼”的聯(lián)系電話格式檢查規(guī)則,單擊“確定”按鈕,完成規(guī)則對象的定義。打開“規(guī)則”對象,并選中剛才定義的規(guī)則對象RO_聯(lián)系電話格式。選擇“操作”菜單中的“屬性”命令,打開“規(guī)則屬性”對話框。單擊“綁定列”按鈕,打開“將規(guī)則綁定到列”對話框,完成到列的綁定,關(guān)閉“規(guī)則屬性”對話框。在對象窗口中選擇并打開其中的“表”對象,選中XSQK表并打開。在表中分別插入兩行新記錄,其中一行的聯(lián)系電話格式為指定的格式,另一行的聯(lián)系電話格式為非法格式。當(dāng)插入第一行時(shí),系統(tǒng)成功地插入了新數(shù)據(jù)行,但無信息返回;而在插入第二行時(shí)系統(tǒng)提

27、示錯(cuò)誤信息,拒絕接受非法格式的聯(lián)系電話,從而保證了域完整性。單擊“確定”按鈕,取消插入,并關(guān)閉表的數(shù)據(jù)記錄窗口。2)實(shí)現(xiàn)實(shí)體完整性在對象窗口中選擇并打開其中的“表”對象,選中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)參照完整性在對象窗口中選擇打開其中的“表”對象,選中XS_KC表。

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

29、戶存儲(chǔ)過程的刪除操作。2實(shí)驗(yàn)內(nèi)容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)系電話信

30、息,最后輸出。點(diǎn)擊快捷工具欄上的快捷銨鈕,對輸入的CREATE PROCEDURE 語句進(jìn)行語法分析。如果有語法錯(cuò)誤,則進(jìn)行修改,直到?jīng)]有語法錯(cuò)誤為止。點(diǎn)擊快捷工具攔上的快捷按鈕,執(zhí)行CREATE PROCEDURE語句。2) 創(chuàng)建帶嵌套調(diào)用的存儲(chǔ)過程。在查詢命令窗口中輸入創(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的功能。相應(yīng)

31、的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.成績=0 AND成績=100)在查詢命令窗口中輸入并執(zhí)行以下UPDATE XS_KC語句,查看執(zhí)行結(jié)果。UPDATE XS_KC SET成績=120WHERE 課程號(hào)=108在查詢命令窗口中輸入執(zhí)行以下UPDAT

32、E XS_KC 語句,查看執(zhí)行結(jié)果。UPDATE XS_KCSET成績=90WHERE 課程號(hào)=108從這部分實(shí)驗(yàn)中,我們可以看到,約束優(yōu)先于觸發(fā)器起作用,它在更新前就生效,以對要更新的值進(jìn)行規(guī)則檢查。當(dāng)檢查到與現(xiàn)有規(guī)則沖突時(shí),系統(tǒng)給出錯(cuò)誤消息,并取消更新操作。如果檢查沒有問題,更新被執(zhí)行,當(dāng)執(zhí)行完畢后,再激活觸發(fā)器。4) 刪除新創(chuàng)建的觸發(fā)器在查詢命令窗口中輸入DROP TRIGGER 語句,刪除新創(chuàng)建的觸發(fā)器。DROP TRIGGER tri_UPDATE_DELETE_XS_KC點(diǎn)擊快捷工具欄上的快捷按鈕,刪除觸發(fā)器。*實(shí)驗(yàn)十二 實(shí)現(xiàn)事務(wù)和批1. 實(shí)驗(yàn)?zāi)康?) 了解事務(wù)的ACID屬性。2)

33、 掌握事務(wù)和批的工作原理。3) 了解事務(wù)處理與批處理。2. 實(shí)驗(yàn)內(nèi)容1) 事務(wù)處理與批處理的關(guān)系。2) 如何把一個(gè)事務(wù)處理封閉在單個(gè)的批處理中。3) 用條件判斷結(jié)構(gòu)來實(shí)現(xiàn)。3. 實(shí)驗(yàn)步驟1) 把事務(wù)處理分散寫進(jìn)多個(gè)批處理通常不是一個(gè)好的設(shè)計(jì)思想。鎖定問題會(huì)變得非常復(fù)雜,會(huì)帶來可怕的性能干擾。2) 通常情況下,應(yīng)該把一個(gè)事務(wù)處理封閉在單個(gè)的批處理中。下面還有一個(gè)更好的方法來編寫這段程序:BEGIN TRANSACTINONINSERT PUBLISHERS(PUB_ID,PUB_NAME,CITY,STATE)VALUES(“1111”,“JOE AND MARYS BOOKS”,“NOTRTH

34、ERN PLAINS”,“IA”)IF ERROR=0BEGIN PRINT PUBLISHER INSERT WAS SUCCESSFUL CONTINUING。 UPDATE TITLES SET PUB_ID=1111 WHERE PUB_ID=1234 DELETE AUTHORS WHERE STATE=CACOMMIT TRANSACTIONENDELSEBEGIN PRINT PUBLISHER INSERT FAILEDROLLING BACK TRANSACTION ROLLBACK TRANSACTIONEND這個(gè)例子中最重要的一點(diǎn)在于事務(wù)處理屬于一個(gè)簡單的批處理了。*實(shí)驗(yàn)

35、十三 檢測死鎖1實(shí)驗(yàn)?zāi)康?) 了解死鎖的類型和其兼容性。2) 了解死鎖發(fā)生的情況。3) 了解可鎖定的資源。4) 了解死鎖的一般處理過程。2實(shí)驗(yàn)內(nèi)容1) 鎖與并行查詢執(zhí)行相關(guān)的資源。2) 如何查看進(jìn)程信息。3) 如何查看鎖/對象信息。4) 如何處理死鎖。3實(shí)驗(yàn)步驟1) 構(gòu)造死鎖,讓鎖現(xiàn)象發(fā)生。先構(gòu)造一個(gè)可能造成鎖表的代碼如下:BEGIN TRANSACTIONINSERT publishers (pub_id,pub_name,city,state)VALUES(“1111”,“Joe and Marys Books”,“Notrthern Plains”,“IA”)IF ERROR=0BEGI

36、N PRINT Publisher insert failedrolling back transaction ROLLBACK TRANSACTIONEND下面的代碼對同一個(gè)表執(zhí)行簡單的查詢操作,具體代碼如下:select * from titles;2)處理死鎖的一般過程或步驟。Sp_who:提供關(guān)于當(dāng)前Microsoft SQL Server用戶和進(jìn)程信息。如:列出全部當(dāng)前進(jìn)程。在SQL查詢分析器的命令窗口中輸入sp_whosp_lock:報(bào)告有關(guān)鎖的信息在SQL查詢分析器的命令窗口中輸入sp_lock spid1=從sp_who中查出的進(jìn)程標(biāo)識(shí)號(hào)在企業(yè)管理器中打開“管理”文件夾下的當(dāng)前

37、活動(dòng),查看進(jìn)程信息。實(shí)驗(yàn)十四 實(shí)現(xiàn)安全管理1實(shí)驗(yàn)?zāi)康?) 了解SQL Server 2000 的身份驗(yàn)證方法。2) 掌握合法登錄帳戶的設(shè)置。3) 掌握數(shù)據(jù)庫用戶的設(shè)置。4) 掌握數(shù)據(jù)庫角色的設(shè)置。5) 掌握用戶的權(quán)限管理方法。2實(shí)驗(yàn)內(nèi)容1) Windows和SQL Server2000身份驗(yàn)證的比較。2) 設(shè)置登錄帳戶。3) 設(shè)置數(shù)據(jù)庫用戶。4) 設(shè)置數(shù)據(jù)庫角色。5) 設(shè)置數(shù)據(jù)庫用戶權(quán)限。3實(shí)驗(yàn)步驟1) 使用企業(yè)管理器選擇和設(shè)置身份驗(yàn)證模式 打開企業(yè)管理器,在“樹”窗口中展開一個(gè)服務(wù)器組,然后選擇希望設(shè)置身份驗(yàn)證模式的服務(wù)器。 在該服務(wù)器上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇命令“屬性”,打開“屬

38、性”對話框。 在屬性對話框中選擇“安全性”選項(xiàng)卡,在“身份驗(yàn)證”區(qū)域中選擇下列身份驗(yàn)證模式之一。 SQL Server和Windows:指定用戶可以使用SQL Server身份驗(yàn)證和Windows身份驗(yàn)證連接到SQL Server。 僅Windows:指定用戶只能使用Windows身份驗(yàn)證連接SQL Server。 單擊“確定”按鈕,即可完成身份驗(yàn)證模式的選擇和設(shè)置。 2) 使用企業(yè)管理器創(chuàng)建登錄賬戶 打開企業(yè)管理器,展開希望創(chuàng)建新的登錄的服務(wù)器。 展開文件夾“安全性”,在登錄節(jié)點(diǎn)上單擊鼠標(biāo)右鍵。 從彈出的菜單中選擇“新建登錄”,打開“新建登錄”窗口。 在“新建登錄”窗口的“常規(guī)”選項(xiàng)卡中進(jìn)行

39、如下配置: 在“名稱”文本框中輸入一個(gè)SQL Server登錄的賬號(hào)名。 選擇一種登錄模式。 在“默認(rèn)設(shè)置”區(qū)選擇連接時(shí)默認(rèn)的數(shù)據(jù)庫XSCJ和語言。 在“新建登錄”窗口的“數(shù)據(jù)庫訪問”選項(xiàng)卡,選擇允許登錄賬戶訪問的數(shù)據(jù)庫和分配給登錄賬戶的數(shù)據(jù)庫角色。 單擊“確定”按鈕,完成登錄模式的創(chuàng)建。3) 使用企業(yè)管理器新建數(shù)據(jù)庫用戶 打開企業(yè)管理器,在樹形目錄中展開指定的數(shù)據(jù)庫節(jié)點(diǎn)。 選中該數(shù)據(jù)庫節(jié)點(diǎn)的下一級(jí)節(jié)點(diǎn)“用戶”,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“新建數(shù)據(jù)庫用戶”。4) 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫角色 打開企業(yè)管理器,在樹形目錄中展開指定的數(shù)據(jù)庫節(jié)點(diǎn)。 選中該數(shù)據(jù)庫節(jié)點(diǎn)的下一級(jí)節(jié)點(diǎn)“角色”,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“新建數(shù)據(jù)庫角色”。 在彈出的“數(shù)據(jù)庫角色屬性-新建角色”對話框中,進(jìn)行如下操作: 輸入名稱:輸入新建數(shù)據(jù)庫角色的名稱 選擇角色類型:選擇標(biāo)準(zhǔn)角色 添加用戶:單擊“添加”按鈕向角色中添加用戶 單擊“確定”按鈕,完成數(shù)據(jù)庫角色的創(chuàng)建。 設(shè)置該數(shù)據(jù)庫角色的權(quán)限。5) 使用企業(yè)管理器管理對象權(quán)限 打開企業(yè)管理器,展開指定的數(shù)據(jù)庫節(jié)點(diǎn)。 選中需要查看或修改權(quán)限的數(shù)據(jù)庫對象,展開該庫對象,在其中某一張表上單擊鼠標(biāo)右鍵,選擇菜單命令“屬性”,打開“表屬性”對話框。 在“表屬性”對話框中單擊“權(quán)限”按鈕,打開權(quán)限選項(xiàng)卡,選擇相

溫馨提示

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

評(píng)論

0/150

提交評(píng)論