《數據庫系統(tǒng)概論》實驗指導書(修改_第1頁
《數據庫系統(tǒng)概論》實驗指導書(修改_第2頁
《數據庫系統(tǒng)概論》實驗指導書(修改_第3頁
《數據庫系統(tǒng)概論》實驗指導書(修改_第4頁
《數據庫系統(tǒng)概論》實驗指導書(修改_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫系統(tǒng)概論實驗指導書編著:高峰安陽師范學院計算機與信息工程學院2009 年 2 月實驗內容介紹一、學時數:16 學時二、授課對象:計算機科學與技術專業(yè)、計算機網絡專業(yè)、軟件工程專業(yè)(本科)三、內容提要:1 本實驗內容作為數據庫系統(tǒng)概論的理論聯系實際,培養(yǎng)增強學生動手能力,理解并掌握SQL語句的用法。2 實驗內容SQL SERVER2000軟件的熟悉,數據的定義、查詢、修改及控制。3 實驗要求以SQL SERVER2000作為基本的調試軟件,并有前臺的面向對象的開發(fā)工具。四、考試方式:實驗報告及成績五、教材及參考書:1數據庫系統(tǒng)概論(第四版)薩師煊 王珊 高等教育出版社 2007.4出版2S

2、QL語言應用 Michael Morrison 北京大學出版社 2002.063.Microsoft SQL Server 2000數據庫管理 微軟公司 著 北京希望電子出版社 2001.5出版六、實驗內容安排序號實驗項目名稱學時實驗類型實驗要求每組人數1數據庫的創(chuàng)建與管理2驗證性必 修12表的創(chuàng)建與管理2驗證性必 修13數據查詢4驗證性必 修14數據庫的視圖定義及維護1驗證性必 修15數據安全性控制1驗證性選 修16數據完整性控制1驗證性必 修17嵌入式SQL和ODBC的使用1驗證性選 修18數據庫的設計與實現4綜合性必 修1實驗一 數據庫的創(chuàng)建與管理【目的和要求】1鞏固數據庫的基礎知識;2

3、掌握創(chuàng)建數據庫的兩種方法;3掌握如何查看、修改數據庫屬性的方法;4掌握數據庫的縮小、更名、與刪除的方法。【內容和步驟】一、 創(chuàng)建數據庫1使用企業(yè)管理器直接創(chuàng)建數據庫1) 打開企業(yè)管理器。2) 右鍵單擊數據庫并選擇【新建數據庫】。3) 會彈出窗體如下圖所示,在常規(guī)標簽中輸入數據庫名稱。4) 然后單擊【數據文件】標簽,可以輸入文件名、文件位置、文件大小以及文件組。在這個標簽中還提供了讓數據文件在數據需要更多空間時自動擴展的選項和數據文件大小的最大值。5) 單擊【事務日志】標簽,在此鍵入日志文件的名字、位置、大小。在這個標簽中還提供了讓日志文件在日志需要更多空間時自動擴展選項和日志文件大小的最大值。

4、 2使用Transact-SQL語句創(chuàng)建數據庫 當我們無法用企業(yè)管理器創(chuàng)建生成一個大的數據庫,或者用戶想用Transact-SQL語句寫一段程序自動的計劃的生成幾個數據庫時,可以用Transact-SQL語句向服務器請求創(chuàng)建數據庫。使用Transact-SQL語句創(chuàng)建數據庫的語法如下:CREATE DATABASE database_name ONPRIMARY( NAME = logical_file_name, FILENAME = os_file_name ,SIZE = size ,MAXSIZE = max_size|UNLIMITED ,FILEGROWTH = growth_in

5、crement),n:=FILEGROUP filegroup_name ,nLOG ON(NAME = logical_file_name,FILENAME = os_file_nameSIZE = size,MAXSIZE = max_size | UNLIMITED,FILEGROWTH = growth_increment)例1:創(chuàng)建一個lfm數據庫,主要文件組包含主要數據文件文件lfm1_dat和次要數據文件lfm2_dat。有2個次要文件組:lfmGroup1包含2個次要數據文件lfm1Fi1_dat 和 lfmFi2_dat, lfmGroup2包含lfm2Fi1_dat和lfm

6、2Fi2_dat兩個次要數據文件。日志的邏輯文件名為lfm_log,此日志文件存儲在c:mssqldatalfmlog.ldf中。CREATE DATABASE lfmON PRIMARY(NAME = lfm1_dat, FILENAME = c:lfm1_dat.mdf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15%), (NAME = lfm2_dat, FILENAME = c:lfm2_dat.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 15%), FILEFROUP lfmGroup1 ( NAME =

7、 lfm1Fi1_dat, FILENAME = c:lfm1Fildt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5) ,( NAME = lfm1Fi2_dat, FILENAME = c:lfm2Fildt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5), FILEGROUP lfmGroup2(NAME = lfm2Fil_dat, FILENAME = c:SG2Fi1dt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5),(NAME = lfm2Fi2_

8、dat, FILENAME = c:SG2Fi1dt.ndf, SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5)LOG ON (NAME = lfm_log, FILENAME = c:lfmlog.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB)二、 查看數據庫、修改數據庫的屬性 SQLSERVER2000有許多選項可以改變數據庫的行為。因此,在使用數據庫之前,可以考慮其中一些選項的設置。 進入企業(yè)管理器,用鼠標右鍵單擊數據庫test,再單擊“屬性”,然后選擇“選項”標簽即可進入如下圖所示test數據庫的選項

9、窗體。訪問控制:用于控制哪些用戶能訪問該數據庫只讀:這個選項使數據庫只能讀取不能寫入模型:指定數據庫的恢復模型類型ANSI NULL默認設置:指定將數據庫列默認定義為NULL還是NOT NULL。遞歸觸發(fā)器:啟用觸發(fā)器的遞歸觸發(fā)。自動更新統(tǒng)計信息:指定在優(yōu)化期間自動生成查詢優(yōu)化所需的過時統(tǒng)計信息。殘缺頁檢測:指定可以檢測不完整頁。自動關閉:指定數據庫資源被釋放以及所有用戶退出之后關閉數據庫。自動收縮:指定數據庫文件可以周期性自動收縮。自動創(chuàng)建統(tǒng)計信息:指定在優(yōu)化期間自動生成優(yōu)化查詢所需的任何缺少的統(tǒng)計信息。使用引用的標識符:指定SQLSERVER將強制執(zhí)行關于引號的ANSI規(guī)則。級別:指定數據

10、庫兼容性級別。2 整數據庫大小點擊“數據文件”或“事物日志”標簽,可以得到如下圖所示test數據庫的窗體文件自動增長:選中表示數據庫自動,這時可以選擇按兆增長還是按百分比增長。文件增長不受限制:意味著數據庫沒有最大限制,可以一直充滿磁盤將文件增長限制為,為數據庫選擇一個最大限制。分配空間:用戶可以直接增加數據庫文件大小擴大數據庫的另外一個方法是增加輔助數據文件。3 加文件組生成一輔助文件后,可將其邏輯組織到文件組中,幫助管理磁盤空間分配。增加文件組的方法是:在文件組列中輸入一個新的文件組名稱,如“next”,單擊“確定”,然后右擊數據庫,選擇“屬性”,選擇“文件組”標簽會看到增加的文件組。如圖

11、示: 縮小數據文件右擊數據庫,單擊“所有任務”,選擇收縮數據庫,會彈出下圖所示窗體,利用該窗體可以輸入數據庫大小,并且可以定制任務,讓SQL Server自動定期收縮數據庫大小。三、利用T-SQL語句查看、修改數據庫屬性語法為: sp_dboption dbname = database,optname = option_name,optname = option_name dbname = database 設置指定選項的數據庫名稱optname = option_name 設置的選項名稱optname = option_name 可以示ture、false、on或off 修改日志文件的最大

12、值將test1_log日志文件的最大值更改為150M,SQL腳本程序如下:USE testGOALTER DATABASE testMODIFY FILE(NAME=test1_log,MAXSIZE=150MB)GO 修改日志文件的初始值將test1_log日志文件的初始值由5M更改為20M,SQL腳本程序如下:USE testGOALTER DATABASE testMODIFY FILE(NAME=test1_log,SIZE=20MB)GO 查看數據庫信息執(zhí)行系統(tǒng)存儲過程sp_helpdb,可以查看test數據庫信息,并驗證數據庫是否已經修改成功。Sp_helpdb test 更改數據

13、庫更改數據庫test時為test添加一個輔助文件,文件名為testfz,存儲在c: testfz.ndf中,初始大小為3MB,最大值為50MB,增長量為3MB。USE testALTER DATABASE testADD FILE(NAME = testfz,FILENAME=c:testfz.ndf,SIZE=3MB,MAXSIZE=50,FILEGROWTH=3)向數據庫test中添加一個含有2個文件的文件組USE testGOALTER DATABASE testADD FILEGROUP testfg1GOALTER DATABASE testADD FILE(NAME=testfz1

14、, FILENAME=C:testfz1.ndf, SIZE =5MB, MAXSIZE=50MB, FILEGROWTH =5),(NAME=testfz2, FILENAME=C:testfz2.ndf, SIZE =5MB, MAXSIZE=50MB, FILEGROWTH =5) TO FILEGROUP testfg1向test數據庫中添加2個5MB的日志文件USE testGOALTER DATABASE testADD LOG FILE(NAME =testlog2, FILENAME=c:testlog2.ldf, SIZE =5MB, MAXSIZE = 10MB, FILE

15、GROWTH =5),(NAME =testlog3, FILENAME=c:testlog3.ldf, SIZE =5MB, MAXSIZE = 10MB, FILEGROWTH =5)刪除數據庫test中的一個文件testfz.ndfUSE testGOALTER DATABASE testREMOVE FILE testfz刪除test數據庫USE testDROP DATABASE test練習題練習1:創(chuàng)建數據庫 用企業(yè)管理器創(chuàng)建數據庫1) 創(chuàng)建數據庫Test:2) 右擊數據庫,單擊【新建數據庫】3) 輸入數據庫名稱Test4) 選擇【數據文件】標簽,增加一個文件test1,設置初始

16、大小為5MB5) 選擇【事務日志】標簽,增加一個日志文件test1_log,初始大小為5MB6) 單擊【確定】按鈕,開始創(chuàng)建數據庫練習2:用Transact-SQL語句創(chuàng)建數據庫打開查詢分析器,創(chuàng)建數據庫Test1。數據庫的參數如下表所示。參數參數值數據庫名稱Test1數據庫邏輯文件名Test1_dat操作系統(tǒng)數據文件名C:mssqldataTest1_dat.mdf數據文件的初始大小10MB數據文件最大大小50MB數據文件增長量原來的20%日志邏輯文件名Test_log操作系統(tǒng)日志文件名C:mssqldataTest1_log.ldf日志文件初始大小5MB日志文件的最大大小25MB日志文件增

17、長增量5MB1) 設置數據庫選項:使用企業(yè)管理器修改數據庫選項。右擊數據庫,單擊“屬性”,選擇“選項”標簽,彈出如圖所示窗體,選中“只讀”復選框。這樣數據庫就變?yōu)橹蛔x數據庫。然后打開查詢分析器使用T-SQL語句更改數據庫選項。EXEC SP_DBOPTION test, read only, TRUE2)壓縮數據庫:使用企業(yè)管理器壓縮數據庫。右擊數據庫,選擇“所有任務”,單擊“收縮數據庫”,彈出圖示窗體。鍵入收縮量。使用T-SQL語句壓縮數據庫。打開查詢分析器鍵入DBCC SHRINKDATABASE(test,2)將test數據庫壓縮成為2M。3)更改數據庫:打開查詢分析器更改數據庫test

18、,參數如下:參數參數值數據庫名Test增加的文件組名TestFG1增加的文件1的邏輯名Testdat3文件1在磁盤中的目錄C:tdat3.ndf文件1的初始大小5MB文件1的最大值50MB文件1的增長量5MB增加的文件2邏輯名Testdat4文件2磁盤中的目錄C:tdat3.ndf文件2初始大小5MB文件2最大值50MB文件2增長量5MB新增日志邏輯文件名Testlog2日志文件在磁盤中的目錄D:testlog.ldf日志文件初始值5MB日志文件最大值100MB日志文件增長量5MB實驗二 表的創(chuàng)建與管理【目的和要求】1鞏固數據庫的基礎知識;2掌握創(chuàng)建與刪除表的兩種方法;3掌握修改表結構的方法。

19、【內容和步驟】一、創(chuàng)建表1利用企業(yè)管理器創(chuàng)建表 1) 打開企業(yè)管理器。2) 選中創(chuàng)建好的數據庫,單擊數據庫中的表對象,然后右擊窗口右側選擇新建表,彈出如圖所示窗體。3) 在這個窗體中,列名列就示表的字段名,可以在這個窗體中為字段選擇數據類型和長度以及是否可以為空值。4) 在此處可以為表選擇文件組,在表中單擊右鍵,選擇屬性,如果已經為數據庫創(chuàng)建了一個次要組,可以在屬性窗體的表文件組中為此表選擇文件組。應該把一些競爭使用的表放于不同的文件組中,并且讓文件組屬于不同磁盤,這樣可以在表競爭讀寫時提高并發(fā)性能。5) 創(chuàng)建完成后,單擊磁盤圖標,并為表取一個名字,注意,應該為表取一個有意義的名字。2用Tra

20、nsact_SQL語句創(chuàng)建表 語法為: CREATE TABLE database_name.owner. table_name ( column_name data_type DEFAULT default_value| CONSTRAINT constraint_name , n IDENTITY (seed, increment ) ) ON filegroup | DEFAULT TEXTIMAGE_ON filegroup | DEFAULT 例1:生成一個表名為學生表的表例2:創(chuàng)建一張名為Ta1的表,此表中有3列,第一列Pid定義為主鍵,并且自動增長。第二列Name默認值為Unkn

21、own,第三列定義一個約束,即此列中的日期不能大于輸入當天的日期,插入一條記錄并進行查詢,顯示如下圖。二、表的修改1 用企業(yè)管理器修改表 右鍵點擊所要修改的表student,選擇“設計表”,會彈出如圖所示的窗體,在這個窗體中可以更改數據表的字段。在空白處點右鍵,選擇“屬性”,彈出另一窗體,在此可以更改約束,也可以增加約束。 利用T-SQL語句修改表向表中添加新的字段:在student表中添加一個“籍貫”字段,數據類型為字符型。ALTER TABLE student add 籍貫 char 刪除表中的舊列:將student表中的“電話”字段刪除。ALTER TABLE student DROP

22、column 籍貫更改表以添加具有約束的列:給student表的增加“年級”字段并加上CHECK約束,讓其不可以大于100。ALTER TABLE student ADD 年級 int Constraint chname check(年級100)Exec sp_help chname給student表中添加“出生日期”字段,并且這個日期不能在錄入當天的日期之后。Alter table studentAdd 出生日期 DATETIME NULLCONSTRAINT ch_birthday CHECK (出生日期getdate()添加具有默認值的可為空的列:在student表中加入“進校日期”字段

23、,并且這一字段的默認值為錄入當天的日期。Alter table studentAdd 進校日期 smalldatetime NULLConstraint adddatefltDefault getdate()三、表的刪除刪除表對象,我們可以在企業(yè)管理器中選擇要刪除的表直接刪除,也可以通過T-SQL語句DROP 刪除表的定義及表中的所有數據、索引、出發(fā)器、約束和權限規(guī)范。刪除table2表。DROP TABLE table2練習題練習1:在Test數據庫中創(chuàng)建教工表1) 打開查詢分析器,用sa登錄2) 在數據庫列表中單擊test數據庫3) 寫出并執(zhí)行語句創(chuàng)建教工表。條件如下: 列名數據類型允許為

24、空?約束IDENTITY屬性?教工號Int否主鍵姓名Varchar(20)是無家庭地址Char(30)是無電話Int是無性別Char(2)否默認為男課程名稱Varchar(10)否必須在(數學、語文、化學、英語、物理)中4) 根據條件在查詢分析器中輸入以下語句: CREATE TABLE 教工表(教工號 INT PRIMARY KEY IDENTITY(1,1),姓名 VARCHAR(20) NULL,家庭住址 CHAR(30) NULL,電話 INT NULL,性別 CHAR(2) DEFAULT 男,課程名 VARCHAR(10)CONSTRAINT chaname1CHECK(課程名 I

25、N (數學,語文,化學,英語,物理)5) 刪除此表:在查詢分析器中輸入語句DROP TABLE 教工表6) 自己試著用企業(yè)管理器重新創(chuàng)建此表。練習2:表的管理 用企業(yè)管理器創(chuàng)建教工表teacher,條件如下列名數據類型允許為空?約束IDENTITY屬性教工號Int否主鍵無姓名Varchar(20)是無無家庭住址Char(30)是無無電話Int是無無性別Char(2)否默認為男無系別Varchar(16)否必須是(計算機軟件、計算機體系結構、計算機網絡)之一無 在查詢分析器中用命令:DROP TABLE teacher刪除該表。 根據條件在查詢分析器中輸入以下語句:CREATE TABLE te

26、acher ( 教工號 INT PRIMARY KEY IDENTITY(1,1), 姓名 VARCHAR(18) NULL, 家庭住址 CHAR(30) NULL, 電話 INT NULL, 職稱 CHAR(14) DEFAULT 講師, 所在專業(yè) VARCHAR(16) CONSTRAINT chname1 CHECK(所在專業(yè) IN (計算機體系結構,計算機網絡,計算機軟件) )實驗三 數據查詢【目的和要求】 1 了解查詢的概念和方法;2 掌握查詢分析器的使用方法;3 掌握SELECT語句在單表查詢中的應用;4 掌握復雜查詢的使用方法;5 掌握多表連接的方法;6 掌握SELECT語句在多

27、表查詢中的應用?!緝热莺筒襟E】一、 單表查詢1基本查詢打開查詢分析器,從teacher表中分別檢索出教師的所有信息,以及教工號、姓名和職稱。語句及查詢結果如下:select * from teacherselect 教工號,姓名 from teacher2查詢時改變列標題的顯示從teacher表中分別檢索出教師教工號、姓名、家庭住址信息并分別加上教師姓名、教工號、家庭住址等標題信息,語句及查詢結果如下:3基于WHERE語句進行數據查詢 基于比較條件。從teacher表中查詢出教工號小于2130的教師資料。語句如下:select * from teacher where 教工號2800 orde

28、r by 工資 ASC二、 多表查詢數據庫的各個表中存放著不同的數據,用戶經常需要用多個表中的數據來組合提煉出所需要的信息,如果一個查詢需要對多個表進行操作,就稱為聯表查詢,聯表查詢的結果集或結果表稱為表之間的連接。聯表查詢實際上是通過各各表之間共同列的關聯來查詢數據的,它是關系數據庫查詢最基本的特征。按照下表所示,分別在數據庫test中構造student、course和student_course三張表,并寫入記錄。Student表列名稱類型寬度允許為空缺省值主鍵學號Char8否是學生姓名Nvarchar8否性別Bit否出生年月Smalldatetime否班級號Char6否入學時間Small

29、datetime否家庭住址Nvarchar40是Course表:列名稱類型寬度允許為空缺省值主鍵課程號char10否是課程名稱Nvarchar20否書標識Char13否課程總學時Tinyint是周學時Tinyint是課程學分Tinyint是Student_course表列名稱類型寬度允許為空缺省值主鍵課程號Char10否是學號Char8否是成績Tinyint否學分Tinyint否學期Bit是學年Char9是SQL 2000兼容2種連接形式:用于FROM子句的ANSI連接語法和用于WHERE子句的SQL SERVER連接語法形式。1 進行多表查詢從student、course和student_c

30、ourse三張表中檢索學生的學號、姓名、學習課程號、學習課程名及課程成績。語句如下:select student學號,student_course學生姓名,student_course課程號,course課程名,student_course成績from student, student_course,course where student學號student_course學號andcourse課程號student_course課程號使用UNION子句進行查詢使用UNION子句可以將一個或者多個表的某些數據類型相同的列顯示在同一列上。如從teacher表中列出教工號、姓名并從student表中列

31、出學號及學生姓名。語句及查詢結果如下:select 學號 AS 代碼,學生姓名 AS 姓名 from student union select 教工號,姓名 from teacher3 用GROUP子句進行查詢如果要在數據檢索時對表中數據按照一定條件進行分組匯總或求平均值,就要在SELECT語句中與GROUP BY子句一起使用集合函數。使用GROUP BY子句進行數據檢索可得到數據分類的匯總統(tǒng)計、平均值或其他統(tǒng)計信息。 使用不帶HAVING的GROUP BY子句。使用不帶HAVING 的GROUP BY子句匯總出student_course表中的學生的學號及總成績,語句如下:select 學號

32、=student學號,總成績=SUM(成績) from student_coursegroup by 學號 使用帶HAVING 的GROUP BY子句。使用帶HAVING 的GROUP BY子句匯總出student_course表中總分大于450分的學生的學號及總成績,語句如下:select 學號=學號,總成績=SUM(成績)FROM student_courseGROUP BY 學號 HAVING SUM(成績)4504.使用COMPUTE和COMPUTE BY子句進行查詢使用COMPUTE和COMPUTE BY 既能瀏覽數據又能看到統(tǒng)計的結果。 用COMPUTE子句匯總出student_c

33、ourse表中每個學生的學號及總成績,語句如下:select 學號=學號,成績=成績 from student_course ORDER BY 學號 COMPUTE SUM(成績) 用COMPUTE BY 子句按學號匯總出student_course表中每個學生的學號及總成績,語句如下:select 學號=學號,成績=成績 from student_course ORDER BY 學號COMPUTE SUM(成績)BY 學號觀察執(zhí)行COMPUTE和COMPUTE BY子句的結果有什么不同?三、 進行嵌套查詢1使用IN或NOT IN關鍵字使用IN關鍵字查詢出j10011班所有男生的學號、課程號及

34、相應的成績,語句如下:select student_course.學號, student_course.課程號,student_course.成績FROM student_course WHERE 學號 IN (SELECT 學號 FROM student WHERE 班級=j10011AND 性別=1)2 使用EXISTS 或NOT EXISTS關鍵字。使用EXISTS關鍵字查詢出j10011班的學生的學號、課程號及相應的成績,語句如下:SELECT student_course.學號,student_course.課程號,student_course.成績 FROM student_cou

35、rseWHERE EXIST (SELECT * FROM student WHERE student_course.學號=student.學號 AND student.班級=j10011)練習題練習1:從PUBS(SQL Server樣本數據庫)中的authors,titleauthor,titles表中選擇出當年圖書銷量大于10000冊的圖書作者名稱和圖書名稱。練習2:統(tǒng)計各類圖書的平均價格。練習3:列出business類的圖書名稱和價格,結果按價格降序、書名升序排列。練習4:列出所有作者為Oakland籍的圖書。練習5:查詢所在州沒有出版社的那些作者及其所在州名。實驗四 數據庫的視圖定義

36、及維護【實驗目的】1、 使學生掌握視圖的定義與維護操作2、 加深對視圖在關系數據庫中的作用的理解 【相關知識】視圖是根據子模式建立的虛擬表。一個視圖可以由一個表構造,也可以由多個表構造。利用企業(yè)管理器和視圖創(chuàng)建向導進行創(chuàng)建,查看和修改視圖就如同對表的操作一樣,非常容易?!緦嶒瀮热荨勘緦嶒灥闹饕獌热菔牵?、創(chuàng)建和刪除視圖2、查詢和更新視圖具體完成以下例題。例1 建立信息系學生的視圖例2 建立信息系學生的視圖,并要求進行修改和插入操作時仍須保證該視圖只有信息系的學生。例3 建立信息系選修了C1號課程的學生視圖例4 建立信息系選修了C1號課程且成績在90分以上的學生視圖例5 定義一個反映學生出生年份

37、的視圖【實驗步驟】1 創(chuàng)建視圖下面利用了SQL Server中提供的視圖創(chuàng)建向導,來實現例3(建立信息系選修了1號課程的學生視圖)。1) 打開企業(yè)管理器窗口,確認服務器,打開數據庫文件夾,選中新視圖所在的數據庫(此例為學生選課數據庫)。2) 選擇菜單:工具|向導3) 在如圖1所示的向導選擇對話框中,單擊數據庫左邊的“+”號,使之展開。選擇“創(chuàng)建數據庫向導”項,單擊“確定”按鍵。 圖1 向導選擇對話框4) 進入創(chuàng)建視圖向導后,首先出現的是歡迎使用創(chuàng)建視圖向導對話框,其中簡單介紹了該向導的功能。單擊“下一步”后,就會出現選擇數據庫對話框。5) 在選擇數據庫對話框中,選擇視圖所屬的數據庫。本例的數據

38、庫為“學生選課”。單擊“下一步”按鍵,則進入選擇表對話框。6) 在選擇表對話框中,列出了指定數據庫中所有用戶定義的表。用戶可以從中選擇構造視圖所需的一個表或者多個表,被選中的表成為構造視圖的參考表。選擇構造視圖參考表的方法是:用鼠標單擊表后的“包含在視圖中”列,使復選框為選中狀態(tài)。本例的數據庫中只有學生表和選課表,它們都應當被選中。單擊“下一步”按鍵,則進入選擇對話框。7) 列選擇對話框中以表格形式列出了創(chuàng)建視圖參考表的全部屬性,每個屬性占表的一行,創(chuàng)建視圖參考屬性可以在表格中選出。選擇視圖參考屬性的方法是用鼠標單擊屬性名后邊的“選擇列”列,使復選框為選中狀態(tài)。本例中學生.學號,學生.姓名和選

39、課.成績屬性要被選中。單擊“下一步”按鍵,進入創(chuàng)建視圖的定義限制對話框,如圖2所示。 圖2 定義限制對話框8) 在定義限制對話框中,輸入表的連接和元組選擇條件。本例輸入“所在系=信息系 AND 學生.學號 = 選課.學號 AND 選課.課程號 = C1”。單擊“下一步”按鍵,出現視圖名對話框。9) 在輸入視圖名對話框中輸入所建視圖的標識名。本例的視圖名為“信息系選課1”。單擊“下一步”按鍵,則出現視圖創(chuàng)建完成對話框。在完成對話框中給出了根據前面對話框輸入的內容譯成的SQL語句。您可以認真閱讀該SQL語句,如果發(fā)現與要求有不符合之處可以直接進行修改。確認無誤后單擊“完成”按鈕。隨后出現一個通知用

40、戶已成功創(chuàng)建視圖的信息框,單擊“確認”按鈕后,整個創(chuàng)建視圖工作就完成了。2 查看和修改視圖視圖創(chuàng)建好后,就可以利用它進行查詢信息了。如果發(fā)現視圖的結構不能很好地滿足要求,還可以在企業(yè)管理器對它進行修改。在企業(yè)管理器中修改視圖結構需要首先選擇服務器,數據庫,并使數據庫展開,然后用鼠標右擊要修改的視圖,在彈出的菜單上選擇“設計視圖”項,則彈出一個視圖設計對話框,如圖3所示。當對其修改完畢后關閉窗口,新的視圖結構就會取代原先的結構。 3將查詢需求用SQL語言表示;在SQL查詢分析器的輸入區(qū)中輸入SQL查詢語句;設置查詢分析器的結果區(qū)為Standard Execute(標準執(zhí)行)或Execute to

41、 Grid(網格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結果區(qū)中查看查詢結果;如果結果不正確,要進行修改,直到正確為止。實驗五 數據安全性控制【實驗目的】1、 通過實驗使學生加深對數據安全性的理解2、 掌握SQL Server中有關用戶,角色及操作權限的管理方法【相關知識】 SQL Server提供以下四種防線:l Windows NT操作系統(tǒng)的安全防線Windows NT的網絡管理員負責建立用戶組,設置帳號并注冊,同時決定不同的用戶對不同的系統(tǒng)資源的訪問級別。用戶只有擁有了一個有效的Windows NT登錄帳號,才能對網絡資源進行訪問。l SQL Server的運行安全防線SQL Server 通過另

42、外一種帳號設置來創(chuàng)建附加安全層。SQL Server具有標準登錄和集成登錄兩種用戶登錄方式,用戶只有登錄成功,才能與SQL Server建立一次連接。l SQL Server數據庫的安全防線 SQL Server的特定數據庫都有自己的用戶和角色(用戶組),該數據庫只能由它的用戶或角色訪問,其他用戶無權訪問其數據,數據庫系統(tǒng)可以通過創(chuàng)建和管理特定的數據庫的用戶和角色來保證數據庫不被非法用戶訪問。l SQL Server數據庫對象的安全防線 SQL Server可以對權限進行管理,SQL的DCL功能保證合法用戶即使進了數據庫也不能有超越權限的數據操作,即合法用戶必須在自己的權限范圍內進行數據操作。

43、【實驗內容】本實驗的實驗內容為:l 在SQL Server企業(yè)管理器中,設置SQL Server的安全認證模式。l 通過SQL Server企業(yè)管理器,實現對SQL Server的用戶和角色管理。l 分別通過SQL Server企業(yè)管理器和SQL的數據控制功能,設置和管理數據操作權限。【實驗步驟】l 在SQL Server企業(yè)管理器中為所屬的SQL 服務器設置為SQL Server和Windows NT混合安全認證模式。其步驟如下:1) 在企業(yè)管理器窗口中展開服務器組,用鼠標右擊需要設置的SQL服務器,在彈出的菜單中選擇“屬性”項,則出現SQL Server屬性對話框,如圖1所示。 圖1 SQ

44、L Server屬性對話框2) 在SQL Server屬性對話框中選擇“安全性”選項卡。3) 身份驗證選擇“SQL Server和Windows”單選項。l 在SQL Server企業(yè)管理器中為自己建立一個服務器用戶、數據庫用戶和數據庫角色。1) 在企業(yè)管理器窗口中展開服務器組,展開服務器,用鼠標單擊“安全性”文件夾右側的+,用鼠標右擊“登錄”,在彈出的菜單中選擇“新建登錄”項,則出現新建登錄對話框,如圖2所示。 圖2 新建登錄對話框2) 在新建登錄對話框中有常規(guī),服務器角色和數據庫訪問三個選項卡。在常規(guī)選項卡中,輸入用戶名(本例為王平),選擇SQL Server安全驗證,輸入用戶口令。在服務

45、器角色選項卡中,需要確定用戶所屬的服務器角色,在本例中采用缺省值即可。在數據庫訪問選項卡中,需要指定此登錄可以訪問的數據庫(本例選中學生選課數據庫)和“學生選課”的數據庫角色(在本例中采用缺省值即可)。單擊“確定”按鈕,既完成了創(chuàng)建登錄用戶的工作。l 關閉SQL Server企業(yè)管理器,打開SQL查詢分析器。選擇SQL Server安全驗證,用戶名為王平,輸入用戶口令,連接到SQL Server。在“查詢”窗口中可以輸入SQL語句。如“SELECT * FROM 學生”。運行后,得到消息“拒絕了對對象學生(數據庫學生選課,所有者dbo)的SELECT權限?!薄?梢娪脩敉跗經]有對學生表的SELE

46、CT權限。l 要想將學生選課數據庫的操作權限賦予數據庫用戶王平,有兩種方法。方法一:通過企業(yè)管理器1) 在企業(yè)管理器窗口中展開服務器組,展開服務器,用鼠標單擊“數據庫”文件夾右側的+,用鼠標單擊學生選課數據庫文件夾右側的+,用鼠標右擊“用戶”。在屏幕右側的“用戶”窗口中選擇“王平”項,用鼠標右擊,在彈出的菜單中選擇“屬性”項,則出現數據庫用戶屬性對話框,如圖3所示。 圖3 數據庫用戶屬性對話框2) 單擊圖3中的權限按鈕,則出現數據庫用戶權限對話框,如圖4所示。對話框的下面是有關數據庫用戶和角色所對應的權限表。這些權限均以復選框的形式表示。復選框有三種狀態(tài):“”為授權;“”為廢除權;空為撤權。在

47、表中可以對用戶或角色的各種對象操作權(SELECT,INSERT,UPDATE,DELETE,EXEC和DRI)進行授予或撤消。 圖4 數據庫用戶權限對話框3) 在圖4中找到學生表,授予SELECT權限,即讓學生表與SELECT列交叉的復選框為“”即可。方法二:通過SQL的數據控制功能對用戶王平授權,必須是數據庫對象擁有者以上用戶授予。我們可以以系統(tǒng)管理員或sa用戶登錄進入查詢分析器。在查詢分析器中輸入授權語句“GRANT SELECT ON 學生 TO 王平;”,然后執(zhí)行即可。實驗六 數據完整性控制【實驗目的】1、 通過實驗使學生加深對數據完整性的理解2、 學會創(chuàng)建和使用觸發(fā)器?!鞠嚓P知識】

48、SQL Server實現數據完整性的具體方法有4種:約束、缺省、規(guī)則和觸發(fā)器。其中約束和缺省在實驗一中已接觸過。本實驗重點學會創(chuàng)建和使用觸發(fā)器。觸發(fā)器是實施復雜完整性的特殊類型的存儲類型。觸發(fā)器不需要專門語句調用,當對它所保護數據進行修改時自動激活,以防止對數據進行不正確,未授權或不一致的修改。創(chuàng)建觸發(fā)器的語法為:CREATE TRIGGER ON WITH ENCRYPTIONFOR DELETE,INSERT,UPDATEWITH APPENDNOT FOR REPLICATIONAS 其中:1) WITH ENCRYPTION 為加密選項。2) DELETE 選項為創(chuàng)建DELETE 觸發(fā)

49、器。DELETE觸發(fā)器的作用是當對表執(zhí)行DELETE操作時觸發(fā)器被激活,并從指定表中刪除元組,同時將刪除的元組放入一個特殊的邏輯表(delete表)中。觸發(fā)器的動作可以檢查delete表中的數據,以確定下一步該如何處理。3) INSERT選項為創(chuàng)建INSERT觸發(fā)器。INSERT觸發(fā)器在對指定表中執(zhí)行插入數據操作時激活,激活后將插入表中的數據拷貝并送入一個特殊的邏輯表(inserted 表)中,觸發(fā)器會根據INSERT表中的值決定如何處理。4) UPDATE選項為創(chuàng)建UPDATE觸發(fā)器。UPDATE觸發(fā)器僅在對指定表中進行更新數據操作時激活。UPDATE觸發(fā)器激活后把將要被更新的原數據移入delete表中再將要被更新后的新數據的備份送入insert表中,UPDATE觸發(fā)器對delete和inserted表進行檢查,并決定如何處理。5) NOT FOR REPLICATION 選項說明當一個復制過程在修改一個觸發(fā)器表時

溫馨提示

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

評論

0/150

提交評論