1 / 53

第 8 章 建立資料庫

第 8 章 建立資料庫. 課前指引 由於 SQL Server 是一種大型的資料庫管理系統,不像一般辦公室人員所使用的小型資料庫 ACCESS ,所儲存的資料量不會過於龐大。 SQL Server 是屬於企業級的用戶使用,所以資料的成長會非常快速與龐大;因此,在建立資料庫之初必須先瞭解 SQL Server 的底層架構,也就是檔案系統的檔案與資料庫之間的對應關係,以及如何有效擴展底層檔案,用以擴充上層資料庫用戶的儲存空間。. 章節大綱. 8-1 SQL Server 的相關資料庫. 8-4 更改資料庫. 8-2 建立資料庫前的觀念. 8-5 刪除資料庫.

Download Presentation

第 8 章 建立資料庫

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第8章 建立資料庫 課前指引 由於SQL Server是一種大型的資料庫管理系統,不像一般辦公室人員所使用的小型資料庫ACCESS,所儲存的資料量不會過於龐大。SQL Server是屬於企業級的用戶使用,所以資料的成長會非常快速與龐大;因此,在建立資料庫之初必須先瞭解SQL Server的底層架構,也就是檔案系統的檔案與資料庫之間的對應關係,以及如何有效擴展底層檔案,用以擴充上層資料庫用戶的儲存空間。

  2. 章節大綱 8-1 SQL Server的相關資料庫 8-4 更改資料庫 8-2 建立資料庫前的觀念 8-5 刪除資料庫 8-3 建立資料庫 備註:可依進度點選小節

  3. 8-1 SQL Server的相關資料庫

  4. 8-1 SQL Server的相關資料庫 • 【物件總管】 可分為三大類的資料庫 • 『系統資料庫』 • AdventureWorks系列的 『範例資料庫』 • 『使用者自建資料庫』

  5. 8-1 SQL Server的相關資料庫 • 系統資料庫: • master: • 系統層級的資料庫,核心資料庫 • model: • 樣版資料庫 • msdb: • 讓『SQL Server Agent』服務所使用的資料庫 • tempdb: • 全域性的資料庫

  6. 8-1 SQL Server的相關資料庫 • master • 屬於系統層級的資料庫,也就是一個核心資料庫 • 如果此資料庫損毀,MS SQL Server也將無法正常啟動 • 其中所記錄的包括登入帳號、被管理的端點伺服器(endpoints)、分散式處理中被鏈結的伺服器(linked servers)以及SQL Server系統的所有設定項目 • 除此之外,master資料庫中也記錄了在SQL Server中的所有資料庫資訊,包括這些資料庫的實體檔案位置和SQL Server的初始資訊

  7. 8-1 SQL Server的相關資料庫 • model • 『model』資料庫的目的是當成所有新建資料庫所參考的一個樣版資料庫 • 在新增一個資料庫時,系統會參考此model資料庫來新增出新的資料庫 • 例如在model資料庫中新增一個名為testTBL的資料表;以後使用者新增出來的所有資料庫內都會有testTBL資料表

  8. 8-1 SQL Server的相關資料庫 • msdb • 讓『SQL Server Agent』服務所使用的,讓此代理程式(Agent)記錄排程警告、排程作業和其他相關作業之用

  9. 8-1 SQL Server的相關資料庫 • tempdb • 『tempdb』是一個全域性的資料庫 • 可以提供給使用者暫時儲存資料的一個資料庫,或是使用者在經過龐大資料計算時暫存的一個資源 • 存於此資料庫內的資料都是暫存性的,如果系統重新啟動之後,所有的資料將會全部被清除掉

  10. 8-1 SQL Server的相關資料庫 • 範例資料庫 • 微軟公司所研發的SQL Server產品,一直以來都會內附範例資料庫(AdventureWorks),提供給一般學習資料庫者可以透過範例資料庫來學習 • SQL Server 2008在安裝時,預設已不再自動安裝 • 使用者可自行至CodePlex網址( http://codeplex.com/SqlServerSamples )下載安裝

  11. 8-1 SQL Server的相關資料庫 • 安裝微軟的範例資料庫AdventureWorks系列,會出現以下畫面,也就是告知使用者在安裝此範例程式時,必須先符合以下兩項要求

  12. 8-1 SQL Server的相關資料庫 • 必須安裝全文檢索功能並啟動 • 【Microsoft SQL Server 2008】\【組態工具】\【SQL Server組態管理員】\【SQL Server服務】\啟動『SQL Full-text Filter Daemon Launcher』

  13. 8-1 SQL Server的相關資料庫 • 必須啟動FILESTREAM • 【Microsoft SQL Server 2008】\【組態工具】\【SQL Server組態管理員】\【SQL Server服務】\【SQL Server】服務上按右鍵,選【內容】\點選【FILESTREAM】頁籤\勾選【啟用FILESTREAM的Transact-SQL存取(E)】

  14. 8-2 建立資料庫前的觀念

  15. 8-2 建立資料庫前的觀念 • 對於使用者或資料庫設計人員而言,資料是儲存在一個邏輯概念上的『資料庫』 • 實際上,這些資料是以『檔案』形式儲存於儲存體(例如硬碟) • 由作業系統管理的『檔案系統』,經由『資料庫管理系統』的對應

  16. 8-2 建立資料庫前的觀念 • SQL Server的實體檔案類型 SQL Server的管理方式在檔案的部份可分為 • 『邏輯檔案名稱』(logic_file_name) • SQL Server 資料庫管理系統所掌控 • 『作業系統檔案名稱』(os_file_name), • 由作業系統來掌控

  17. 8-2 建立資料庫前的觀念 • 『作業系統檔案』,可區分為兩大類型,分別為『記錄檔』(log file)與『資料檔』(data file )兩種 • 『記錄檔』(log file)又稱為『交易記錄檔』,主要是儲存使用者所有的交易過程,目的在預防資料庫管理系統在非毀壞性故障時,能透過此檔案將交易正常恢復 • SQL Server 2005以前版本的『資料檔』只有一種類型;而今SQL Server 2008的『資料檔』可分為兩類:『資料列資料』與『檔案資料流資料』(FILESTREAM) 『作業系統檔案』

  18. 8-2 建立資料庫前的觀念 • SQL SERVER的檔案類型

  19. 8-2 建立資料庫前的觀念 • SQL Server的檔案群組 • 『檔案群組』(filegroup)可以將散佈在不同硬碟中的檔案歸納成一個群組 • 也就是說,一個『檔案群組』的檔案可以分佈在不同的實體硬碟 • 倘若有一個資料量很大且經常被存取的資料表,可以將此資料表配置於一個『檔案群組』,再新增幾個檔案於不同的實體硬碟 • 當資料在存取時,實體硬碟可以同時進行搜尋資料,所以在效率上可以較為快速

  20. 8-2 建立資料庫前的觀念 • 例如,『檔案01』、『檔案02』與『檔案04』歸屬於『檔案群組G1』 • 再將『產品資料表』指定存放到『檔案群組G1』 • 這樣系統就會將『產品資料表』的資料分散儲存於這三個檔案 • 搜尋『產品資料表』內的資料,由於三部磁碟機是獨立作業,這將會提升查詢上的效益

  21. 8-3 建立資料庫

  22. 8-3 建立資料庫 • 範例8-1 • 給定一個資料庫名稱,其他使用系統之預設值來建立資料庫 • 範例8-2 • 建立兩個『資料列資料檔』與兩個『記錄檔』,並設定檔案的『自動成長』參數 • 範例8-3 • 利用多個檔案群組來建立資料庫

  23. 8-3 建立資料庫 • 【範例8-1】 • 利用SQL Server的預設值,新建『圖書借閱管理8-1』的資料庫,內容如下表規格 • 【範例8-2】 • 新建『圖書借閱管理8-2』的資料庫,在『主要檔案群組』(Primary Filegroup)下建立兩個『資料列資料檔』、兩個『交易記錄檔』(log file),以及使用相同的成長參數,內容如下表規格

  24. 8-3 建立資料庫 • 【範例8-3】 • 新建『圖書借閱管理8-3』的資料庫,利用預設的『主要檔案群組』(Primary Filegroup),並另建兩個『檔案群組』,分別為G1以及G2,另外有兩個『交易記錄檔』,以及使用相同的檔案『自動成長』參數,內容如下表規格 續

  25. 8-3 建立資料庫 • 在此可將較複雜的【範例8-3】表示成下圖

  26. 8-3 建立資料庫 • 【範例8-1】step1 利用SQL Server的預設值, 新建『圖書借閱管理8-1』的資料庫, 內容如下表規格

  27. 8-3 建立資料庫 Step2: 【檔案名稱】分別為『圖書借閱管理8-1.MDF』和 『圖書借閱管理8-1_log.LDF』

  28. 8-3 建立資料庫 • 【範例8-2】 新建『圖書借閱管理8-2』的資料庫 內容如下表規格 前面步驟如同範例8-1 step1:

  29. 8-3 建立資料庫 Step2:點選每一個檔案中【自動成長】的按鍵

  30. 8-3 建立資料庫 • 【範例8-3】前面步驟如同範例8-2step1: 新建『圖書借閱管理8-3』的資料庫 內容如下表規格

  31. 8-3 建立資料庫 Step2:

  32. 8-3 建立資料庫 • 利用SQL之CREATE DATABASE建立資料庫 執行SQL語法的地方

  33. 8-3 建立資料庫 • 建立資料庫(CREATE DATABASE)之語法: CREATE DATABASE database_name [ ON [ PRIMARY ] ← 主要群組 [ <filespec> [ ,...n ] ← 在主要群組下的檔案群定義 [ , <filegroup> [ ,...n ] ] ← 其他群組和其所屬之檔案群定義 [ LOG ON { <filespec> [ ,...n ] } ] ← 系統日誌檔之定義 ] ]

  34. 8-3 建立資料庫 • 【範例8-1】 建立『圖書借閱管理8-1』資料庫 CREATE DATABASE [圖書借閱管理8-1]

  35. 8-3 建立資料庫 • 【範例8-2】 建立『圖書借閱管理8-2』資料庫 必須先建立『C:\8-2』與『D:\8-2』目錄來儲存實體檔案, DML語言不會主動建立OS的系統檔案目錄 CREATE DATABASE [圖書借閱管理8-2] ON PRIMARY (name=P1,filename='C:\8-2\P1.MDF',size=5MB,maxsize=5GB,filegrowth=10%), (name=P2,Filename='D:\8-2\P2.NDF',size=5MB,maxsize=5GB,filegrowth=10%) LOG ON (name=Log1,filename='C:\8-2\Log1.LDF',size=5MB,maxsize=5GB,filegrowth=10%), (name=Log2,filename='D:\8-2)Log2.LDF',size=5MB,maxsize=5GB,filegrowth=10%)

  36. 8-3 建立資料庫 • 【範例8-3】 建立『圖書借閱管理8-3』資料庫 CREATE DATABASE [圖書借閱管理8-3] ON PRIMARY (name=P1,filename='C:\8-3\P1.MDF',size=5MB,maxsize=5GB,filegrowth=10%), (name=P2,Filename='D:\8-3\P2.NDF',size=5MB,maxsize=5GB,filegrowth=10%), FILEGROUP G1 (name=G11,filename='C:\8-3\G11.NDF',size=5MB,maxsize=5GB,filegrowth=10%), (name=G12,filename='D:\8-3\G12.NDF',size=5MB,maxsize=5GB,filegrowth=10%), FILEGROUP G2 (name=G21,filename='C:\8-3\G21.NDF',size=5MB,maxsize=5GB,filegrowth=10%), (name=G22,filename='D:\8-3\G22.NDF',size=5MB,maxsize=5GB,filegrowth=10%) LOG ON (name=Log1,filename='C:\8-3\Log1.LDF',size=5MB,maxsize=5GB,filegrowth=10%), (name=Log2,filename='D:\8-3\Log2.LDF',size=5MB,maxsize=5GB,filegrowth=10%)

  37. 8-3 建立資料庫 • 組織CREATE DATABASE的語法結構 • 第一區塊為『主要檔案群組』 • 第二區塊為『G1』檔案群組 • 第三區塊為『G2』檔案群組 • 第四區塊為交易記錄檔

  38. 8-3 建立資料庫 • CREATE DATABASE [圖書借閱管理8-3] • ON PRIMARY • (name=P1,filename='C:\8-3\P1.MDF',size=5MB,maxsize=5GB,filegrowth=10%), • (name=P2,Filename='D:\8-3\P2.NDF',size=5MB,maxsize=5GB,filegrowth=10%), • FILEGROUP G1 • (name=G11,filename='C:\8-3\G11.NDF',size=5MB,maxsize=5GB,filegrowth=10%), • (name=G12,filename='D:\8-3\G12.NDF',size=5MB,maxsize=5GB,filegrowth=10%), • FILEGROUP G2 • (name=G21,filename='C:\8-3\G21.NDF',size=5MB,maxsize=5GB,filegrowth=10%), • (name=G22,filename='D:\8-3\G22.NDF',size=5MB,maxsize=5GB,filegrowth=10%) • LOG ON • (name=Log1,filename='C:\8-3\Log1.LDF',size=5MB,maxsize=5GB,filegrowth=10%), • (name=Log2,filename='D:\8-3\Log2.LDF',size=5MB,maxsize=5GB,filegrowth=10%) (1) (2) (3) (4)

  39. 8-4 更改資料庫

  40. 8-4 更改資料庫 • 圖形介面更改資料庫step1: • 【範例8-4】 【範例8-2】建立後的結果再擴建 兩個群組G1與G2,分別各有兩個 檔案G11、G12以及G21、G22, 最後結果會和【範例8-3】一樣

  41. 8-4 更改資料庫 Step2:

  42. 8-4 更改資料庫 Step3:

  43. 8-4 更改資料庫 • 利用SQL之ALTER DATABASE更改資料庫 • 更改資料庫(ALTER DATABASE)之語法(Syntax): ALTER DATABASE database_name { ADD FILE <filespec> [ ,...n ] [ TO FILEGROUP { filegroup_name | DEFAULT } ] | ADD LOG FILE <filespec> [ ,...n ] | REMOVE FILE logical_file_name | MODIFY FILE <filespec> | ADD FILEGROUP filegroup_name | REMOVE FILEGROUP filegroup_name | MODIFY FILEGROUP filegroup_name | MODIFY NAME = new_database_name } [;]

  44. 8-4 更改資料庫 • 【範例8-5】 依據以下的資料庫規格,先建立一個初始名為 『圖書借閱管理8-5』的資料庫,再透過ALTER DATABASE來擴充及改變原有的資料庫,成為另一個新的資料庫規格 • CREATE DATABASE [圖書借閱管理8-5] • ON PRIMARY • (name=P1,filename='C:\8-5\P1.MDF',size=5MB,maxsize=5GB,filegrowth=10%) • LOG ON • (name=Log1,filename='C:\8-5\Log1.LDF',size=5MB,maxsize=5GB,filegrowth=10%)

  45. 8-4 更改資料庫 分為兩次來建立G1與G2的檔案群組 [新增檔案群組 G1] – 使用ADD FILEGROUP ALTER DATABASE [圖書借閱管理8-5] ADD FILEGROUP G1 [新增檔案群組 G2] – 使用ADD FILEGROUP 與 REMOVE FILEGROUP --不小心將檔案群組名稱G2打成G5 ALTER DATABASE [圖書借閱管理8-5] ADD FILEGROUP G5 --刪除錯誤的檔案群組名稱G5 ALTER DATABASE [圖書借閱管理8-5] REMOVE FILEGROUP G5 ALTER DATABASE [圖書借閱管理8-5] ADD FILEGROUP G2

  46. 8-4 更改資料庫 [同時新增兩個檔案(G11、G12)至 檔案群組 G1] –使用ADD FILE [同時新增兩個檔案(G21、G22)至 檔案群組 G2] –使用ADD FILE • ALTER DATABASE [圖書借閱管理8-5] • ADD FILE (name=G11,filename='C:\8-5\G11.NDF',size=5MB,maxsize=10GB,filegrowth=20%), • (name=G12,filename='D:\8-5\G12.NDF',size=5MB,maxsize=10GB,filegrowth=20%) • TO FILEGROUP G1 • ALTER DATABASE [圖書借閱管理8-5] • ADD FILE (name=G21,filename='C:\8-5\G21.NDF',size=5MB,maxsize=10GB,filegrowth=20%), • (name=G22,filename='D:\8-5\G22.NDF',size=5MB,maxsize=10GB,filegrowth=20%) • TO FILEGROUP G2

  47. 8-4 更改資料庫 [新增一個檔案到PRIMARY群組]–使用ADD FILE [注意] 由於PRIMARY是保留字,所以要用中括弧 [ ] 前後括起來,否則會發生語法錯誤 [新增一個記錄檔]–使用ADD LOG FILE • ALTER DATABASE[圖書借閱管理8-5] • ADD FILE (namALTER DATABASE e=P2,Filename='D:\8-5\P2.NDF',size=5MB,maxsize=10GB,filegrowth=20%) • TO FILEGROUP [PRIMARY] • ALTER DATABASE [圖書借閱管理8-5] • ADD LOG FILE (name=Log2,filename='D:\8-5\Log2.LDF',size=5MB,maxsize=10GB,filegrowth=20%)

  48. 8-4 更改資料庫 [變更原本已建立的檔案格式]–使用MODIFY FILE [更改資料庫名稱]–使用MODIFY NAME 若是覺得『圖書借閱管理8-5』每次都要使用中括弧很麻煩,那就可以透過更改資料庫名稱方式解決,以後任何的操作就不用再刻意使用中括弧 • ALTER DATABASE [圖書借閱管理8-5] • MODIFY FILE (name=P1,maxsize=10GB,filegrowth=20%)  • ALTER DATABASE [圖書借閱管理8-5] • MODIFY FILE (name=Log1,maxsize=10GB,filegrowth=20%)  • ALTER DATABASE [圖書借閱管理8-5] • MODIFY NAME=圖書借閱管理85

  49. 8-5 刪除資料庫

  50. 8-5 刪除資料庫 • 圖形介面刪除資料庫

More Related