太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)_第1頁(yè)
太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)_第2頁(yè)
太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)_第3頁(yè)
太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)_第4頁(yè)
太原理工大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí) 驗(yàn) 報(bào) 告課程名稱(chēng): 數(shù)據(jù)庫(kù)系統(tǒng)原理 實(shí)驗(yàn)項(xiàng)目:認(rèn)識(shí)DBMS系統(tǒng)、交互式SQL、數(shù)據(jù)完整性、用戶(hù)鑒別與數(shù)據(jù)控制實(shí)驗(yàn)地點(diǎn): 實(shí)驗(yàn)室210 專(zhuān)業(yè)班級(jí): 軟件1334 學(xué)號(hào): 學(xué)生姓名: 指導(dǎo)教師: 宋曉濤 2015年5月 8日學(xué)院名稱(chēng)軟件學(xué)院專(zhuān)業(yè)班級(jí)1334實(shí)驗(yàn)成績(jī)學(xué)生姓名學(xué)號(hào)實(shí)驗(yàn)日期2015.0課程名稱(chēng)數(shù)據(jù)管理庫(kù)系統(tǒng)概論實(shí)驗(yàn)題目認(rèn)識(shí)DBMS系統(tǒng)一、實(shí)驗(yàn)?zāi)康暮鸵?(1)通過(guò)對(duì)SQL Server 2005/2008數(shù)據(jù)庫(kù)管理系統(tǒng)的使用,了解DBMS的工作原理和系統(tǒng)構(gòu)架。 (2)熟悉SQL Server提供的管理工具 (3)熟悉使用SQL Server Management Studio創(chuàng)建數(shù)

2、據(jù)庫(kù)對(duì)象二、主要儀器設(shè)備計(jì)算機(jī):HP-6470b windows7 64 位 運(yùn)行環(huán)境: SQL Server 2008R2三、實(shí)驗(yàn)內(nèi)容及要求3.1 安裝SQL Server 1在安裝過(guò)程中記錄安裝的選擇,并且對(duì)所作的選擇進(jìn)行思考,為何要進(jìn)行這樣的配置,對(duì)今后運(yùn)行數(shù)據(jù)庫(kù)管理系統(tǒng)會(huì)有什么影響。 2理解默認(rèn)實(shí)例、命名實(shí)例的含義3了解SQL Server的身份認(rèn)證模式,初步了解SQL Server的安全性。4了解SQL Server提供的服務(wù)。5檢查SQL Server安裝是否成功。3.2 管理和使用SQL Server了解SQL Server如何通過(guò)它提供的工具對(duì)數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行管理和使用的。1、

3、啟動(dòng)、暫停和停止SQL Server學(xué)會(huì)運(yùn)用SQL Server配置管理或SQL Server Management Studio啟動(dòng)和停止SQL Server的各種服務(wù)。2、了解SQL Server的管理工具初步了解SQL Server的提供了哪些主要管理工具和它們的功能。3、學(xué)會(huì)使用SQL Server聯(lián)機(jī)叢書(shū)學(xué)會(huì)SQL Server聯(lián)機(jī)叢書(shū)查詢(xún)SQL命令語(yǔ)法格式、SQL Server數(shù)據(jù)庫(kù)的概念、術(shù)語(yǔ)等內(nèi)容。3.3 熟悉使用SQL Server Management Studio了解SQL Server Management Studio的基本用法,能熟練使用它管理數(shù)據(jù)庫(kù)服務(wù)器和數(shù)據(jù)庫(kù)對(duì)

4、象。1、可視化圖形界面的操作熟悉使用SQL Server Management Studio中的對(duì)象資源管理器,熟悉其中列出的各類(lèi)信息的含義,學(xué)會(huì)查看各種信息。2、查詢(xún)編輯器的使用熟悉使用查詢(xún)編輯器,了解如何編寫(xiě)SQL腳本,如何運(yùn)行SQL腳本。3.4創(chuàng)建SQL Server數(shù)據(jù)庫(kù)通過(guò)創(chuàng)建數(shù)據(jù)庫(kù),掌握使用SQL Server Management Studio創(chuàng)建數(shù)據(jù)庫(kù)的方法,了解SQL Server數(shù)據(jù)庫(kù)的構(gòu)成。3.1 創(chuàng)建數(shù)據(jù)庫(kù)1使用圖形界面創(chuàng)建數(shù)據(jù)庫(kù)系創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),掌握使用圖形界面創(chuàng)建數(shù)據(jù)庫(kù)的步驟,了解其中各參數(shù)的含義。2使用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)使用查詢(xún)編輯器編寫(xiě)并運(yùn)行創(chuàng)建數(shù)據(jù)庫(kù)的SQL

5、語(yǔ)句,掌握SQL語(yǔ)句的語(yǔ)法格式和主要參數(shù)的含義。3.2 了解數(shù)據(jù)庫(kù)系統(tǒng)的構(gòu)架1了解數(shù)據(jù)庫(kù)系統(tǒng)的邏輯組件:它們主要是數(shù)據(jù)庫(kù)對(duì)象,包括基本表、視圖、觸發(fā)器、存儲(chǔ)過(guò)程、約束等。今后將學(xué)習(xí)如何操作這些數(shù)據(jù)庫(kù)對(duì)象。2了解數(shù)據(jù)庫(kù)的物理組件:思考數(shù)據(jù)庫(kù)物理存儲(chǔ)的存儲(chǔ)單位是什么,數(shù)據(jù)主要以什么方式存放,如何確定數(shù)據(jù)的存放位置。3.5創(chuàng)建SQL Server數(shù)據(jù)庫(kù)中的表通過(guò)創(chuàng)建表,掌握使用SQL Server Management Studio創(chuàng)建表方法,了解SQL Server數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型,以及表中數(shù)據(jù)的維護(hù)。3.1 創(chuàng)建數(shù)據(jù)庫(kù)表1使用圖形界面創(chuàng)建表在數(shù)據(jù)庫(kù)中創(chuàng)建Student、Course和SC表,掌握

6、使用圖形界面創(chuàng)建表的方法。2掌握如何查詢(xún)表的各種信息。3了解SQL Server提供的數(shù)據(jù)類(lèi)型通過(guò)查詢(xún)聯(lián)機(jī)手冊(cè),了解SQL Server提供了哪些數(shù)據(jù)類(lèi)型,以及他們的用法。3.2 維護(hù)表中的數(shù)據(jù)使用圖形界面在Student、Course和SC輸入分別輸入若干行數(shù)據(jù),熟練掌握數(shù)據(jù)輸入、修改和刪除的方法。四、操作方法與實(shí)驗(yàn)步驟1、創(chuàng)建數(shù)據(jù)庫(kù) 選擇“新建數(shù)據(jù)庫(kù)”,進(jìn)入“新建數(shù)據(jù)庫(kù)”界面:在“數(shù)據(jù)庫(kù)名稱(chēng)”輸入框中輸入數(shù)據(jù)庫(kù)名稱(chēng):test,點(diǎn)擊“確定”,即可創(chuàng)建數(shù)據(jù)庫(kù)。展開(kāi)“數(shù)據(jù)庫(kù)”,創(chuàng)建的數(shù)據(jù)庫(kù)將顯示在列表中,如下圖中的“test”。2、創(chuàng)建表創(chuàng)建學(xué)生-課程數(shù)據(jù)庫(kù)中的三個(gè)表student、course

7、和sc。3、輸入、修改和刪除數(shù)據(jù)行4、查看數(shù)據(jù)鼠標(biāo)右擊要查看的表,在快捷菜單中選擇“選擇前1000行”五、討論、心得 遇到問(wèn)題應(yīng)該及時(shí)的問(wèn)老師,問(wèn)同學(xué),并且結(jié)合課本,做到解決,深化所學(xué)到的知識(shí),從而使自己的知識(shí)得到深化,能力得到進(jìn)步。教師簽字:學(xué)院名稱(chēng)軟件學(xué)院專(zhuān)業(yè)班級(jí)軟件1334實(shí)驗(yàn)成績(jī)學(xué)生姓名學(xué)號(hào)實(shí)驗(yàn)日期2015.課程名稱(chēng)數(shù)據(jù)庫(kù)系統(tǒng)管理實(shí)驗(yàn)題目交互式SQL一、實(shí)驗(yàn)?zāi)康暮鸵?,掌握 SELECT 語(yǔ)句基本語(yǔ)法,加深對(duì)查詢(xún)語(yǔ)句基本概念要求。2,掌握簡(jiǎn)單表的查詢(xún)。3,掌握連接查詢(xún)。4,熟悉通過(guò) SQL 對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。5, 掌握視圖的操作。二、主要儀器設(shè)備計(jì)算機(jī):HP-6470b window

8、s7 64 位 運(yùn)行環(huán)境: SQL Server 2008R2三、實(shí)驗(yàn)內(nèi)容和原理1在RDBMS 中建立一個(gè)學(xué)生-課程數(shù)據(jù)庫(kù),進(jìn)行實(shí)驗(yàn)所要求的各種操作,所有的SQL 操作均在此建立的新庫(kù)里進(jìn)行。2根據(jù)以下要求認(rèn)真進(jìn)行實(shí)驗(yàn),記錄所有的實(shí)驗(yàn)用例及執(zhí)行結(jié)果。數(shù)據(jù)定義:基本表的創(chuàng)建、修改及刪除;索引的創(chuàng)建和刪除。數(shù)據(jù)操作:完成各類(lèi)查詢(xún)操作(單表查詢(xún),連接查詢(xún),嵌套查詢(xún),集合查詢(xún));完成各類(lèi)更新操作(插入數(shù)據(jù),修改數(shù)據(jù),刪除數(shù)據(jù))。視圖的操作:視圖的定義(創(chuàng)建和刪除),查詢(xún),更新(注意更新的條件)。特別說(shuō)明:實(shí)驗(yàn)中注意特定數(shù)據(jù)庫(kù)系統(tǒng)(如SQL SERVER)的SQL 語(yǔ)句格式與SQL-3 標(biāo)準(zhǔn)的區(qū)別。四、

9、操作方法與實(shí)驗(yàn)步驟1. 數(shù)據(jù)定義創(chuàng)建學(xué)生選課數(shù)據(jù)庫(kù)ST,包括三個(gè)基本表,其中Student表保存學(xué)生基本信息,Course表保存課程信息,SC表保存學(xué)生選課信息,其結(jié)構(gòu)如下表:表1. Student表結(jié)構(gòu)列名稱(chēng)用途類(lèi)型長(zhǎng)度約束備注Sno學(xué)號(hào)字符8主鍵Sname姓名字符8Ssex性別字符2Sage年齡整型Sdept所在系字符20Sclass班級(jí)字符4表2. Course表結(jié)構(gòu)列名稱(chēng)用途類(lèi)型長(zhǎng)度約束備注Cno課程號(hào)字符4主鍵Cname課程名字符40Cpno先修課程號(hào) 字符4Ccredit學(xué)分整型表3. SC表結(jié)構(gòu)列名稱(chēng)用途類(lèi)型長(zhǎng)度約束備注Sno學(xué)號(hào)字符8外鍵Cno課程號(hào)字符4Grade成績(jī)整型2.

10、 建立基本表建立一個(gè)學(xué)生表Student:建立一個(gè)課程表Course:建立一個(gè)學(xué)生選課信息表SC:3. 數(shù)據(jù)操作一更新操作1,插入數(shù)據(jù)將如下表格中的數(shù)據(jù)分別插入到數(shù)據(jù)庫(kù)相應(yīng)的表中:表4.學(xué)生基本信息表學(xué)號(hào)姓名性別年齡所在系班級(jí)李勇男20CS1001劉晨女19CS1001王敏女18MA1002張立男19IS1003劉洋女1001趙斌男19IS1005張明明男19CS1002表5.課程信息表課程號(hào)課程名先修課程號(hào)學(xué)分1數(shù)據(jù)庫(kù)系統(tǒng)原理5642高等數(shù)學(xué)23管理信息系統(tǒng)144操作系統(tǒng)原理635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27C語(yǔ)言4表6.學(xué)生選課信息表學(xué)號(hào)課程號(hào)成績(jī)19228538819028013(1)插入

11、到Student表(2)插入到Course表(3)插入到SC表2,修改數(shù)據(jù)(1)將學(xué)生的年齡改為22歲。UPDATE student SET Sage = 22 WHERE Sno=;(2)將所有學(xué)生的年齡增加一歲。UPDATE Student SET Sage = Sage +1(3)填寫(xiě)趙斌同學(xué)的管理信息系統(tǒng)課程的成績(jī)(4)將計(jì)算機(jī)科學(xué)系全體學(xué)生的成績(jī)加5分(5)請(qǐng)自己完成如下操作a.將劉晨同學(xué)的2號(hào)課程成績(jī)修改為80b.將“”同學(xué)的學(xué)號(hào)修改為“”3,刪除數(shù)據(jù)將選課信息復(fù)制到一個(gè)臨時(shí)表tmpSC中:在tmpSC中執(zhí)行刪除操作:(1)刪除學(xué)號(hào)為的學(xué)生記錄(2)刪除學(xué)號(hào)學(xué)生的1號(hào)課程選課記錄(

12、3)刪除臨時(shí)表中學(xué)生的全部選課記錄請(qǐng)自己完成該操作。(4)刪除計(jì)算機(jī)科學(xué)系所有學(xué)生的選課記錄(5)刪除全部選課記錄(6)檢查數(shù)據(jù)是否刪除 二數(shù)據(jù)查詢(xún)操作 完成如下查詢(xún)操作:1 單表查詢(xún)(1)按指定目標(biāo)列查詢(xún)l查詢(xún)學(xué)生的詳細(xì)記錄: l查詢(xún)學(xué)生的學(xué)號(hào)、姓名和年齡 (2)目標(biāo)列包含表達(dá)式的查詢(xún)l查詢(xún)?nèi)w學(xué)生的姓名、出生年份和所有系,要求用小寫(xiě)字母表示所有系名。 (3)查詢(xún)結(jié)果集中修改列名稱(chēng)l查詢(xún)?nèi)w學(xué)生的姓名、出生年份和所有系,要求用小寫(xiě)字母表示所有系名。 (4)取消重復(fù)行l(wèi)查詢(xún)選修了計(jì)算機(jī)課程的學(xué)生學(xué)號(hào):比較ALL和DISTINCT的區(qū)別 (5)簡(jiǎn)單條件查詢(xún)l查詢(xún)計(jì)算機(jī)科學(xué)系全體學(xué)生的名單 (6)

13、按范圍查詢(xún)l查詢(xún)年齡在2023歲之間的學(xué)生的姓名、系別和年齡 (7)查詢(xún)屬性值屬于指定集合的行l(wèi)查詢(xún)信息系(IS)、數(shù)學(xué)系(MA)和計(jì)算機(jī)科學(xué)系(CS)學(xué)生的姓名和性別 (8)模糊查詢(xún)l查詢(xún)所有姓劉學(xué)生的姓名、學(xué)號(hào)和性別 (9)查詢(xún)空值l查詢(xún)?nèi)鄙俪煽?jī)的學(xué)生的學(xué)號(hào)和相應(yīng)的課程號(hào) (10)多重條件查詢(xún)l查詢(xún)計(jì)算機(jī)科學(xué)系年齡在20歲以下的學(xué)生姓名 (11)結(jié)果集排序l查詢(xún)?nèi)w學(xué)生情況,查詢(xún)結(jié)果按所在系的系號(hào)升序排列,同一系中的學(xué)生按年齡降序排列 (12)完成下列查詢(xún)l查詢(xún)學(xué)生基本信息,結(jié)果集屬性名使用漢字 l查詢(xún)信息系且年齡大于23歲同學(xué)的學(xué)號(hào)和姓名 l查詢(xún)年齡是17、18、20、23歲同學(xué)的學(xué)號(hào)、

14、姓名、年齡和所在系 l查詢(xún)年齡不在2124歲之間的學(xué)生的姓名、系別和年齡 2 分組統(tǒng)計(jì)(1)聚集函數(shù)的使用l查詢(xún)學(xué)生總?cè)藬?shù) l查詢(xún)選修了課程的學(xué)生人數(shù) l查詢(xún)最高分 (2)聚集函數(shù)作用于部分行l(wèi)統(tǒng)計(jì)2號(hào)課程的總分、均分和最高分 (3)分組統(tǒng)計(jì)l統(tǒng)計(jì)各門(mén)課程的選課人數(shù)、均分和最高分 l統(tǒng)計(jì)均分大于90的課程 (4)完成下面的查詢(xún)l統(tǒng)計(jì)每個(gè)同學(xué)的學(xué)號(hào)、選課數(shù)、平均成績(jī)和最高成績(jī) l統(tǒng)計(jì)每個(gè)班的每門(mén)課的選課人數(shù)、平均成績(jī)和最高成績(jī)3. 連接查詢(xún)(1)在WHERE中指定連接條件l查詢(xún)每個(gè)參加選課的學(xué)生信息及其選修課程的情況 l查詢(xún)每一門(mén)課的間接先修課 (2)在FROM中指定連接條件l查詢(xún)每個(gè)參加選課的

15、學(xué)生信息及其選修課程的情況(3)使用外連接查詢(xún)l查詢(xún)每個(gè)學(xué)生信息及其選修課程的情況(4)復(fù)合條件連接查詢(xún)l查詢(xún)選修2號(hào)課程且成績(jī)?cè)?0分以上的所有學(xué)生 (5)多表查詢(xún)l查詢(xún)每個(gè)學(xué)生的學(xué)號(hào)、姓名、選修的課程名及成績(jī) (6)完成下列查詢(xún)l查詢(xún)選修了2號(hào)課程的同學(xué)的學(xué)號(hào)和姓名 l查詢(xún)各門(mén)課程的課程號(hào)、課程名稱(chēng)以及選課學(xué)生的學(xué)號(hào) l查詢(xún)選修了數(shù)據(jù)庫(kù)系統(tǒng)原理課程的同學(xué)的學(xué)號(hào)和姓名和成績(jī) 4. 嵌套查詢(xún)(1)由In引出的子查詢(xún)l查詢(xún)與“劉晨”在同一個(gè)系學(xué)習(xí)的學(xué)生 (2)由比較運(yùn)算符引出的子查詢(xún)l找出每個(gè)學(xué)生超過(guò)他選修課程平均成績(jī)的課程號(hào)。 (3)帶修飾符的比較運(yùn)算符引出的子查詢(xún)l查詢(xún)其他系中比計(jì)算機(jī)科學(xué)系

16、所有學(xué)生年齡都小的學(xué)生姓名及年齡。 (4)由EXISTS引出的子查詢(xún)l查詢(xún)所有選修了1號(hào)課程的學(xué)生姓名 5. 集合查詢(xún)(1)集合并l查詢(xún)計(jì)算機(jī)科學(xué)系的學(xué)生及年齡不大于19歲的學(xué)生 (2)集合交l查詢(xún)計(jì)算機(jī)科學(xué)系且年齡不大于19歲的學(xué)生 (3)集合差l查詢(xún)計(jì)算機(jī)科學(xué)系且年齡大于19歲的學(xué)生 6視圖操作建立視圖并基于視圖進(jìn)行查詢(xún):1. 創(chuàng)建視圖(1)建立學(xué)生基本信息視圖(2)建立學(xué)生均分視圖 (3)建立選課信息視圖 2. 視圖查詢(xún)(1)查詢(xún)學(xué)生基本信息 (2)找出每個(gè)學(xué)生超過(guò)他選修課程平均成績(jī)的課程號(hào) (3)查詢(xún)每個(gè)學(xué)生的學(xué)號(hào)、姓名、選修的課程名及成績(jī) (4)比較使用視圖查詢(xún)和直接從基表查詢(xún)的優(yōu)點(diǎn)

17、1,能分割數(shù)據(jù),簡(jiǎn)化觀點(diǎn);2,,為數(shù)據(jù)提供一定的邏輯獨(dú)立性;3,提供自動(dòng)的安全保護(hù)功能;4,視圖可以間接對(duì)表進(jìn)行更新,因此視圖的更新就是表的更新。五、討論、心得 平時(shí)要多思考,多實(shí)踐,這樣子才能進(jìn)步,才能有所收獲,才能受益匪淺。學(xué)院名稱(chēng)軟件學(xué)院專(zhuān)業(yè)班級(jí)軟件1334實(shí)驗(yàn)成績(jī)學(xué)生姓名 學(xué)號(hào) 實(shí)驗(yàn)日期2014.6課程名稱(chēng)數(shù)據(jù)庫(kù)系統(tǒng)管理實(shí)驗(yàn)題目數(shù)據(jù)完整性一、實(shí)驗(yàn)?zāi)康暮鸵螅?)了解SQL Serer數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)完整性控制的基本方法(2)熟練掌握常用CREATE 或ALTER 在創(chuàng)建或修改表時(shí)設(shè)置約束(3)了解觸發(fā)器的機(jī)制和使用(4)驗(yàn)證數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)完整性控制二、主要儀器設(shè)備計(jì)算機(jī):HP-6470

18、b windows7 64 位 運(yùn)行環(huán)境: SQL Server 2008R2三、實(shí)驗(yàn)內(nèi)容和原理結(jié)合ST數(shù)據(jù)庫(kù)中的各個(gè)表,設(shè)置相關(guān)的約束,要求包括主鍵約束、外鍵約束、唯一約束、檢查約束、非空約束等,掌握各約束的定義方法。設(shè)置一個(gè)觸發(fā)器,實(shí)現(xiàn)學(xué)生選課總學(xué)分的完整性控制,了解觸發(fā)器的工作機(jī)制。設(shè)計(jì)一些示例數(shù)據(jù),驗(yàn)證完整性檢查機(jī)制。要求包括如下方面的內(nèi)容:3.1 使用SQL語(yǔ)句設(shè)置約束使用CREATE或ALTER語(yǔ)句完成如下的操作,包括:1設(shè)置各表的主鍵約束2設(shè)置相關(guān)表的外鍵3. 設(shè)置相關(guān)屬性的非空約束、默認(rèn)值約束、唯一約束4. 設(shè)置相關(guān)屬性的CHECK約束3.2 使用觸發(fā)器創(chuàng)建一個(gè)觸發(fā)器,實(shí)現(xiàn)如下

19、的完整性約束:.王玉民程明王林總學(xué)分姓名學(xué)號(hào)709080成績(jī)310642063106學(xué)分課程號(hào)學(xué)號(hào)SCStudentl 當(dāng)向SC表中插入一行數(shù)據(jù)時(shí),自動(dòng)將學(xué)分累加到總學(xué)分中。l 記錄修改學(xué)分的操作。3.4 檢查約束和觸發(fā)器 分別向相關(guān)表插入若干條記錄,檢查你設(shè)置的完整性約束是否有效:1插入若干條包含正確數(shù)據(jù)的記錄,檢查插入情況2分別針對(duì)設(shè)置的各個(gè)約束,插入違反約束的數(shù)據(jù),檢查操作能否進(jìn)行3向SC表插入若干行數(shù)據(jù),檢查觸發(fā)器能否實(shí)現(xiàn)其數(shù)據(jù)一致性功能。四、操作方法與實(shí)驗(yàn)步驟一、聲明完整性約束創(chuàng)建學(xué)生選課數(shù)據(jù)庫(kù)“學(xué)生選課”,包括三個(gè)基本表,其中Student表保存學(xué)生基本信息,Course表保存課程

20、信息,SC表保存學(xué)生選課信息,其結(jié)構(gòu)如下表:表1. Student表結(jié)構(gòu)列名稱(chēng)用途類(lèi)型長(zhǎng)度約束備注Sno學(xué)號(hào)字符8主鍵Sname姓名字符8非空Ssex性別字符2男,女Sage年齡整型Sdept所在系字符20Sclass班級(jí)字符4非空Stotal總學(xué)分整型默認(rèn)值0表2. Course表結(jié)構(gòu)列名稱(chēng)用途類(lèi)型長(zhǎng)度約束備注Cno課程號(hào)字符4主鍵Cname課程名字符40非空,唯一Cpno先修課程號(hào) 字符4外鍵引用本表的CnoCcredit學(xué)分整型表3. SC表結(jié)構(gòu)列名稱(chēng)用途類(lèi)型長(zhǎng)度約束備注Sno學(xué)號(hào)字符8主碼屬性,外鍵引用Student的SnoCno課程號(hào)字符4主碼屬性,外鍵引用Course的CnoGra

21、de成績(jī)整型0=成績(jī)0 AND Grade=0 AND Grade0 AND Grade100),不在此范圍內(nèi)不滿(mǎn)足check約束所以不可以正確執(zhí)行。INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES(,張盛,男,1008)可以正確執(zhí)行。INSERT INTO Student(Sno,Sname,Ssex,Sclass) VALUES(,張盛,1008)不可以正確執(zhí)行,性別Ssex屬性被約束值必須為男或者女,即CHECK( Ssex in (男,女),而此條記錄中沒(méi)有性別的值,不滿(mǎn)足性別屬性的check約束,所以不可以正確執(zhí)行。6檢查外鍵約束(1

22、)執(zhí)行下面的語(yǔ)句檢查外鍵約束的作用INSERT INTO SC VALUES(,1,95)不可以正確執(zhí)行,SC表中定義Sno與Cno為外鍵,分別引用Course表中的Sno與Cno,因?yàn)镃ourse表中不存在學(xué)號(hào)為的記錄,所以不滿(mǎn)足外鍵約束,不可以正確執(zhí)行。INSERT INTO SC VALUES(,10,95)不可以正確執(zhí)行,理由同上,Course表中不存在課程號(hào)為10的記錄。UPDATE SC SET Cno = 10 Where Cno=1不可以正確執(zhí)行,理由同上。UPDATE Course SET Cno = 10 Where Cno=3不可以正確執(zhí)行,理由同上。外鍵約束為子表(SC

23、)中的記錄必須從父表(Course)中來(lái),子表中需引用父表的屬性的值不可以出現(xiàn)父表中被引用屬性中沒(méi)有的值的記錄。(2)執(zhí)行下面的語(yǔ)句檢查對(duì)被引用表的約束DELETE Student WHERE Sno=可以正確執(zhí)行。DELETE Student WHERE Sno=不可以正確執(zhí)行,因?yàn)镾C表中的Sno屬性值引用Student中的Sno屬性值,子表還存在,且對(duì)應(yīng)引用的記錄也存在,所以父表中此記錄不可刪除??梢栽趧h除子表引用記錄后父表的此記錄即可刪除。UPDATE Course SET Cno = 10 WHERE Cname = 數(shù)據(jù)庫(kù)系統(tǒng)原理不可以正確執(zhí)行,因?yàn)镾C表中的Cno屬性引用Cour

24、se表中的Cno屬性,Course表中的“數(shù)據(jù)庫(kù)系統(tǒng)原理”對(duì)應(yīng)記錄的Cno已經(jīng)被SC表引用,在SC表中此屬性值存在的情況下,Course表的此Cno屬性值不可更改不可刪除。三、觸發(fā)器的定義及使用1定義觸發(fā)器(1)定義一個(gè)觸發(fā)器,實(shí)現(xiàn)有關(guān)學(xué)分的完整性約束:當(dāng)向SC表插入一行選課記錄時(shí),自動(dòng)將該課程的學(xué)分累加到該學(xué)生的總學(xué)分中。CREATE TRIGGER tr_INSERT ON SC FOR INSERT AS-聲明變量DECLARE sno char(8) DECLARE cridit intDECLARE cno char(4)-提取插入的數(shù)據(jù)SELECT sno=Sno,cno=Cno

25、FROM inserted-提取學(xué)生的總學(xué)分SELECT cridit = Ccredit FROM SC join Course ON (SC.Cno = Course.Cno)WHERE SC.Cno = cno-更新總學(xué)分UPDATE Student SET Stotal = Stotal + criditWHERE Sno = snoGO(2)定義一個(gè)觸發(fā)器,實(shí)現(xiàn)對(duì)SC表的操作登記:當(dāng)用戶(hù)向SC表插入或修改時(shí),記錄該操作到數(shù)據(jù)庫(kù)中。l 創(chuàng)建日志登記表:CREATE TABLE LOG_TABLE(username char(10), -操作人員date datetime, -修改時(shí)間S

26、no char(8) , -學(xué)生學(xué)號(hào)Cno char(4) -課程號(hào))l 創(chuàng)建日志登記觸發(fā)器:CREATE TRIGGER tr_UPDATE ON SC FOR INSERT,UPDATE ASDECLARE sno char(8) DECLARE cno char(4)DECLARE new smallintSELECT sno=Sno,cno=Cno FROM inserted INSERT INTO LOG_TABLE VALUES(CURRENT_USER,getdate(),Sno,Cno);GO(3)執(zhí)行插入操作,觸發(fā)觸發(fā)器:INSERT INTO SC VALUES(,6,95

27、)(4)驗(yàn)證觸發(fā)器是否觸發(fā)select * from studentselect * from LOG_TABLE五、討論、心得平時(shí)應(yīng)該多多練習(xí)這方面的知識(shí),熟能生巧,把知識(shí)的基礎(chǔ)打好,不問(wèn)及時(shí)問(wèn)老師和同學(xué),要學(xué)就學(xué)好這門(mén)課程.學(xué)院名稱(chēng)軟件學(xué)院專(zhuān)業(yè)班級(jí)軟件1334實(shí)驗(yàn)成績(jī)學(xué)生姓名 學(xué)號(hào) 實(shí)驗(yàn)日期2015課程名稱(chēng)數(shù)據(jù)庫(kù)系統(tǒng)管理實(shí)驗(yàn)題目用戶(hù)鑒別與數(shù)據(jù)控制一、實(shí)驗(yàn)?zāi)康暮鸵螅?)了解SQL Serer數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)訪問(wèn)控制的基本方法(2)了解使用SSMS如何給用戶(hù)授權(quán)(3)熟練掌握常用GRANT和REVOKE進(jìn)行權(quán)限控制(4)驗(yàn)證數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn)控制二、主要儀器設(shè)備計(jì)算機(jī):HP-6470b win

28、dows7 64 位 運(yùn)行環(huán)境: SQL Server 2008R2三、實(shí)驗(yàn)內(nèi)容和原理(1)創(chuàng)建新的數(shù)據(jù)庫(kù)用戶(hù)(2)對(duì)上一實(shí)驗(yàn)建立的表進(jìn)行權(quán)限設(shè)置(3)檢查數(shù)據(jù)庫(kù)用戶(hù)的權(quán)限(4)撤銷(xiāo)用戶(hù)權(quán)限四、操作方法與實(shí)驗(yàn)步驟A、使用SSMS的圖形界面創(chuàng)建用戶(hù)并授權(quán)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)用戶(hù):U1,授予他可以查詢(xún)Student表的權(quán)限。1 使用SSMS的圖形界面創(chuàng)建登錄名在快捷菜單中選擇“新建登錄名”:進(jìn)入“登錄名”窗口,輸入登錄信息:按“確定”創(chuàng)建登錄名。使用該名稱(chēng)可以登錄數(shù)據(jù)庫(kù)服務(wù)器。2 使用SSMS的圖形界面創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)選擇“學(xué)習(xí)”數(shù)據(jù)庫(kù),在快捷菜單中選擇“新建登錄名”:進(jìn)入“數(shù)據(jù)庫(kù)用戶(hù)”窗口,輸入用戶(hù)名和

29、登錄名:注意:登錄名是用戶(hù)登錄數(shù)據(jù)庫(kù)系統(tǒng)的名稱(chēng),用戶(hù)名是該登錄用戶(hù)在指定數(shù)據(jù)庫(kù)中的名稱(chēng),兩者可以相同。按“確定”創(chuàng)數(shù)據(jù)庫(kù)用戶(hù)。3使用SSMS的圖形界面進(jìn)行授權(quán),設(shè)置用戶(hù)對(duì)對(duì)象的訪問(wèn)權(quán)限展開(kāi)“學(xué)習(xí)”數(shù)據(jù)庫(kù)的“安全性”下的“用戶(hù)”,選擇“U1”。()打開(kāi)用戶(hù)屬性窗口: 在“選擇對(duì)象類(lèi)型”窗口中選擇“表” 。()在屬性窗口的“安全對(duì)象”頁(yè)中進(jìn)行設(shè)置權(quán)限選擇要訪問(wèn)的表Student,在下面的權(quán)限列表中點(diǎn)擊“選擇”權(quán)限的“授予”檢查框。按“確定”授予“U1”可以查詢(xún)Student表的權(quán)限。B、使用語(yǔ)句創(chuàng)建用戶(hù)并授權(quán)在“學(xué)習(xí)”數(shù)據(jù)庫(kù)中,使用SQL語(yǔ)句創(chuàng)建兩個(gè)數(shù)據(jù)庫(kù)用戶(hù),對(duì)數(shù)據(jù)庫(kù)中的Student、SC、和

30、Course表,分別對(duì)其授予不同的訪問(wèn)權(quán)限,如下表。表3.1 授予用戶(hù)權(quán)限用戶(hù)數(shù)據(jù)庫(kù)對(duì)象權(quán)限查詢(xún)插入修改刪除U2StudentCourseSCU3StudentCourseSC1創(chuàng)建登錄名用戶(hù)要訪問(wèn)數(shù)據(jù)庫(kù),必須首先登錄到服務(wù)器上。因此,首先需要為用戶(hù)創(chuàng)建登錄名。以系統(tǒng)管理員賬戶(hù)登錄,進(jìn)入數(shù)據(jù)庫(kù)服務(wù)器,執(zhí)行以下的操作。(1)分別創(chuàng)建兩個(gè)登錄名U2和U3:CREATE LOGIN U2 WITH password=1CREATE LOGIN U3 WITH password=1其中:“U2”、“U3”是用于登錄數(shù)據(jù)庫(kù)器的登錄名,Password用于指定用戶(hù)登錄密碼。(2)展開(kāi)服務(wù)器的“安全性”下的

31、“登錄名”,檢查登錄名是否創(chuàng)建成功。2創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)用戶(hù)登錄服務(wù)器后,要進(jìn)入某一數(shù)據(jù)庫(kù)訪問(wèn),需要為登錄用戶(hù)在該數(shù)據(jù)庫(kù)中建立一個(gè)數(shù)據(jù)庫(kù)用戶(hù)名。對(duì)創(chuàng)建的兩個(gè)登錄名,在“學(xué)習(xí)”數(shù)據(jù)庫(kù)分別為其創(chuàng)建兩個(gè)數(shù)據(jù)庫(kù)用戶(hù):(1)切換到“學(xué)習(xí)”數(shù)據(jù)庫(kù):USE 學(xué)習(xí)(2)創(chuàng)建登錄名在TEST數(shù)據(jù)庫(kù)中的用戶(hù):CREATE USER U2 FOR LOGIN U2CREATE USER U3 FOR LOGIN U3其中:第二個(gè)“U2”是登錄名,第一個(gè)“U2”是該登錄名在“學(xué)習(xí)”數(shù)據(jù)庫(kù)的用戶(hù)名。這兩個(gè)名稱(chēng)也可以同名。(3)展開(kāi)“學(xué)習(xí)”數(shù)據(jù)庫(kù)的“安全性”下的“用戶(hù)”,檢查數(shù)據(jù)庫(kù)用戶(hù)是否創(chuàng)建成功。3. 授權(quán)在數(shù)據(jù)庫(kù)中添加新

32、用戶(hù)后,新用戶(hù)沒(méi)用訪問(wèn)數(shù)據(jù)庫(kù)中數(shù)據(jù)的權(quán)限,需要數(shù)據(jù)庫(kù)管理人員給其授予相關(guān)的權(quán)限后,才能執(zhí)行相應(yīng)的操作。按照表3.1,授權(quán)如下:(1)授予U2權(quán)限GRANT SELECT ON Student TO U2(2)授予U3權(quán)限GRANT SELECT ON Student TO U3GRANT INSERT,UPDATE,DELETE ON Student TO U3GRANT SELECT ON Course TO U33.3 檢查權(quán)限控制 分別以?xún)蓚€(gè)登錄名登錄數(shù)據(jù)庫(kù),執(zhí)行一些對(duì)數(shù)據(jù)庫(kù)的操作,檢查用戶(hù)否允許執(zhí)行相關(guān)的操作。1檢查U2的權(quán)限以用戶(hù)“U2”登錄,執(zhí)行如下的操作,檢查能否正確的運(yùn)行:SELECT * FROM StudentINSERT INTO Student(Sno,Sname,Sclass) VALUES(,高志,1008)UPDATE Student Set Sag

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論