第六章: 建立資料庫
章節概覽 6.1 資料庫的組成 6.2 利用Enterprise Manager建立資料庫 6.3 以 SQL指令建立資料庫 6.4 修改資料庫的選項與設定 6.5 刪除資料庫 6.6 卸離與附加資料庫
6.1 資料庫的組成 SQL Server 2000資料庫的構成架構 MDF : Main Data File 檔 LDF MDF : Main Data File LDF : Log Data File
Data Information Knowledge 建立資料庫前的規劃 規劃資料庫的容量 設定使用者對於資料庫的使用權限 (資料庫擁有者 dbo , Database Owner) 定期備份資料庫的資料 了解資料庫建立的目的,以及建立資料庫的種類 與如何使用資料庫的資料 Data Information Knowledge
6.2 利用Enterprise Manager 建立資料庫 6.2.1 系統資料庫 master 資料庫(系統資料庫 ) model資料庫(系統資料庫 ) msdb資料庫(系統資料庫 ) tempdb資料庫(系統資料庫 ) Northwind資料庫(for user) pubs資料庫(for user)
SQL SERVER 2000 資料庫預設大小 資料庫檔案 實體檔名 預設大小,典型設定 master 主要資料 Master.mdf 11.0 MB master 記錄檔 Mastlog.ldf 1.25 MB tempdb 主要資料 Tempdb.mdf 8.0 MB tempdb 記錄檔 Templog.ldf 0.5 MB model 主要資料 Model.mdf 0.75 MB(4種中,最小者) model 記錄檔 Modellog.ldf 0.75 MB msdb 主要資料 Msdbdata.mdf 12.0 MB msdb 記錄檔 Msdblog.ldf 2.25 MB
(1). master 資料庫 記錄了 SQL Server 系統的所有系統層級資訊 所有的登入帳戶與所有的系統組態設定,鎖定狀態 所有其他資料庫的存在狀態,以及包含使用者資料 庫初始化資訊的主要檔案位置 注意:一定有最近的 master 備份
(2). model 資料庫 可作為建立於系統中的所有資料庫範本 當您提出 CREATE DATABASE 陳述式時,資料庫的 第一部份將透過複製 model 資料庫的內容來建立, 接著再將新資料庫的其他部分填入空白頁。
(3). msdb 資料庫 由「SQL Server 代理程式」用來排程警示與作業, 並記錄運算子等用途。
(4). Tempdb資料庫 包含了所有的暫存資料表與暫存的預存程序。 例如: SQL Server 所產生的工作資料表 連線至系統的所有使用者之暫存資料表與預存程序都儲存於 此 每次 SQL Server 啟動時,tempdb 都會重新建立,以便讓系統 從一個初始狀態的資料庫副本開始執行 依預設值,在 SQL Server 執行時,tempdb 會視需要自動成長 。 但是它與其他資料庫不同,每次重新啟動資料庫引擎時, 它都會重設回初始大小。 如果為 tempdb 定義的大小太小,每 次重新 SQL Server 時,為了將 tempdb 自動成長到支援工作負 載所需的大小,系統處理負載會被這些工作佔用。 使用 ALTER DATABASE 增加 tempdb 的大小,就可以避免這個附加 性。
6.2.2 建立自訂資料庫
建立資料庫的資料檔案選項設定
建立資料庫所需設定的屬性 檔案名稱 位置(MDF , LDF 可置於不同硬碟中) 初始大小 檔案自動成長 限制檔案成長
6.3.3 利用CREATE DATABASE建立資料庫 6.3 以SQL指令建立資料庫 6.3.3 利用CREATE DATABASE建立資料庫 CREATE DATABASE discuss GO
CREATE DATABASE 完整語法: 檔案類型 副檔名 主要資料檔 .mdf 次要資料檔 .ndf 交易記錄檔 .ldf CREATE DATABASE database_name [ ON [ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ] ] [ LOG ON { < filespec > [ ,...n ] } ] [ COLLATE collation_name ] [ FOR LOAD | FOR ATTACH ] < filespec > ::= [ PRIMARY ] ( [ NAME = logical_file_name , ] FILENAME = 'os_file_name' [ , SIZE = size ] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,...n ] < filegroup > ::= FILEGROUP filegroup_name < filespec > [ ,...n ] 檔案類型 副檔名 主要資料檔 .mdf 次要資料檔 .ndf 交易記錄檔 .ldf
建立資料庫所需設定的屬性 NAME FILENAME SIZE MAXSIZE FILEGROWTH
6.3.4 一個資料庫有多個資料檔(第2個為 .NDF) 可以在SQL指令中再指定一個檔案 效能的瓶頸會降到最低 利用檔案群組指定資料存放的地點 參考: 範例6.9 注意:D-DISK 目錄應先建立OK
6.3.5 設定資料庫的編碼排序方式 Collation Case Sensitive (CS) Accent Sensitive (AS) Kana Sensitive Width Sensitive
6.3.6 設定資料庫的檔案群組 利用檔案群組指定某個資料表是儲存在哪一個檔 案中
6.4 修改資料庫的選項與設定(Enterprise Manager) 限制存取 唯讀 模型 自動關閉
6.4.2 修改資料庫的選項與設定(Query Analyzer) exec sp_dboption pubs SELECT DATABASEPROPERTYEX('Northwind', 'Collation') EXEC sp_dboption 'pubs', 'read only', 'FALSE'
6.5 刪除資料庫 先確認資料庫有無連線 利用kill將連線清除 DROP DATABASE 資料庫名稱 將資料庫刪除
6.6卸離資料庫(Detach)與附加資料庫(Attach) 將資料庫定義從master中移除 資料檔案還是存在
附加資料庫(Attach) 將資料庫定義從master中加入 將資料檔案附加進來
本章學習成果 要新增資料到資料庫之前,必須先建立資料庫 資料庫設定,可以設定其初始資料 每個資料庫可以設定獨立的編碼排序方式 一個資料庫可以有多個資料檔,也可以有多個 檔案群組 刪除資料庫與卸離資料庫的不同