資料庫實驗2 掌握DBMS常用工具

URNOTJANET發表於2017-12-13

2016-3-14 實驗目的 1.深入瞭解SQL Server的資料檔案與日誌檔案; 2.掌握資料字典; 3.瞭解SQL Server的臨時檔案; 實驗環境 軟體:OS:Windows7 DBMS:SQL Server 2008 Compiler:SQL Server Management Studio 實驗用時:一次上機 實驗內容 1)瞭解SQL的主要資料檔案mdf、次要資料檔案ndf和日誌檔案ldf。

2)利用資料庫檔案建立新的資料庫(兩位同學A、B一起完成),實驗說明如下: 同學A、B分別在建立一個以自己名字命名的資料庫,資料庫中需要有至少一張含有資料的表,檢視資料對應的資料檔案(.mdf、.ldf等)。利用對方的資料庫檔案,同學A和B分別在自己的SQL Server例項(即SSMS)中匯入對方所建立的資料庫。

3)觀察並記錄次要資料檔案的生成

4)臨時檔案 當使用sql語句進行查詢時,查詢的結果是存放在一個字尾名為tmp的一個臨時檔案中。當查詢的時候,該檔案存放查詢的結果,當關閉資料庫的時候,該臨時檔案會自動刪除,所以在我們進行查詢的時候,是感覺不到該檔案的存在。本題要求同學觀察臨時檔案的建立、寫入和刪除過程。

5)新建資料庫test,並在test資料庫中新建表student(同實驗1-1),通過查詢sys.master_files檢視定位test.mdf、test_log.ldf檔案,並手動刪除這兩個檔案。重新建立資料庫test,系統提示“test資料庫已存在”。

6)插入2行相同資料,為什麼就出故障了?

實驗要求 1.同學們可以三五人組隊,討論出解決方案後獨立上機完成; 2.記錄實驗過程,並對各活動(包括錯誤活動)作分析說明。

問題解決方案: 1)如何在不關閉SQL Server例項(即SSMS)的情況下,將資料庫的相關檔案拷貝給對方? 答:在SSMS選中自己的資料庫,右鍵—任務—分離,在檔案中找到mdf和ldf檔案,並U盤拷貝到對方電腦上進行恢復資料庫的操作

2) 對於“利用對方完整的資料庫檔案在自己的SQL Server例項中匯入對方的資料庫”,如何通過SSMS圖形化方式和sql語句方式來實現之? 答:SSMS圖形化方式:在物件資源管理器中的資料庫檔案中進行恢復操作,參考實驗1.1,依據完整性備份的特性,進行資料和日誌檔案的恢復。

3.建立school資料庫和student表 1)按照實驗要求做相應操作之後(資料檔案school.mdf檔案設定為固定大小3MB,允許增長的最大值為4MB)輸入第一條SQL語句之後結果如圖 輸入: declare @i int declare @j int set @i = 1 set @j = 1 while @i <= 20000 begin insert into [school].[dbo].[student] values (@i, 'Sheldon', @j, 'Computer Science', 'Class 2') set @i = @i + 1 set @j = @j + 1 end

顯示報錯

2)第二條語句情況如下: 輸入: declare @i int declare @j int set @i = 20001 set @j = 5 while @i <= 30000 begin insert into [school].[dbo].[student] values (@i, 'Katherine', @j, 'Information Management', 'Class 3') set @i = @i + 1 set @j = @j + 1 end 一行也插不進去

問題:找臨時檔案的時候遇到執行SQL語句之後,關閉SSMS之後,臨時檔案目錄沒有變化的情況,這裡可能是因為沒有顯示隱藏檔案的問題,顯示之後觀察到了前後變化。

思考: 臨時檔案,相當於記憶體到磁碟的一個緩衝區域,在記憶體中臨時儲存使用者的輸入輸出,在正式儲存之後才將資料移到硬碟上,以節省更改內容的時間。

5.新建資料庫test,建立新表student,查詢sys.master_files檢視定位test.mdf、test_log.ldf檔案,並手動刪除這兩個檔案

問題:資料表中有兩條完全相同的記錄是否有意義以及使用主鍵的必要性。

思考:資料表中兩條完全相同的記錄是一種冗餘,在同一個表當中是不希望看到的情況,因為這樣會造成大量空間浪費,而且同時我們也無法確定相同記錄的歸屬是否有不同,容易造成出錯。 由於主鍵的唯一性,我們可以很好的通過主鍵作為索引,來查詢不同使用者或者情況對應的資訊

相關文章