版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精品文檔數(shù)據(jù)庫原理及應用- SQL Server 2000 陳學進 于 2010年三月實驗指導書 實驗一 用E-R圖設計數(shù)據(jù)庫1. 實驗目的1) 熟悉E-R模型的基本概念和圖形的表示方法。2) 掌握將現(xiàn)實世界的事物轉化成E-R圖的基本技巧。3) 熟悉關系數(shù)據(jù)模型的基本概念。4) 掌握將E-R圖轉化成關系表的基本技巧。2. 實驗內(nèi)容1) 根據(jù)需求確定實體,屬性和聯(lián)系。2) 將實體,屬性和聯(lián)系轉化為E-R圖。3) 將E-R圖轉化為表。3. 實驗步驟1) 設計能夠表示出班級與學生關系的數(shù)據(jù)庫。確定班級實體和學生實體的屬性。確定班級和學生之間的聯(lián)系,給聯(lián)系命名并指出聯(lián)系的類型。確定聯(lián)系本身的屬性。畫出
2、班級與學生關系的E-R圖。將E-R圖轉化為關系模式,寫出各關系模式并標明各自的主碼或外碼。2) 設計能夠表示出顧客與商品關系的數(shù)據(jù)庫。確定顧客實體和商品實體的屬性。確定顧客和商品之間的聯(lián)系,給聯(lián)系命名并指出聯(lián)系的類型。確定聯(lián)系本身的屬性。畫出顧客與商品關系的E-R圖。將E-R圖轉化為關系模式,寫出表的關系模式并標明各自的主碼或外碼。3) 設計能夠表示學校與校長關系的數(shù)據(jù)庫。確定學校實體和校長實體的屬性。確定學校和校長之間的聯(lián)系,給聯(lián)系命名并指出聯(lián)系的類型。確定聯(lián)系本身的屬性。畫出學校與校長關系的E-R圖。將E-R圖轉化為關系模式,寫出表的關系模式并標明各自的主碼或外碼。4) 設計能夠表示出房地
3、產(chǎn)交易中客戶,業(yè)務員和合同三者之間關系的數(shù)據(jù)庫。 確定客戶實體,業(yè)務員實體和合同實體的屬性。確定客戶,業(yè)務員和合同三者之間的聯(lián)系,給聯(lián)系命名并指出聯(lián)系的類型。確定聯(lián)系本身的屬性。畫出客戶,業(yè)務員和合同三者關系E-R圖。將E-R圖轉化為關系模式,寫出表的關系模式并標明各自的主碼或外碼。5) 學生之間相互交流各自設計的數(shù)據(jù)庫。實驗二 確定表中的關鍵字1. 實驗目的1) 正確理解候選關鍵字,主關鍵字,組合關鍵字,外關鍵字的基本概念。2) 能夠正確判斷給定的表中各種類型的關鍵字。3) 在設計數(shù)據(jù)庫時能正確指定各種類型的關鍵字,知道如何實施數(shù)據(jù)完整性。2. 實驗內(nèi)容1) 復習候選關鍵字,主關鍵字,外關鍵
4、字,組合關鍵字以及數(shù)據(jù)完整性的基本概念。2) 在給出的部門表和員工表中能正確標識出各種類型的關鍵字。3. 實驗步驟1) 寫出候選關鍵字,主關鍵字,組合關鍵字,外關鍵字,實體完整性,域完整性,參照完整性的定義。已知部門表和員工表分別見表2-1和表2-2 表2-1部門表部門代碼部門名負責人地點0001生產(chǎn)部李華江浙江杭州0002銷售部張麗浙江寧波0003市場部王欣浙江溫州 表2-2員工表員工代碼姓名家庭住址聯(lián)系電話郵政編碼部門代碼200001王華杭州869609863100060001200002李想富陽854387693100100003200003張麗杭州6789354231001700022
5、00004李華江蕭山8284987331010100012) 確定部門表和員工表中的候選關鍵字,并陳述理由。3) 選擇部門表和員工表的關鍵字。4) 在部門表和員工表的結構中標注主關鍵字。5) 在員工表中確定可能的組合關鍵字,并陳述理由。6) 確定在部門表和員工表中共有的屬性。7) 指出哪個表中的屬性是外關鍵字。8) 確定哪個表是主表,哪個表是從表。9) 部門表和員工表是如何通過關鍵字實施數(shù)據(jù)完整性的。實驗三 關系規(guī)范化1. 實驗目的1) 了解函數(shù)依賴的基本概念。2) 能正確判斷某一關系是屬于第幾范式。3) 掌握規(guī)范化范式的方法。2. 實驗內(nèi)容1) 復習函數(shù)依賴,數(shù)據(jù)規(guī)范化,范式的基本概念以及各
6、級范式的判別標準。2) 判斷給定的表滿足哪級范式的條件。3) 將給定的表轉換成滿足特定等級范式條件的表。3. 實驗步驟1) 寫出函數(shù)依賴,數(shù)據(jù)規(guī)范化,范式的定義以及各級范式的判別標準。2) 有表3-1所示的項目表1,判斷其是否滿足第一范式的條件,并說明理由。表3-1 項目表1項目代碼職員代碼部門累計工時間P27E101系統(tǒng)集成部90P51101P2060P27E305銷售部109P2298P51E508行政辦公室NULLP27723) 有表3-2所示的項目表2,判斷其是否滿足第二范式的條件,并說明理由。 表3-2 項目表2項目代號職員代碼部門累計工作時間P27E101系統(tǒng)集成部90P27E30
7、5財務部10P51E508行政辦公室NULLP51E101系統(tǒng)集成部101P20E101系統(tǒng)集成部60P27E508行政辦公室724) 有表3-3所示的職員表,判斷其是否滿足第三范式的條件,并說明理由。 表3-3 職員表職員代碼部門部門負責人代碼E101系統(tǒng)集成部E901E305財務部E909E402銷售部E909E508行政辦公室E908E607財務部E909E608財務部E9095) 有表3-4所示的項目表3,判斷其是否滿足第三范式的條件,并說明理由。 表3-4 項目表3項目代碼職員代碼職員姓名累計工作時間P2E1李華玉48P5E2陳家偉100P6E3張勤15P3E4謝成權2505P5E4
8、謝成權75P5E1李華玉406) 將項目表1轉換成滿足第一范式條件的表。7) 將項目表2轉化成滿足第二范式條件的表。8) 將職員表轉換成滿足第三范式條件的表。9) 將項目表3轉換成滿足BCNF條件的表。10) 非規(guī)范化數(shù)據(jù)帶來的不利影響是什么?實驗四 創(chuàng)建SQL Server 2000數(shù)據(jù)庫和表1. 實驗的目的1) 熟悉企業(yè)管理器環(huán)境。2) 掌握創(chuàng)建數(shù)據(jù)庫和表的操作。2. 實驗內(nèi)容1) 熟悉SQL Server 2000 企業(yè)管理器環(huán)境。2) 創(chuàng)建XSCJ數(shù)據(jù)庫。3) 在XSCJ數(shù)據(jù)庫中創(chuàng)建學生情況表XSQK,課程表KC,學生成績表XS_KC。4) 在XSQK、KC、XS_KC表中輸入數(shù)據(jù)。3
9、. 實驗步驟1) 啟動SQL Server企業(yè)管理器,打開“SQL Server Enterprise Mananger”窗口,并在左邊的目錄樹結構中選擇“數(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所示的表結構增
10、加新列。 表4-1 學生情況表XSQK的結構列名數(shù)據(jù)類型長度是否允許為空值默認值說明學號Char6N主鍵姓名Char8N性別Bit1N男1,女0出生日期smalldatetime4N專業(yè)名Char10N所在系Char10N聯(lián)系電話char11Y7) 點擊快捷工具欄上的快捷按鈕,在彈出的“選擇名稱”對話框中輸入表名XSQK,然后單擊“確定”按鈕,關閉表編輯器窗口,完成新表的創(chuàng)建。8) 打開“表”對象,在“SQL Server Enterprise Manager”窗口的右邊窗口中選擇剛才創(chuàng)建的“XSQK”表。9) 選擇“操作”菜單中的“打開表”子菜單下的“返回所有行”命令,打開表的數(shù)據(jù)記錄窗口。
11、10) 輸入的學生情況數(shù)據(jù)記錄見表4-2。學號姓名性別出生日期專業(yè)所在系聯(lián)系電話020101楊穎01980-7-20計算機應用計算機88297147020102方露露01981-1-15計算機應用計算機88297147020103俞奇軍11980-2-20信息管理計算機88297151020104胡國強11980-11-7信息管理計算機88297151020105薛冰11980-7-29水利工程水利系88297152020201秦盈飛01981-3-10電子商務經(jīng)濟系88297161020202董含靜01980-9-25電子商務經(jīng)濟系88297062020203陳偉11980-8-7電子商務經(jīng)
12、濟系88297171020204陳新江11980-7-20房建水利系88297171 表4-2 學生情況記錄11) 同理建課程表KC,表的結構見表4-3所示,表的內(nèi)容見表4-4所示。表4-3 課程表KC的結構列名數(shù)據(jù)類型長度是否允許為空值默認值說明課程號Char3N主鍵課程名Char20N教師Char10開課學期Tinyint1只能1-6學時Tinyint160學分Tinyint1N 表4-4 課程表記錄課程號課程名教師開課學期學時學分101計算機原理陳紅2453102計算方法王頤3453103操作系統(tǒng)徐格2604104數(shù)據(jù)庫原理及應用應對剛3755105網(wǎng)絡基礎吳江江4453106高等數(shù)學孫
13、中文1906107英語陳剛1906108VB程序設計趙紅韋3705 12) 同理建成績表XS_KC,表的結構見表4-5所示,表的內(nèi)容見表4-6所示。表4-5 成績表XS_KC的結構列名數(shù)據(jù)類型長度是否允許為空值默認值說明學號Char6N外鍵課程號Char3N外鍵成績Tinyint10-100之間表4-6 成績表XS_KC的記錄學號課程號成績02010110185020101102870201011078802010210158020102102630201041077602020210355020202108800202031035702020410371實驗五 查詢數(shù)據(jù)庫1實驗目的1) 熟悉
14、SQL Server 2000查詢分析器環(huán)境。2) 掌握基本的SELECT查詢及其相關子句的使用。3) 掌握復雜的SELECT查詢,如多表查詢、子查詢、連接和聯(lián)合查詢。2實驗內(nèi)容1) 啟動SQL Server 2000 查詢分析器環(huán)境。2) 涉及多表的簡單查詢。3) 涉及多表的復雜查詢。3. 實驗步驟1) 啟動SQL Server查詢分析器,打開“SQL查詢分析器”窗口。2) 在“SQL查詢分析器”窗口中選擇要操作的數(shù)據(jù)庫,如“XSCJ”數(shù)據(jù)庫。3) 在KC表中查詢學分低于3的課程信息,并按課程號升序排列。 在查詢命令窗口中輸入以下SQL查詢命令并執(zhí)行: SELECT * FROM KC WH
15、ERE KC.學分<3 ORDER BY 課程號4) 在XS_KC表中按學號分組匯總學生的平均分,并按平均分的降序排列。SELECT 學號,平均分=AVG(成績) FROM XS_KC GROUP BY 學號 ORDER BY 平均分 DESC 5) 在XS_KC表中查詢選修了3門以上課程的學生學號。SELECT 學號 FROM XS_KC GROUP BY 學號HAVING COUNT(*)>36) 按學號對不及格的成績記錄進行明細匯總。SELECT 學號,課程號,成績 FROM XS_KCWHERE 成績<60ORDER BY 學號COMPUTE COUNT(成績)BY
16、學號7) 分別用子查詢和連接查詢,求107號課程不及格的學生信息。用子查詢:SELECT 學號,姓名,聯(lián)系電話 FROM XSQKWHERE 學號 IN( SELECT 學號 FROM XS_KC WHERE 課程號=107AND 成績<60)用連接查詢:SELECT 學號,姓名,聯(lián)系電話 FROM XSQK JOIN XS_KC ON XSQK.學號=XS_KC.學號WHERE課程號=107AND 成績<608) 用連接查詢在XSQK表中查詢住在同一寢室的學生,即其聯(lián)系電話相同SELECT A.學號,A.姓名,A.聯(lián)系電話 FROM XSQK A JOIN XSQK BON A.
17、聯(lián)系電話=B.聯(lián)系電話 WHERE A.學號!=B.學號請自已完成以下的查詢:9) 查詢XSQK表中所有的系名。10) 查詢有多少同學選修了課程。11) 查詢有多少同學沒有選課。12) 查詢與楊穎同一個系的同學姓名。13) 查詢選修了課程的學生的姓名、課程名與成績。14) 統(tǒng)計每門課程的選課人數(shù)和最高分。15) 統(tǒng)計每個學生的選課門數(shù)和考試總成績,并按選課門數(shù)的降序排列。實驗六 創(chuàng)建和使用視圖1實驗目的1) 掌握視圖的創(chuàng)建、修改和刪除。2) 掌握使用視圖來訪問數(shù)據(jù)。2實驗內(nèi)容1) 創(chuàng)建一個簡單的視圖,查詢101號課程不及格的學生信息。2) 修改簡單視圖,查詢107號課程成績介于70-90的學生
18、信息。3) 使用視圖訪問數(shù)據(jù)。4) 刪除所創(chuàng)建的視圖。3實驗步驟1) 啟動SQL Server企業(yè)管理器,打開“SQL Server Enterprise Manager”窗口。2) 選擇要創(chuàng)建視圖的數(shù)據(jù)庫文件夾,如“XSCJ”文件夾,并在右邊的對象窗口中選擇其中的“視圖”對象。3) 選擇“操作”菜單中的“新建視圖”命令,打開SQL Server的視圖設計窗口。4) 在“數(shù)據(jù)源關系圖窗口”中單擊鼠標右鍵,打開“添加表”窗口,添加XSQK表和XS_KC表。5) 選擇XSQK表的學號和姓名列,選擇XS_KC表的課程號和成績列,作為視圖的顯示列。6) 設置學號列的排序類型為升序。7) 設置查詢條件:
19、先在課程號行的“準則”列設置條件為“=101”,然后在成績行的“準則”列設置條件為“<60”。8) 點擊快捷工具欄上的快捷按鈕,在彈出的“另存為”對話框中輸入視圖名,如“v_101不及格”,然后單擊“確定”按鈕,關閉視圖設計窗口,完成視圖的創(chuàng)建。9) 在“v_101不及格”視圖上單擊鼠標右鍵,在彈出的快捷菜單中選擇“設計視圖”命令,修改視圖定義。10) 添加數(shù)據(jù)源KC表,以顯示107號課程的課程名稱。打開“添加表”窗口,選擇“KC” 表,系統(tǒng)自動為KC表和XS_KC表建立基于課程號的內(nèi)連接。11) 選擇KC表中的課程名列。12) 添加查詢條件:修改課程號行中“準則”列的條件為“=107”
20、;修改成績行中“準則”列的條件為“>=70”,并復制該行,去掉“輸出”列中的復選,并修改“準則”列的條件為“<=90”。13) 點擊快捷工具欄上的快捷按鈕,關閉視圖設計窗口,保存對視圖的修改。請自已創(chuàng)建以下視圖:14) 創(chuàng)建一個簡單視圖,查詢“計算機系”學生的信息。15) 創(chuàng)建一個簡單視圖,統(tǒng)計每門課程的選課人數(shù)和最高分。16) 創(chuàng)建一個復雜視圖,查詢與“俞奇軍”住在同一寢室的學生信息,即其聯(lián)系電話相同。17) 創(chuàng)建一個復雜視圖,查詢選修了課程的同學的姓名,課程名及成績。實驗七 創(chuàng)建和使用索引1實驗目的1) 熟悉SQL Server 2000 索引管理器。2) 掌握索引的創(chuàng)建和使用
21、。3) 掌握對索引的優(yōu)化操作。2實驗要求1) 使用索引管理器為XS-KC表創(chuàng)建索引IX-XS-KC。2) 使用強制索引查詢數(shù)據(jù)。3) 用索引優(yōu)化向導優(yōu)化索引。3實驗內(nèi)容1) 用索引管理器創(chuàng)建XS_KC表的索引IX_XS_KC。選擇要創(chuàng)建索引的數(shù)據(jù)庫文件夾,如“XSCJ”文件夾,并在右邊的對象窗口中選擇并打開其中的“表”對象。選擇所要創(chuàng)建索引的表,如“XS_KC”表,并從“操作”菜單中選擇“所有任務”子菜單下的“管理索引”命令,打開SQL Server 的索引管理器窗口。單擊其中的“新建”按鈕,創(chuàng)建新的索引,并為其設置相應的屬性。為XS_KC 表創(chuàng)建一個基于“課程號”列和“成績”列的索引IX_X
22、S_KC,其中課程號列按升序排列,成績列按降序排列。首先,單擊“新建”按鈕,此時系統(tǒng)打開“新建索引”口,在其中的“列名”列表框中選擇“課程號”項。再選擇“成績”項,并選中其后的“排列次序(DESC)”項,使成績列按降序排列。接著,選擇“填充因子”項,其值保留系統(tǒng)默認的80,并選中“填充索引”選項,使索引中間頁具有與葉級頁相同的填充程度。最后,將索引名設置為IX_XS_KC。單擊“確定”按鈕,完成新索引的創(chuàng)建。回到索引管理器窗口。2) 強制使用剛才創(chuàng)建的索引查詢數(shù)據(jù)。啟動SQL Server查詢分析器,打開“SQL 查詢分析器”窗口,并在其右上腳的下拉框中選擇要操作的“XSCJ”數(shù)據(jù)庫。強制使用
23、“IX_XS_KC索引查詢所有課程的及格成績記錄。在查詢命令窗口中輸入以下SQL查詢命令并執(zhí)行:SELECT 學號 ,課程表, 成績FROM XS_KCWITH (INDEX (IX_XS_KC) )WHERE 成績>=60觀察一下顯示出來的數(shù)據(jù)是否有序3) 使用索引優(yōu)化向導優(yōu)化索引。索引優(yōu)化向導可以根據(jù)給定的工作負荷,通過使用查詢優(yōu)化器分析該工作負荷的查詢。此時為數(shù)據(jù)庫推薦最佳索引組合,而為了記錄工作負荷,必須使用SQL事件探查創(chuàng)建一個跟蹤記錄工作負荷。啟動SQL Server事件探查器,打開“SQL事件探查”窗口。選擇“文件“菜單中”新建“子菜單下的”跟蹤“命令”打開“跟蹤屬性”對話
24、框,新建一個跟蹤。設置跟蹤名為“INDEX_TRACE”,把跟蹤保存為負荷文件“INDEX_TRACE”。然后單擊運行按紐開始跟蹤。切換到SQL查詢分析器窗口,在其中的查詢命令中輸入以下SELECT查詢語句: SELECT A.學號,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.學號=C.學號 JOIN KC D ON D.課程號=C.課程號WHERE A.姓名='俞奇軍' and B.姓名!='俞奇軍'切換回SQL事件探查起窗口,此時在窗口中列出了
25、剛剛執(zhí)行的查詢語句的跟蹤信息。單擊快捷工具欄的快捷鍵按鈕暫停跟蹤。其中,注意列的含義如下:1CPU列:表示查詢所占用的CPU時間,單位為毫秒。2Duration列:表示查詢執(zhí)行的時間 ,單位為毫秒。3Reads列:表示查詢所引起服務器執(zhí)行的物理磁盤讀取次數(shù)。4Writes列:表示查詢所引起服務器執(zhí)行的物理磁盤寫入次數(shù)。選擇“工具”菜單中的“索引優(yōu)化向導”命令,打開“索引優(yōu)化向導”對話框。開始優(yōu)化索引。切換到SQL事件探查窗口,然后點擊快捷工具欄上的快捷按鈕繼續(xù)跟蹤。切換到SQL查詢分析器窗口,再次執(zhí)行剛才的SELECT查詢語句。切換回SQL事件探查起窗口,此時在窗口中又列出了優(yōu)化索引執(zhí)行同樣的
26、查詢語句的跟蹤信息。我們可以看到,優(yōu)化索引后,讀盤次數(shù)減少了,執(zhí)行時間變短了。比較圖中兩次查詢的執(zhí)行情況,很顯然,經(jīng)過索引優(yōu)化后,查詢性能有了很大的提高。如果全換成大型表,優(yōu)化效果將更加明顯。單擊快捷工具欄上的快捷按鈕停止跟蹤,并關閉“SQL事件探查窗口”。實驗八 創(chuàng)建并使用約束和默認值對象1. 實驗目的1) 掌握約束的定義和刪除操作。2) 掌握默認值對象的定義和刪除。2實驗內(nèi)容1) 使用命令刪除XSQK表中性別的約束,然后再創(chuàng)建。2) 使用界面方式創(chuàng)建默認值對象,并綁定到列,然后再刪除。3實驗步驟1)刪除并重建XSQK表中性別的約束。打開“SQL 查詢分析器”窗口,選擇要操作的數(shù)據(jù)庫,如“X
27、SCJ”數(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)定義新的默認值對象。啟動SQL Server企業(yè)管理器,打開“SQL Server Enterprise Manager”窗口。選擇要創(chuàng)建默認值對象的數(shù)據(jù)庫文件夾,如“XSCJ”文件夾,并在
28、右邊的對象窗口中選擇其中的“默認”對象。選擇“操作”菜單中的“新建默認”命令,打開“默認屬性”對話框,并輸入名稱“DFO_出生日期”和值 1980-1-1注意:1980-1-1前后有單引號()括起來,表示其為日期類型。單擊“確定”按鈕,完成默認值對象的定義。3)將默認值對象綁定到XSQK表的出生日期列。打開“默認”對象,并選中剛才定義的默認值對象DFO_出生日期。選擇“操作”菜單中的“屬性”命令,打開“默認屬性”對話框。單擊“綁定列”按鈕,打開“將默認值綁定到列”的對話框。單擊“確定”按鈕,完成到列的綁定。4)使用值對象為新插入行的出生日期列設置值。在對象窗口中選擇并打開其中的“表”對象,選中
29、XSQK表。選擇“操作”菜單中“打開表”子菜單下的“返回所有行”命令,打開表的數(shù)據(jù)記錄窗口。在表中插入一行新記錄,其中出生日期列不填,其值由剛才綁定的默認值對象設定。如果在設置默認值對象屬性時,其值前后沒有加單引號(),那么在插入出生日期列的默認值時,該值就不會是“1980-1-1”了。關閉數(shù)據(jù)記錄窗口。5)取消綁定并刪除默認值對象。選擇并打開“默認”對象,選中“DFO_出生日期”默認對象。選擇“操作”菜單中的“屬性”命令,打開“默認屬性”對話框。單擊“綁定列”按鈕,打開“將默認值綁定到列”對話框。單擊“確定”按鈕,取消到列的綁定,關閉“默認屬性”對話框。選擇“操作”菜單中的“刪除”命令,打開
30、“除去對象”對話框。單擊“全部除去”按鈕,確定刪除。實驗九 實現(xiàn)數(shù)據(jù)完整性1實驗目的1) 掌握域完整性的實現(xiàn)方法。2) 掌握實體完整性的實現(xiàn)方法。3) 掌握參照完整性的方法。2實驗內(nèi)容1) 使用界面方式創(chuàng)建規(guī)則對象,并綁定到列,實現(xiàn)域完整性。2) 為表添加一個標識列,實現(xiàn)實體完整性。3) 為兩表建立關聯(lián),實現(xiàn)參照完整性。3實驗步驟1) 實現(xiàn)域完整性啟動SQL Server企業(yè)管理器,打開“SQL Server Enterprise Manager”窗口。選擇要創(chuàng)建規(guī)則對象的數(shù)據(jù)庫文件夾,并在右邊的對象窗口中選擇其中的“規(guī)則”對象。選擇“操作”菜單中的“新建規(guī)則”命令,打開“規(guī)則屬性”對話框。設
31、置形如“(區(qū)號)電話號碼”的聯(lián)系電話格式檢查規(guī)則,單擊“確定”按鈕,完成規(guī)則對象的定義。打開“規(guī)則”對象,并選中剛才定義的規(guī)則對象RO_聯(lián)系電話格式。選擇“操作”菜單中的“屬性”命令,打開“規(guī)則屬性”對話框。單擊“綁定列”按鈕,打開“將規(guī)則綁定到列”對話框,完成到列的綁定,關閉“規(guī)則屬性”對話框。在對象窗口中選擇并打開其中的“表”對象,選中XSQK表并打開。在表中分別插入兩行新記錄,其中一行的聯(lián)系電話格式為指定的格式,另一行的聯(lián)系電話格式為非法格式。當插入第一行時,系統(tǒng)成功地插入了新數(shù)據(jù)行,但無信息返回;而在插入第二行時系統(tǒng)提示錯誤信息,拒絕接受非法格式的聯(lián)系電話,從而保證了域完整性。單擊“確
32、定”按鈕,取消插入,并關閉表的數(shù)據(jù)記錄窗口。2)實現(xiàn)實體完整性在對象窗口中選擇并打開其中的“表”對象,選中KC表。選擇“操作”菜單中的“設計表”命令,打開表編輯器窗口。添加一個標識列,種子值為1,遞增量也為1。點擊快捷工具攔上的快捷按鈕,完成標識列的添加,然后關閉編輯窗口。選中KC表并打開表的數(shù)據(jù)記錄窗口。可以看到,系統(tǒng)自動為每行的標識列填充了值,并從1開始,依次遞增,這樣,表中的每一數(shù)據(jù)行都可以由標識列唯一標識,實現(xiàn)了實體完整性。關閉表的數(shù)據(jù)記錄窗口。3)實現(xiàn)參照完整性在對象窗口中選擇打開其中的“表”對象,選中XS_KC表。先擇“操作”菜單中的“設計表”命令,打開表編輯器窗口。點擊快捷工具攔
33、上的快捷按鈕,打開“屬性”對話框的“關系”選項卡。為XSQK表和XS_KC表建立基于學號列的關系。選中XSQK表,并選擇“操作”菜單中“打開表”子菜單下的“返回所有行”命令,打開表的數(shù)據(jù)記錄窗口。將表中的值為“020101”的學號都修改為“020111”。由于XSQK表中不存在值為“020111”的學號,所以系統(tǒng)提示錯誤信息,拒絕接受不存在的學號,從而保證了參照完整性。單擊“確定”按鈕,取消修改,并關閉表的數(shù)據(jù)記錄窗口。實驗十 實現(xiàn)存儲過程1實驗目的1) 掌握用戶存儲過程的創(chuàng)建操作。2) 掌握用戶存儲過程執(zhí)行操作。3) 掌握用戶存儲過程的刪除操作。2實驗內(nèi)容1) 創(chuàng)建帶輸入?yún)?shù)的存儲過程和嵌套
34、調用的存儲過程。2) 執(zhí)行所創(chuàng)建的存儲過程。3) 刪除所有新創(chuàng)建的存儲過程。3實驗步驟1) 創(chuàng)建帶輸入?yún)?shù)的存儲過程。啟動SQL Server查詢分析器,打開“SQL查詢分析器”窗口。選擇要操作的數(shù)據(jù)庫,如“XSCJ”數(shù)據(jù)庫。在查詢命令窗口中輸入創(chuàng)建存儲過程的CREATE PROCEDURE語句。這里,我們創(chuàng)建一個帶輸入?yún)?shù)的存儲過程proc_XSQK1,其中的輸入?yún)?shù)用于接收課程號,默認值為“101”,然后在XS_KC表中查詢該課成績不及格的學生學號,接著在XSQK表中查找這些學生的基本信息,包括學號、姓名、性別和聯(lián)系電話信息,最后輸出。點擊快捷工具欄上的快捷銨鈕,對輸入的CREATE PR
35、OCEDURE 語句進行語法分析。如果有語法錯誤,則進行修改,直到?jīng)]有語法錯誤為止。點擊快捷工具攔上的快捷按鈕,執(zhí)行CREATE PROCEDURE語句。2) 創(chuàng)建帶嵌套調用的存儲過程。在查詢命令窗口中輸入創(chuàng)建存儲過程的CREATE PROCEDURE語句。這里,我們創(chuàng)建一個帶嵌套調用的存儲過程proc_XSQK2。該存儲過程也有一個輸入?yún)?shù),它用于接收授課教師姓名,默認值為“王頤”,然后嵌套調用存儲過程proc_課程號,輸出其所授課程的課程號,接著用此課程號來完成上一部分實驗中所創(chuàng)建的存儲過程proc_XSQK1的功能。相應的CREATE PROCEDURE語句如下:DECLARE 課程號c
36、har(3)-嵌套調用存儲過程proc_課程號EXECUTE proc_課程號 授課老師,課程號 OUTPUT-查詢指定課程成績不及格的學生的基本信息SELECT XSQK.學號,XSQK.姓名,XSQK.性別,XSQK.聯(lián)系電話FROM XSQK ,XS_KCWHERE XS_KC.課程號=課程號AND XS_KC.成績<60AND XSQK.學號=XS_KC.學號PROC_課程號的存儲過程如下:CREATE PROCEDURE PROC_課程號教師 CHAR(10)=王頤,課程號碼 CHAR(3) OUTPUTASSELECT 課程號碼=課程號 FROM KCWHERE KC.教師=
37、教師 點擊快捷工具欄上的快捷按鈕,對輸入的CREATE PROCEDURE 語句進行語法分析。如果有語法錯誤,則進行修改,直到?jīng)]有語法錯誤為止。點擊快捷工具欄上的快捷按鈕,執(zhí)行CREATE PROCEDURE語句。3)執(zhí)行所創(chuàng)建的二個存儲過程在查詢命令窗口中輸入以下EXECUTE語句,執(zhí)行存儲過程proc_XSQK1。 EXECUTE proc_XSQK1 101點擊快捷工具攔上的快捷按鈕,執(zhí)行存儲過程。在查詢命令窗口中輸入以下EXECUTE語句,執(zhí)行存儲過程proc_XSQK2。 EXECUTE proc_XSQK2 DEFAULT點擊快捷工具攔上的快捷按鈕,執(zhí)行存儲過程。3) 刪除新建的存
38、儲過程在查詢命令的窗口中輸入DROP PROCEDURE語句和所有新創(chuàng)建的存儲過程名。 DROP PROCEDURE Proc_XSQK1,proc_XSQK2點擊快捷工具上的快捷按鈕,刪除存儲過程。實驗十一 實現(xiàn)觸發(fā)器1. 實驗目的1) 掌握觸發(fā)器的創(chuàng)建、修改和刪除操作。2) 掌握觸發(fā)器的觸發(fā)執(zhí)行。3) 掌握觸發(fā)器與約束的不同。2. 實驗要求1) 創(chuàng)建觸發(fā)器。2) 觸發(fā)器執(zhí)行觸發(fā)器。3) 驗證約束與觸發(fā)器的不同作用期。4) 刪除新創(chuàng)建的觸發(fā)器。3. 實驗內(nèi)容1) 創(chuàng)建觸發(fā)器啟動SQL Server 查詢分析器,打開“SQL查詢分析器”窗口,選擇要操作的數(shù)據(jù)庫,如“XSCJ”數(shù)據(jù)庫。在查詢命令
39、窗口中輸入以下CREATE TRIGGER語句,創(chuàng)建觸發(fā)器。為XS_KC表創(chuàng)建一個基于UPDATE操作和DELETE操作的復合型觸發(fā)器,當修改了該表中的成績信息或者刪除了成績記錄時,觸發(fā)器被激活生效,顯示相關的操作信息。-創(chuàng)建觸發(fā)器CREATE TRIGGER tri_UPDATE_DELETE_XS_KCON XS_KCFOR UPDATE,DELETEAS-檢測成績列表是否被更新IF UPDATE(成績)BEGIN-顯示學號、課程號、原成績和新成績信息SELECT INSERTED.課程號,DELETED.成績AS原成績,INSERTED.成績AS原成績 FROM DELETED ,INS
40、ERTEDWHERE DELETED.學號=INSERTED.學號END-檢測是更新還是刪除操作ELSE IF COLUMNS_UPDATED( )=0BEGIN-顯示被刪除的學號、課程號和成績信號SELECT 被刪除的學號=DELETED.學號,DELETED.課程號,DELETED.成績AS原成績FROM DELETEDENDELSE-返回提示信息PRINT 更新了非成績列!點擊快捷工具欄上的快捷按鈕,完成觸發(fā)器的創(chuàng)建。2) 觸發(fā)觸發(fā)器在查詢命令窗口中輸入以下UPDATE XS_KC語句,修改成績列,激發(fā)觸發(fā)器。UPDATE XS_KCSET成績=成績+5WHERE 課程號=101在查詢命
41、令窗口中輸入以下UPDATE XS_KC語句修改非成績列,激發(fā)觸發(fā)器。UPDATE XS_KCSET 課程號=113WHERE 課程號=103在查詢命令窗口中輸入以下DELETE XS_KC 語句,刪除成績記錄,激發(fā)觸發(fā)器。DELETE XS_KC WHERE 課程號=1023) 比較約束與觸發(fā)器的不同作用期在查詢命令窗口中輸入并執(zhí)行以下ALTER TABLE 語句,為XS_KC表添加一個約束,使得成績只能大于等于0且小于等于100。ALTER TABLE XS_KCADD CONSTRAINT CK_成績CHECK(成績>=0 AND成績<=100)在查詢命令窗口中輸入并執(zhí)行以下
42、UPDATE XS_KC語句,查看執(zhí)行結果。UPDATE XS_KC SET成績=120WHERE 課程號=108在查詢命令窗口中輸入執(zhí)行以下UPDATE XS_KC 語句,查看執(zhí)行結果。UPDATE XS_KCSET成績=90WHERE 課程號=108從這部分實驗中,我們可以看到,約束優(yōu)先于觸發(fā)器起作用,它在更新前就生效,以對要更新的值進行規(guī)則檢查。當檢查到與現(xiàn)有規(guī)則沖突時,系統(tǒng)給出錯誤消息,并取消更新操作。如果檢查沒有問題,更新被執(zhí)行,當執(zhí)行完畢后,再激活觸發(fā)器。4) 刪除新創(chuàng)建的觸發(fā)器在查詢命令窗口中輸入DROP TRIGGER 語句,刪除新創(chuàng)建的觸發(fā)器。DROP TRIGGER tri
43、_UPDATE_DELETE_XS_KC點擊快捷工具欄上的快捷按鈕,刪除觸發(fā)器。*實驗十二 實現(xiàn)事務和批1. 實驗目的1) 了解事務的ACID屬性。2) 掌握事務和批的工作原理。3) 了解事務處理與批處理。2. 實驗內(nèi)容1) 事務處理與批處理的關系。2) 如何把一個事務處理封閉在單個的批處理中。3) 用條件判斷結構來實現(xiàn)。3. 實驗步驟1) 把事務處理分散寫進多個批處理通常不是一個好的設計思想。鎖定問題會變得非常復雜,會帶來可怕的性能干擾。2) 通常情況下,應該把一個事務處理封閉在單個的批處理中。下面還有一個更好的方法來編寫這段程序:BEGIN TRANSACTINONINSERT PUBLI
44、SHERS(PUB_ID,PUB_NAME,CITY,STATE)VALUES(“1111”,“JOE AND MARYS BOOKS”,“NOTRTHERN 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 FAILEDROLL
45、ING BACK TRANSACTION ROLLBACK TRANSACTIONEND這個例子中最重要的一點在于事務處理屬于一個簡單的批處理了。*實驗十三 檢測死鎖1實驗目的1) 了解死鎖的類型和其兼容性。2) 了解死鎖發(fā)生的情況。3) 了解可鎖定的資源。4) 了解死鎖的一般處理過程。2實驗內(nèi)容1) 鎖與并行查詢執(zhí)行相關的資源。2) 如何查看進程信息。3) 如何查看鎖/對象信息。4) 如何處理死鎖。3實驗步驟1) 構造死鎖,讓鎖現(xiàn)象發(fā)生。先構造一個可能造成鎖表的代碼如下:BEGIN TRANSACTIONINSERT publishers (pub_id,pub_name,city,stat
46、e)VALUES(“1111”,“Joe and Marys Books”,“Notrthern Plains”,“IA”)IF ERROR=0BEGIN PRINT Publisher insert failedrolling back transaction ROLLBACK TRANSACTIONEND下面的代碼對同一個表執(zhí)行簡單的查詢操作,具體代碼如下:select * from titles;2)處理死鎖的一般過程或步驟。Sp_who:提供關于當前Microsoft SQL Server用戶和進程信息。如:列出全部當前進程。在SQL查詢分析器的命令窗口中輸入sp_whosp_lock
47、:報告有關鎖的信息在SQL查詢分析器的命令窗口中輸入sp_lock spid1=從sp_who中查出的進程標識號在企業(yè)管理器中打開“管理”文件夾下的當前活動,查看進程信息。實驗十四 實現(xiàn)安全管理1實驗目的1) 了解SQL Server 2000 的身份驗證方法。2) 掌握合法登錄帳戶的設置。3) 掌握數(shù)據(jù)庫用戶的設置。4) 掌握數(shù)據(jù)庫角色的設置。5) 掌握用戶的權限管理方法。2實驗內(nèi)容1) Windows和SQL Server2000身份驗證的比較。2) 設置登錄帳戶。3) 設置數(shù)據(jù)庫用戶。4) 設置數(shù)據(jù)庫角色。5) 設置數(shù)據(jù)庫用戶權限。3實驗步驟1) 使用企業(yè)管理器選擇和設置身份驗證模式 打
48、開企業(yè)管理器,在“樹”窗口中展開一個服務器組,然后選擇希望設置身份驗證模式的服務器。 在該服務器上單擊鼠標右鍵,在彈出的菜單中選擇命令“屬性”,打開“屬性”對話框。 在屬性對話框中選擇“安全性”選項卡,在“身份驗證”區(qū)域中選擇下列身份驗證模式之一。· SQL Server和Windows:指定用戶可以使用SQL Server身份驗證和Windows身份驗證連接到SQL Server。· 僅Windows:指定用戶只能使用Windows身份驗證連接SQL Server。 單擊“確定”按鈕,即可完成身份驗證模式的選擇和設置。 2) 使用企業(yè)管理器創(chuàng)建登錄賬戶 打開企業(yè)管理器,展
49、開希望創(chuàng)建新的登錄的服務器。 展開文件夾“安全性”,在登錄節(jié)點上單擊鼠標右鍵。 從彈出的菜單中選擇“新建登錄”,打開“新建登錄”窗口。 在“新建登錄”窗口的“常規(guī)”選項卡中進行如下配置:· 在“名稱”文本框中輸入一個SQL Server登錄的賬號名。· 選擇一種登錄模式。· 在“默認設置”區(qū)選擇連接時默認的數(shù)據(jù)庫XSCJ和語言。 在“新建登錄”窗口的“數(shù)據(jù)庫訪問”選項卡,選擇允許登錄賬戶訪問的數(shù)據(jù)庫和分配給登錄賬戶的數(shù)據(jù)庫角色。 單擊“確定”按鈕,完成登錄模式的創(chuàng)建。3) 使用企業(yè)管理器新建數(shù)據(jù)庫用戶 打開企業(yè)管理器,在樹形目錄中展開指定的數(shù)據(jù)庫節(jié)點。 選中該數(shù)據(jù)庫節(jié)點的下一級節(jié)點“用戶”,單擊鼠標右鍵,在彈出的菜單中選擇“新建數(shù)據(jù)庫用戶”。4) 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫角色 打開企業(yè)管理器,在樹形目錄中展開指定的數(shù)據(jù)庫節(jié)點。 選中該數(shù)據(jù)庫節(jié)點的下一級節(jié)點“角色”,單擊鼠標右鍵,在彈出的菜單中選擇“新建數(shù)據(jù)庫角色”。 在彈出的“數(shù)據(jù)庫角色屬性-新建角色”對話框中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度科技園區(qū)研發(fā)場地租賃合同范本下載3篇
- 《框架結構荷載分析》課件
- 2024簡單工程勞務合同范本
- 稅務業(yè)務知識培訓課件
- 世紀生物醫(yī)藥研發(fā)與轉讓合同(04版)
- 個人住宅抵押貸款法律協(xié)議(2024版)版
- 2024版人力資源服務合同
- 2024年03月陜西中國銀行信息科技運營中心(西安)春季校園招考筆試歷年參考題庫附帶答案詳解
- 二零二五年度餐飲行業(yè)員工福利保障合同3篇
- 2025年度新型裝配式彩鋼房拆除與改造施工合同范本4篇
- 人教版小學數(shù)學(2024)一年級下冊第一單元 認識平面圖形綜合素養(yǎng)測評 B卷(含答案)
- 企業(yè)年會攝影服務合同
- 電商運營管理制度
- 二零二五年度一手房購房協(xié)議書(共有產(chǎn)權房購房協(xié)議)3篇
- 2025年上半年上半年重慶三峽融資擔保集團股份限公司招聘6人易考易錯模擬試題(共500題)試卷后附參考答案
- 城市公共交通運營協(xié)議
- 內(nèi)燃副司機晉升司機理論知識考試題及答案
- 2024北京東城初二(上)期末語文試卷及答案
- 2024設計院與職工勞動合同書樣本
- 2024年貴州公務員考試申論試題(B卷)
- 電工高級工練習題庫(附參考答案)
評論
0/150
提交評論