SQL第05章數(shù)據(jù)庫的創(chuàng)建與管理.ppt
《SQL第05章數(shù)據(jù)庫的創(chuàng)建與管理.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《SQL第05章數(shù)據(jù)庫的創(chuàng)建與管理.ppt(37頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第 5章 數(shù)據(jù)庫的創(chuàng)建和管理 5.1 數(shù)據(jù)庫 簡(jiǎn)介 5.2 估算數(shù)據(jù)庫的空間需求 5.3 數(shù)據(jù)庫的 創(chuàng)建 5.4 數(shù)據(jù)庫的管理 5.5設(shè)置 數(shù)據(jù)庫選項(xiàng) 返回目錄 2 5.1 數(shù)據(jù)庫簡(jiǎn)介 數(shù)據(jù)庫創(chuàng)建的過程就是數(shù)據(jù)庫邏輯設(shè)計(jì)的物理實(shí)現(xiàn)過程。如 果能根據(jù) ERA模型并結(jié)合單位的實(shí)際情況創(chuàng)建出一個(gè)性能優(yōu) 異、結(jié)構(gòu)合理并具有良好擴(kuò)充性能的數(shù)據(jù)庫,將會(huì)為后在數(shù) 據(jù)庫基礎(chǔ)上開發(fā)應(yīng)用程序奠定堅(jiān)實(shí)的基礎(chǔ),這是數(shù)據(jù)庫管理 最重要、最核心的問題。 數(shù)據(jù)庫的創(chuàng)建主要包括數(shù)據(jù)庫及其表、索引、視圖、存儲(chǔ)過 程等對(duì)象的創(chuàng)建。 創(chuàng)建數(shù)據(jù)庫時(shí) ,系統(tǒng)會(huì)建立數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)。 數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)分
2、為邏輯存儲(chǔ)結(jié)構(gòu)和物理存儲(chǔ)結(jié)構(gòu)兩種。 數(shù)據(jù)庫的邏輯存儲(chǔ)結(jié)構(gòu)指的是數(shù)據(jù)庫是由哪些性質(zhì)的信息所 組成 。 實(shí)際上, SQL Server的數(shù)據(jù)庫是由諸如表、視圖、 索引等各種不同的數(shù)據(jù)庫對(duì)象所組成。 3 數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)是討論數(shù)據(jù)庫文件是如何在磁盤上存 儲(chǔ)的,數(shù)據(jù)庫在磁盤上是以文件為單位存儲(chǔ)的,由 數(shù)據(jù)庫文 件和事務(wù)日志文件 組成, 一個(gè)數(shù)據(jù)庫至少應(yīng)該包含一個(gè)數(shù)據(jù) 庫文件和一個(gè)事務(wù)日志文件 。 1主數(shù)據(jù)庫文件 ( Primary Database File) 一個(gè)數(shù)據(jù)庫可以有一個(gè)或多個(gè)數(shù)據(jù)庫文件,一個(gè)數(shù)據(jù)庫文件 只能屬于一個(gè)數(shù)據(jù)庫。當(dāng)有多個(gè)數(shù)據(jù)庫文件時(shí), 有一個(gè)文件 被定義為主
3、數(shù)據(jù)庫文件(簡(jiǎn)稱為主文件),其擴(kuò)展名為 mdf。 主數(shù)據(jù)庫文件用來存儲(chǔ)數(shù)據(jù)庫的啟動(dòng)信息以及部分或者全部 數(shù)據(jù),是所有數(shù)據(jù)庫文件的起點(diǎn),包含指向其它數(shù)據(jù)庫文件 的指針。一個(gè)數(shù)據(jù)庫只能有一個(gè)主數(shù)據(jù)庫文件。 2輔助數(shù)據(jù)庫文件 ( Secondary Database File) 用于存儲(chǔ)主數(shù)據(jù)庫文件中未存儲(chǔ)的剩余數(shù)據(jù)和數(shù)據(jù)庫對(duì)象, 一個(gè)數(shù)據(jù)庫可以沒有輔助數(shù)據(jù)庫文件,但也可以同時(shí)擁有多 個(gè)輔助數(shù)據(jù)庫文件。 輔助數(shù)據(jù)庫文件的擴(kuò)展名為 ndf(簡(jiǎn)稱為輔助文件)。 4 5.1.1 數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu) 1.盤區(qū)和頁面 在創(chuàng)建數(shù)據(jù)庫對(duì)象時(shí) ,SQL Server會(huì)使用盤區(qū)和頁面這種特
4、殊的數(shù)據(jù)結(jié)構(gòu)給數(shù)據(jù)庫對(duì)象分配空間。 在 SQL中, 數(shù)據(jù)存儲(chǔ)的基本單位是 頁 。頁的大小是 8KB,這 樣數(shù)據(jù)庫上每一兆字節(jié)是 128頁。每頁的開始部分是 96B的 頁首,用于存放系統(tǒng)信息,如頁的類型、頁的可用空間、 占據(jù)該頁的數(shù)據(jù)庫對(duì)象的對(duì)象標(biāo)識(shí)等。 頁有數(shù)據(jù)頁、索引 頁、文本 /圖象頁等 6種( P74)。 盤區(qū)(區(qū)域)是連續(xù) 8個(gè)頁,可防止數(shù)據(jù)產(chǎn)生碎片,使 SQL 易于尋找。 SQL有兩種盤區(qū)組織頁面:?jiǎn)我粎^(qū)域和混合區(qū)域。 單一區(qū)域用于一個(gè)對(duì)象,混合區(qū)域用于多個(gè)小對(duì)象。 事務(wù)日志不被分成頁和區(qū)域,而是包含已修改數(shù)據(jù)的清單, 按先來先服務(wù)的原則組織。 5 2.文件組
5、文件組是文件的集合。對(duì)文件進(jìn)行分組,便于進(jìn)行數(shù)據(jù)的 管理和分配磁盤空間。例如有三個(gè)數(shù)據(jù)文件 data1.ndf,data2.ndf,data3.ndf,分別位于不同的磁盤上,將 這三個(gè)文件指派到文件組 filegroup1中。假設(shè)在文件組 filegroup1上創(chuàng)建一個(gè)表,對(duì)表中數(shù)據(jù)的查詢將會(huì)分散到三 個(gè)磁盤上,從而提高系統(tǒng)的查詢性能。 文件和文件組的設(shè)計(jì)規(guī)則 : 文件和文件組不能由一個(gè)以上的數(shù)據(jù)庫使用 ; 文件只能是一個(gè)文件組的成員 ; 事務(wù)日志文件文件不屬于任何一個(gè)文件組。 注意: 數(shù)據(jù)和事務(wù)日志不能屬于同一文件或文件組。數(shù) 據(jù)文件和日志文件總是分開存放的。 6 主文件組
6、中包含了所有的系統(tǒng)表 , 當(dāng)建立數(shù)據(jù)庫時(shí) , 主文件組 包括主數(shù)據(jù)庫文件和未指定組的其他文件 。 用戶定義文件組中可以指定一個(gè)缺省文件組 , 那么在創(chuàng)建數(shù)據(jù) 庫對(duì)象時(shí)如果沒有指定將其放在哪一個(gè)文件組中 , 就會(huì)將它放 在缺省文件組中 。 如果沒有指定缺省文件組 , 則主文件組為缺 省文件組 。 一個(gè)文件只能存在于一個(gè)文件組中 , 一個(gè)文件組也只能被一個(gè) 數(shù)據(jù)庫使用;日志文件是獨(dú)立的 , 它不能作為任何文件組的成 員 。 5.1.2 事務(wù)日志文件 SQL創(chuàng)建數(shù)據(jù)庫的時(shí)候 ,會(huì)同時(shí)創(chuàng)建事務(wù)日志文件。 事務(wù)日志文件存儲(chǔ)數(shù)據(jù)庫的更新情況等事務(wù)日志信息 , 當(dāng)數(shù) 據(jù)庫損壞時(shí),管理員使用
7、事務(wù)日志恢復(fù)數(shù)據(jù)庫。 每一個(gè)數(shù)據(jù)庫至少必須擁有一個(gè)事務(wù)日志文件, 而且允許擁有 多個(gè)日志文件。 事務(wù)日志文件的擴(kuò)展名為 ldf,日志文件的大小 至少是 512KB。 7 1. 事務(wù)日志文件和數(shù)據(jù)文件必須分開存放,優(yōu)點(diǎn)如下 : 事務(wù)日志文件可以單獨(dú)備份; 有可能從服務(wù)器失效的事件中將服務(wù)器恢復(fù)到最近的 狀態(tài); 事務(wù)日志不會(huì)搶占數(shù)據(jù)庫的空間; 可以很容易地監(jiān)測(cè)到事務(wù)日志的空間; 在向數(shù)據(jù)文件和事務(wù)日志文件寫入數(shù)據(jù)時(shí)會(huì)產(chǎn)生較少 的沖突,這有利于提高 SQL的性能。 SQL Server事務(wù)日志采用提前寫入的方式 。 2. 事務(wù)日志的工作過程 在 SQL中,事務(wù)
8、是一次完成的操作的集合。雖然一個(gè)事務(wù) 中可能包含了很多 SQL語句,但在處理上就象他們是同一 個(gè)操作似的。 為了維護(hù)數(shù)據(jù)的完整性,事務(wù)必須徹底完成或者根本不執(zhí) 行。如果一個(gè)事務(wù)只是部分地被執(zhí)行,并作用于數(shù)據(jù)庫, 那么數(shù)據(jù)庫將可能被損壞或數(shù)據(jù)的一致性遭到破壞。 8 SQL Server使用數(shù)據(jù)庫的事務(wù)日志來防止沒有完成的事務(wù) 破壞數(shù)據(jù)。 事務(wù)日志的工作過程 : 應(yīng)用程序發(fā)出一個(gè)修改數(shù)據(jù)庫中的對(duì)象的事務(wù); 當(dāng)這個(gè)事務(wù)開始時(shí),事務(wù)日志會(huì)記錄一個(gè)事務(wù)開始標(biāo)志, 并將被影響的數(shù)據(jù)頁從磁盤讀入緩沖區(qū); 事務(wù)中每個(gè)數(shù)據(jù)更改語句都被記錄在日志文件中,日志 文件將記錄一個(gè)提交事務(wù)的標(biāo)記。
9、每一個(gè)事務(wù)都會(huì)以這 種方式記錄在事務(wù)日志中并被立即寫到硬盤上。 在緩沖區(qū)中修改相應(yīng)的數(shù)據(jù)。這些數(shù)據(jù)一直在緩沖區(qū)中, 在檢查點(diǎn)進(jìn)程發(fā)生時(shí),檢查點(diǎn)進(jìn)程把所有修改過的數(shù)據(jù) 頁寫到數(shù)據(jù)庫中,并在事務(wù)日志中寫入一個(gè)檢查點(diǎn)標(biāo)志, 這個(gè)標(biāo)志用于在數(shù)據(jù)庫恢復(fù)過程中確定事務(wù)的起點(diǎn)和終 點(diǎn)。以及哪些事務(wù)已經(jīng)作用于數(shù)據(jù)庫 了。 9 隨著數(shù)據(jù)庫數(shù)據(jù)的不斷變化,事務(wù)日志文件不斷增大。因 此,必須把它們備份出來,為更多的事務(wù)提供空間。備份 時(shí),事務(wù)日志文件會(huì)被截?cái)唷? 事務(wù)日志文件包含有在系統(tǒng)故障下恢復(fù)數(shù)據(jù)庫需要的所有 信息。一般來說,事務(wù)日志文件的初始大小是以數(shù)據(jù)文件 大小的 10%到 25%為起點(diǎn)的,根據(jù)
10、數(shù)據(jù)增長的情況和修改 的頻率進(jìn)行調(diào)整。 注意: SQL Server 2000中的數(shù)據(jù)和事務(wù)日志文件不能存放 在壓縮文件系統(tǒng)或象共享網(wǎng)絡(luò)目錄等遠(yuǎn)程的網(wǎng)絡(luò)驅(qū)動(dòng)器上。 SQL Server 2000的文件擁有兩個(gè)名稱,即邏輯文件名和物 理文件名。當(dāng)使用 Transact-SQL命令語句訪問某一個(gè)文件 時(shí),必須使用該文件的邏輯名 。 物理文件名是文件實(shí)際存儲(chǔ)在磁盤上的文件名,而且可包 含完整的磁盤目錄路徑。 本章首頁 10 5.2 估算數(shù)據(jù)庫的空間需求 作為數(shù)據(jù)庫管理員,主要任務(wù)之一就是創(chuàng)建數(shù)據(jù)庫,并且需 要為每個(gè)文件指定容量。必須盡可能準(zhǔn)確地估算數(shù)據(jù)庫容量, 以免浪費(fèi)磁盤空間資
11、源或者因估計(jì)不足造成數(shù)據(jù)庫的空間不 夠。 許多因素會(huì)影響數(shù)據(jù)庫最終的大小, 在估算數(shù)據(jù)庫容量時(shí)要 考慮如下因素: 每行記錄的大小; 記錄數(shù)量; 表的數(shù)量; 索引的數(shù)量及索引大小; 數(shù)據(jù)庫的對(duì)象的數(shù)量和大小; 事務(wù)日志的大??; 數(shù)據(jù)庫的計(jì)劃增加量; 本章首頁 11 5.3 創(chuàng)建數(shù)據(jù)庫 創(chuàng)建數(shù)據(jù)庫的三種方法: 1.使用向?qū)?chuàng)建數(shù)據(jù)庫 2.使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫 3.使用 Transact-SQL語言創(chuàng)建數(shù)據(jù)庫 5.3.1 創(chuàng)建數(shù)據(jù)庫的注意事項(xiàng) : 1. 創(chuàng)建數(shù)據(jù)庫需要一定許可,在默認(rèn)情況下,只有系統(tǒng) 管理員和數(shù)據(jù)庫擁有者可以創(chuàng)建數(shù)據(jù)庫。數(shù)據(jù)庫被
12、創(chuàng) 建后,創(chuàng)建數(shù)據(jù)庫的用戶自動(dòng)成為該數(shù)據(jù)庫的所有者。 2. 創(chuàng)建數(shù)據(jù)庫的過程實(shí)際上就是為數(shù)據(jù)庫設(shè)計(jì)名稱、設(shè) 計(jì)所占用的存儲(chǔ)空間和存放文件位置的過程等,數(shù)據(jù) 庫名字必須遵循 SQL Server命名規(guī)范。 3. 所有的新數(shù)據(jù)庫都是系統(tǒng)樣本數(shù)據(jù)庫 model的副本。 4. 單個(gè)數(shù)據(jù)庫可以存儲(chǔ)在單個(gè)文件上,也可以跨越多外 文件存儲(chǔ)。 12 5.數(shù)據(jù)庫的大小可以被增大或者收縮。 6.當(dāng)新的數(shù)據(jù)庫創(chuàng)建時(shí), SQL Server自動(dòng)更新 “ sysdatabases”系統(tǒng)表。 7.一臺(tái)服務(wù)器上最多可能創(chuàng)建 32767個(gè)數(shù)據(jù)庫。 5.3.2 使用 T-SQL語言創(chuàng)建數(shù)據(jù)庫 說明:在 Tra
13、nsact-SQL語言的命令格式中,用 括起來的內(nèi) 容表示是可選的; , n 表示重復(fù)前面的內(nèi)容;用 括起 來表示在實(shí)際編寫語句時(shí),用相應(yīng)的內(nèi)容替代;用 括起來 表示是必選的;類似 A|B的格式,表示 A和 B只能選擇一個(gè), 不能同時(shí)都選。 1. 創(chuàng)建數(shù)據(jù)庫的 SQL語句的語法格式 : CREATE DATABASE database_name ON PRIMARY , n , , n LOG ON , n FOR LOAD|FOR ATTACH 13 其中: ::= NAME=logical_file_name, FI
14、LENAME=os_file_name , SIZE=size , MAXSIZE=max_size|UNLIMITED , FILEGROWTH=growth_increment , n ::= FILEGROUP filegroup_name , n 各參數(shù)的含義 ( 如下 ) : database_name:新數(shù)據(jù)庫的名稱 。 數(shù)據(jù)庫名稱在服務(wù)器中必 須唯一 , 最長為 128個(gè)字符 , 并且要符合標(biāo)識(shí)符的命名規(guī)則 。 每個(gè)服務(wù)器管理的數(shù)據(jù)庫最多為 32767個(gè) 。 ON:指定存放數(shù)據(jù)庫的數(shù)據(jù)文件信息 。 列表用于定 義主文件組的數(shù)據(jù)文件 ,
15、 列表用于定義用戶文件組 及其中的文件 。 14 PRIMARY:用于指定主文件組中的文件 。 主文件組的第一 個(gè)由 指定的文件是主文件 。 如果不指定 PRIMARY 關(guān)鍵字 , 則在命令中列出的第一個(gè)文件將被默認(rèn)為主文件 。 LOG ON:指明事務(wù)日志文件的明確定義 。 如果沒有本選項(xiàng) , 則系統(tǒng)會(huì)自動(dòng)產(chǎn)生一個(gè)文件名前綴與數(shù)據(jù)庫名相同 , 容量為 所有數(shù)據(jù)庫文件大小 1/4的事務(wù)日志文件 。 FOR LOAD:表示計(jì)劃將備份直接裝入新建的數(shù)據(jù)庫 , 主要 是為了和過去的 SQL Server版本兼容 。 FOR ATTACH:表示在一組已經(jīng)存在的操作系統(tǒng)文件中建 立一個(gè)新的
16、數(shù)據(jù)庫 。 NAME:指定數(shù)據(jù)庫的邏輯名稱 。 FILENAME:指定數(shù)據(jù)庫所在文件的操作系統(tǒng)文件名稱和路 徑 , 該操作系統(tǒng)文件名和 NAME的邏輯名稱一一對(duì)應(yīng) 。 15 SIZE: 指定數(shù)據(jù)庫的初始容量大小 。 如果沒有指定主文件 的大小 , 則 SQL Server默認(rèn)其與模板數(shù)據(jù)庫中的主文件大 小一致 , 其它數(shù)據(jù)庫文件和事務(wù)日志文件則默認(rèn)為 1MB。 指定大小的數(shù)字 size可以使用 KB、 MB、 GB和 TB后綴 , 默 認(rèn)的后綴為 MB。 Size中不能使用小數(shù) , 其最小值為 512KB, 默認(rèn)值為 1MB。 主文件的 size不能小于模板數(shù)據(jù)庫中的主 文件 。
17、 MAXSIZE:指定操作系統(tǒng)文件可以增長到的最大尺寸 。 如 果沒有指定 , 則文件可以不斷增長直到充滿磁盤 。 FILEGROWTH: 指定文件每次增加容量的大小 , 當(dāng)指定數(shù) 據(jù)為 0時(shí) , 表示文件不增長 。 增加量可以確定為以 KB、 MB 作后綴的字節(jié)數(shù)或以 %作后綴的被增加容量文件的百分比 來表示 。 默認(rèn)后綴為 MB。 如果沒有指定 FILEGROWTH, 則默認(rèn)值為 10%, 每次擴(kuò)容的最小值為 64KB。 16 2. 幾點(diǎn)說明 : 1)創(chuàng)建用戶數(shù)據(jù)庫后,要備份 master數(shù)據(jù)庫。 2)所有數(shù)據(jù)庫都至少包含一個(gè)主文件組。所有系統(tǒng)表 都分配在主文件組中。數(shù)據(jù)庫
18、還可以包含用戶定義的文 件組。 3)每個(gè)數(shù)據(jù)庫都有一個(gè)所有者,可在數(shù)據(jù)庫中執(zhí)行某 些特殊的活動(dòng)。數(shù)據(jù)庫所有者是創(chuàng)建數(shù)據(jù)庫的用戶,也 可以使用 sp_changedbowner更改數(shù)據(jù)庫所有者。 4)創(chuàng)建數(shù)據(jù)庫的權(quán)限默認(rèn)地授予 sysadmin和 dbcreator 固定服務(wù)器角色的成員。 17 例 5-1:創(chuàng)建一個(gè)只含一個(gè)數(shù)據(jù)文件和一個(gè)事務(wù)日 志文件的數(shù)據(jù)庫,數(shù)據(jù)庫名為 JWGL1,主數(shù)據(jù)庫文件 邏輯名稱為 jwgl1_data,數(shù)據(jù)文件的操作系統(tǒng)名稱 jwgl1.mdf,數(shù)據(jù)文件寢大小為 5MB,最大值 500MB, 數(shù)據(jù)文件大小以 10%的增量增加。日志邏輯文件名稱 jwgl
19、1_log.ldf,事務(wù)日志的操作系統(tǒng)名稱 jwgl1.ldf, 日志文件初始大小為 5MB,最大值 100MB,日志文件以 2MB增量增加。 程序清單見下頁: 18 CREATE DATABASE jwgl1 ON PRIMARY (NAME=jwgl1_data, FILENAME= c:Program FilesMicrosoft SQL ServerMSSQLDATAjwgl1.mdf, SIZE=5MB, MAXSIZE=500MB, FILEGROWTH=10%) LOG ON ( NAME=jwgl1_log, F
20、ILENAME= c:Program FilesMicrosoft SQL ServerMSSQLDATAjwgl1.ldf, SIZE=5MB, MAXSIZE=100MB, FILEGROWTH=2MB) GO 19 例 5-2: 創(chuàng)建一個(gè)指定多個(gè)數(shù)據(jù)文件和日志文件的數(shù)據(jù)庫。 該數(shù)據(jù)庫名稱為 jwgl2,有 2個(gè) 10MB的數(shù)據(jù)文件和 2個(gè) 10MB 的事務(wù)日志文件。主文件是列表中的第一個(gè)文件,并使用 PRIMARY關(guān)鍵字顯式指定。事務(wù)日志文件在 LOG ON關(guān)鍵字后 指定。注意 FILE_NAME選項(xiàng)中所用的文件擴(kuò)展名:主數(shù)據(jù)文 件使用 .mdf,次數(shù)據(jù)文件使用 .
21、ndf,事務(wù)文件使用 .ldf。 程序清單 CREATE DATABASE jwgl2 ON PRIMARY (NAME = jwgl20_data, FILENAME = c:program filesmicrosoft sql servermssqldatajwgl20.mdf, SIZE = 10MB, MAXSIZE = 200, FILEGROWTH = 20), 20 ( NAME = jwgl21_data, FILENAME = c:program filesmicrosoft sql servermssqldatajwgl21.
22、ndf, SIZE = 10MB, MAXSIZE = 200, FILEGROWTH = 20) LOG ON ( NAME = jwgl20_log, FILENAME = c:program filesmicrosoft sql servermssqldatajwgl20.ldf, SIZE = 10MB, MAXSIZE = 200, FILEGROWTH = 20), ( NAME = jwgl21_log, FILENAME = c:program filesmicrosoft sql servermssqldataj
23、wgl21.ldf, 21 SIZE = 10MB, MAXSIZE = 200, FILEGROWTH = 20) GO 例 5-3創(chuàng)建一個(gè)包含 2個(gè)文件組的數(shù)據(jù)庫。該數(shù)據(jù)庫名為 jwgl2, 主文件組包含文件 jwgl30_data和 jwgl31_data。文件組 jwgl3_group包含文件 jwgl32_data和 jwgl33_data。兩個(gè)文件 組數(shù)據(jù)文件的 FILEGROWTH 增量為 15%,數(shù)據(jù)文件的初始 大小為 10 MB。事務(wù)日志文件的文件名為 jwgl3_log, FILEGROWTH 增量為 15%,日志文件的初始大小為 5 MB。 C
24、REATE DATABASE jwgl3 ON PRIMARY ( NAME = jwgl30_data, FILENAME = d:program filesmicrosoft sql servermssqldatajwgl30.mdf, SIZE = 10MB, 22 MAXSIZE = 50MB, FILEGROWTH = 15% ), ( NAME = jwgl31_data, FILENAME = d:program filesmicrosoft sql servermssqldatajwgl31.ndf, SIZE = 10MB, MAXSIZE = 50
25、MB, FILEGROWTH = 15% ), FILEGROUP jwgl3_Group ( NAME = jwgl32_data, FILENAME = d:program filesmicrosoft sql servermssqldatajwgl32.ndf, SIZE = 10MB, MAXSIZE = 50MB, FILEGROWTH = 15% ), 23 ( NAME = jwgl33_data, FILENAME = d:program filesmicrosoft sql servermssqldatajwgl33.ndf, SIZE = 10M
26、B, MAXSIZE = 50MB, FILEGROWTH = 15% ) LOG ON ( NAME = jwgl3_log, FILENAME = d:program filesmicrosoft sql servermssqldatajwgl3.ldf, SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 15% ) GO 24 5.3.3 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫比使用 T-SQL語句來得 更容易 ; 具體步驟如下 : 1)進(jìn)入企業(yè)管理器 ; 2)點(diǎn)擊 SQL服務(wù)器組 ,進(jìn)入已經(jīng)配置注冊(cè)的服務(wù)器
27、,點(diǎn)擊” 數(shù)據(jù)庫”項(xiàng) ; 3)點(diǎn)擊“操作”,再選擇“新建數(shù)據(jù)庫”或右擊數(shù)據(jù)庫, 在快捷菜單中選擇“新建數(shù)據(jù)庫” 4)該窗口有三個(gè)選項(xiàng)卡:常規(guī)選項(xiàng)卡、數(shù)據(jù)文件選項(xiàng)卡、 事務(wù)日志選項(xiàng)卡。 5)點(diǎn)擊“數(shù)據(jù)文件”頁面標(biāo)簽,進(jìn)行相關(guān)設(shè)置; 6)點(diǎn)擊“事務(wù)日志”選項(xiàng)卡,進(jìn)行相關(guān)設(shè)置; 7)點(diǎn)擊“確定”。 25 5.3.4 使用數(shù)據(jù)庫創(chuàng)建向?qū)?chuàng)建數(shù)據(jù)庫 1)進(jìn)入企業(yè)管理器 ,分別點(diǎn)擊“工具”菜單,“向?qū)А保? 2)單擊“數(shù)據(jù)庫”左邊的“ +”,展開數(shù)據(jù)庫,選擇“創(chuàng)建數(shù) 據(jù)庫向?qū)А保霈F(xiàn)歡迎窗口,進(jìn)行相關(guān)的設(shè)置; 3)單擊“下一步”,按照向?qū)У闹甘?,完成?shù)據(jù)庫的創(chuàng)建。 創(chuàng)建的
28、過程與企業(yè)管理器的創(chuàng)建過程相似。 5.3.5 由已有庫生成創(chuàng)建數(shù)據(jù)庫的腳本 由已建數(shù)據(jù)庫 JWGL生成該庫的 SQL腳本的步驟 : 1)選擇數(shù)據(jù)庫 JWGL,按右鍵,選擇“所有任務(wù)”; 2)選擇“生成 SQL腳本”,便會(huì)產(chǎn)生一個(gè)“生成 SQL腳本” 的對(duì)話窗口; 3)點(diǎn)擊“選項(xiàng)”標(biāo)簽,點(diǎn)擊不同的選項(xiàng),可生成不同的腳本; 4)點(diǎn)擊“編寫數(shù)據(jù)庫腳本”復(fù)選框和“編寫數(shù)據(jù)庫用戶和數(shù) 據(jù)庫角色腳本”復(fù)選框,再擊點(diǎn)“確定”,輸入腳本的文件 名 db_cre_text后便會(huì)生成創(chuàng)建數(shù)據(jù)庫 JWGL及 JWGL庫的用 戶和角色的腳本文件 db_cre_text.sql。 如要驗(yàn)證腳本的
29、正確性,可進(jìn)入查詢分析器,調(diào)入該腳本程 序執(zhí)行即可。 本章首頁 26 5.4 數(shù)據(jù)庫的管理 5.4.1 數(shù)據(jù)庫屬性的查看 1. 用 T-SQL語言查看數(shù)據(jù)庫的屬性 使用系統(tǒng)存儲(chǔ)過程可以查看數(shù)據(jù)庫的屬性 。常用的存儲(chǔ)過程有 sp_helpdb, sp_spaceused, sp_filehelp, sp_helpfilegroup。 查看某個(gè)數(shù)據(jù)庫或所有數(shù)據(jù)庫的信息: EXEC sp_helpdb jwgl1 查看有關(guān)數(shù)據(jù)庫中所占用空間的報(bào)表; EXEC sp_spaceused 顯示有關(guān)數(shù)據(jù)庫中文件組的報(bào)表: EXEC sp_helpfile
30、group 顯示數(shù)據(jù)庫中文件的報(bào)表: EXEC sp_helpfile 2. 用企業(yè)管理器查看數(shù)據(jù)庫的屬性( P85) 進(jìn)入企業(yè)管理器,指向數(shù)據(jù)庫右擊,選擇“屬性”選項(xiàng)即可查 看數(shù)據(jù)庫相關(guān)信息。 27 5.4.2 修改數(shù)據(jù)庫屬性 1. 用 T-SQL語言進(jìn)行數(shù)據(jù)庫屬性的設(shè)定 例 5-4:修改數(shù)據(jù)庫 JWGL1日志文件的最大值由 100MB改 為現(xiàn)在的 80MB。 程序清單: USE jwgl1 GO ALTER DATABASE jwgl1 MODIFY FILE(NAME=jwgl1_log, MAXSIZE=80MB) 28 例 5-5:修改 jwgl1_da
31、ta數(shù)據(jù)文件的初始值由 5MB改為 10MB。 程序清單見( P85) USE jwgl1 GO ALTER DATABASE jwgl1 MODIFY FILE(NAME= jwgl1_data, SIZE=10MB) 應(yīng)該注意 ,對(duì)于數(shù)據(jù)庫數(shù)據(jù)文件和事務(wù)日志文件 初始空間 大小的修改,新指定的空間大小值 不能小于 當(dāng)前文件初始 空間大小值。 2. 用企業(yè)管理器修改數(shù)據(jù)庫屬性 進(jìn)入企業(yè)管理器,展開樹形結(jié)構(gòu)的“數(shù)據(jù)庫”節(jié)點(diǎn),選中 要修改的數(shù)據(jù)庫 JWGL1,按右鍵,在系統(tǒng)彈出快捷菜單上 點(diǎn)擊“屬性”,進(jìn)入 JWGL1 數(shù)據(jù)庫的屬性窗口,你可以根 據(jù)需要進(jìn)入不同的選項(xiàng)卡修改數(shù)據(jù)庫相
32、應(yīng)的信息。 29 5.4.3 數(shù)據(jù)庫的收縮 SQL允許收縮數(shù)據(jù)庫中的每個(gè)文件以刪除未使用的頁。數(shù)據(jù) 和事務(wù)日志文件都可以收縮。 數(shù)據(jù)庫文件可以單獨(dú)地進(jìn)行手工收縮,也可以設(shè)置為按給定 的時(shí)間間隔進(jìn)行自動(dòng)收縮。 注意: 不能將整個(gè)數(shù)據(jù)庫收縮到比原始大小還要小。 縮小數(shù)據(jù)庫 有兩種方法 : 1使用企業(yè)管理器可以縮小數(shù)據(jù)庫。 2使用 Transact-SQL語言縮小數(shù)據(jù)庫。 ( 1)使用 DBCC SHRINKDATABASE命令 收縮指定數(shù)據(jù)庫 中的數(shù)據(jù)文件。 DBCC SHRINKDATABASE (database_name,target_percent,NOTR
33、UNCATE |TRUNCATEONLY) 30 database_name:要收縮的數(shù)據(jù)庫名稱 。 Target_percent:當(dāng)數(shù)據(jù)庫收縮后 , 數(shù)據(jù)庫文件中剩余可用 空間的百分比 。 NOTRUNCATE:被釋放的文件空間依然保持在數(shù)據(jù)庫文件 中 。 如果未指定 , 將所釋放的文件空間被操作系統(tǒng)回收 。 TRUNCATEONLY:將數(shù)據(jù)文件中未使用的空間釋放給操作 系統(tǒng),并將文件收縮到上一次所分配的大小。使用 TRUNCATEONLY 時(shí),將忽略 target_percent的限制。 將數(shù)據(jù)庫設(shè)為自動(dòng)收縮 使用 ALTER DATABASE語句可以將數(shù)據(jù)庫
34、設(shè)為自動(dòng)收縮。 設(shè)定數(shù)據(jù)庫是否自動(dòng)收縮的 SQL 語句的語法形式: ALTER DATABASE database_name SET AUTO_SHRINK on/off on :數(shù)據(jù)庫設(shè)為自動(dòng)收縮, off :數(shù)據(jù)庫設(shè)為不自動(dòng)收縮。 31 【 例 5-7】 將數(shù)據(jù)庫 JWGL1的收縮設(shè)為自動(dòng)收縮, SQL腳本程序 如下: ALTER DATABASE jwgl1 SET AUTO_SHRINK on 5.4.4 數(shù)據(jù)庫的更名 一般情況下不要做數(shù)據(jù)庫的改名, 如要更名需將數(shù)據(jù)庫的并發(fā) 用戶數(shù)設(shè)為 1,更名后再將數(shù)據(jù)庫的并發(fā)用戶數(shù)改回來。設(shè)置 數(shù)據(jù)庫并發(fā)用戶的方法是:先點(diǎn)
35、擊要改名的數(shù)據(jù)庫,再依次點(diǎn) 擊“工具”、“ SQL Server 配置屬性”、“連接”,在“并 發(fā)用戶連接的最大數(shù)目”輸入框中輸入相應(yīng)的數(shù)字即可。 數(shù)據(jù)庫的更名的 SQL 語句的語法形式: sp_renamedb old_name , new_name 其中: old_name: 是數(shù)據(jù)庫的當(dāng)前名稱 ; new_name: 是數(shù)據(jù)庫的新名稱。 32 【 例 5-8】 將數(shù)據(jù)庫 JWGL1更名為 JWXT, SQL腳本程序如下: sp_renamedb jwgl1,jwxt 5.4.5 刪除數(shù)據(jù)庫 1利用企業(yè)管理器刪除數(shù)據(jù)庫( P88) 2利用 Drop
36、語句刪除數(shù)據(jù)庫 Drop database database_name,n 說明: 只有處于正常狀態(tài)下的數(shù)據(jù)庫,才能使用 DROP語句 刪除。當(dāng)數(shù)據(jù)庫處于以下狀態(tài)時(shí)不能被刪除: 數(shù)據(jù)庫正在使 用;數(shù)據(jù)庫正在恢復(fù);系統(tǒng)數(shù)據(jù)庫 master、 tempdb、 model、 msdb。 例 5-9 使用 DROP DATABASE 命令將數(shù)據(jù)庫 JWXT刪除。 DROP database jwxt 本章首頁 33 5.5 設(shè)置 數(shù)據(jù)庫的選項(xiàng) 數(shù)據(jù)庫選項(xiàng)就是數(shù)據(jù)庫的屬性。這些選項(xiàng)將決定數(shù)據(jù)庫的不 同部分如何工作,可以使用 SQL企業(yè)管理器或者 “ sp_d
37、boption”存儲(chǔ)過程來修改數(shù)據(jù)庫選項(xiàng)。 5.5.1 使用 Transact-SQL語句設(shè)置數(shù)據(jù)庫的選項(xiàng) 使用存儲(chǔ)過程 sp_dboption可以顯示或更改數(shù)據(jù)庫選項(xiàng)。但不 能對(duì) master或 tempdb數(shù)據(jù)庫使用 sp_dboption。 設(shè)置數(shù)據(jù)庫的選項(xiàng)的 SQL語句的語法形式如下: sp_dboption database option_namevalue 其中: database:在其中設(shè)置指定選項(xiàng)的數(shù)據(jù)庫的名稱。 option_name:要設(shè)置的選項(xiàng)的名稱。該選項(xiàng)常用的 4個(gè)參 數(shù)及含義如下: autoshrink: 當(dāng) value為 true
38、時(shí),數(shù)據(jù)庫文件將成為自動(dòng)周期性 收縮的候選文件。 dbo use only: 當(dāng) value為 true時(shí),只有數(shù)據(jù)庫所有者可以使用 數(shù)據(jù)庫。 34 read only: 當(dāng) value為 true時(shí),用戶僅能讀取數(shù)據(jù)庫中的數(shù)據(jù) 而無法對(duì)其修改。 single use:當(dāng) value為 true時(shí),每次只能有一個(gè)用戶訪問數(shù) 據(jù)庫。 value: option_name的新設(shè)置。如果省略此參數(shù), sp_dboption 將返回當(dāng)前設(shè)置。 value 可以是 true、 false、 或 on、 off。 【 例 5-10】 下面的示例將數(shù)據(jù)庫 JWGL設(shè)置為只有數(shù)據(jù)庫所 有者可以使
39、用。 USE jwgl EXEC sp_dboption jwgl , dbo use only , true 35 5.5.2 利用企業(yè)管理器修改數(shù)據(jù)庫屬性 展開服務(wù)器組,然后展開服務(wù)器。 展開“數(shù)據(jù)庫”文件夾,出現(xiàn)這個(gè) SQL Server上當(dāng)前所有數(shù) 據(jù)庫的列表。 右擊你打算設(shè)置的數(shù)據(jù)庫,選擇“屬性”,出現(xiàn)如圖 5-6(P89) 的數(shù)據(jù)庫的屬性窗口 ; 單擊該數(shù)據(jù)庫屬性窗口“選項(xiàng)”選項(xiàng)卡,出現(xiàn)數(shù)據(jù)庫的各個(gè) 選項(xiàng)。用戶可以進(jìn)行如下常用選項(xiàng)的設(shè)置: 訪問限制 :指定只有屬于 db_owner、 dbcreator或 sysadmin的成 員才能訪問數(shù)據(jù)庫。
40、 單用戶 :只能有一個(gè)用戶使用數(shù)據(jù)庫。這個(gè)選項(xiàng)通常用于在執(zhí) 行一些諸如“ DBCC SHRINKDB”的命令時(shí)阻止用戶訪問這個(gè) 數(shù)據(jù)庫。 只讀 :使這個(gè)數(shù)據(jù)庫處于只讀狀態(tài)。如數(shù)據(jù)庫設(shè)為只讀狀態(tài), 用戶就不能修改數(shù)據(jù)庫中的任何記錄。 模型 :指定數(shù)據(jù)庫的恢復(fù)模型 ANSI NULL默認(rèn)設(shè)置 :允許在數(shù)據(jù)庫表的列中輸入空 ( NULL) 值 。 36 限制訪問包含兩個(gè)選項(xiàng) : “ db_owner, dbcreator或 sysadmin 的成員 ” 選項(xiàng)表示只有數(shù)據(jù)庫的所有者、數(shù)據(jù)庫創(chuàng)建者和系 統(tǒng)管理員才有權(quán)使用數(shù)據(jù)庫; “ 單用戶 ” 選項(xiàng)表示數(shù)據(jù)庫在 同一時(shí)間只能供一個(gè)用戶使用
41、。 遞歸觸發(fā)器 :指定是否允許觸發(fā)器遞歸調(diào)用 。 自動(dòng)更新統(tǒng)計(jì)信息 :允許使用 SELECT INTO或 BCP、 WRITETEXT、 UPDATETEXT命令向表中大量插入數(shù)據(jù) 。 在 開發(fā)數(shù)據(jù)庫時(shí)常常將此選項(xiàng)設(shè)置為真 。 殘缺頁檢測(cè) :允許自動(dòng)檢測(cè)有損壞的頁 。 頁是數(shù)據(jù)庫內(nèi)容的 基本存儲(chǔ)單位 , 每個(gè)頁的大小為 8KB。 由于 SQL Server對(duì)頁 的讀寫單位是大小為 512字節(jié)的扇區(qū) , 當(dāng)每個(gè)頁的第一個(gè)扇 區(qū)被成功寫入后 , SQL Server就認(rèn)為此頁已經(jīng)被成功寫入 。 因此 , 如果寫完第一個(gè)扇區(qū)后發(fā)生突發(fā)事件 , 導(dǎo)致寫入中斷 , 就會(huì)產(chǎn)生有損壞的頁 , 需
42、要通知備份來恢復(fù)數(shù)據(jù)庫 。 自動(dòng)關(guān)閉 :當(dāng)數(shù)據(jù)庫中無用戶時(shí) , 自動(dòng)關(guān)閉該數(shù)據(jù)庫 , 并將 所占用的資源交還給操作系統(tǒng) 。 對(duì)那些不間斷使用的數(shù)據(jù)庫 不要使用此選項(xiàng) 。 37 自動(dòng)收縮 :允許定期對(duì)數(shù)據(jù)庫進(jìn)行檢查 , 當(dāng)數(shù)據(jù)庫文件或日志 文件中未用空間超過其大小的 25%時(shí) , 系統(tǒng)將會(huì)自動(dòng)縮減文件 , 使其未用空間等于 25%。 當(dāng)文件大小沒有超過其建立時(shí)的初始 大小時(shí) , 不會(huì)縮減文件 。 縮減后的文件也必須大于或等于其初 始大小 。 自動(dòng)創(chuàng)建統(tǒng)計(jì)信息 :在優(yōu)化查詢時(shí) , 根據(jù)需要自動(dòng)創(chuàng)建統(tǒng)計(jì)信 息 。 使用被引用的標(biāo)識(shí)符 :標(biāo)識(shí)符必須用雙引號(hào)括起來,且可以不 遵循 Transact-SQL命名標(biāo)準(zhǔn)。 本章首頁
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案