官术网_书友最值得收藏!

第1章 創(chuàng)建及維護(hù)數(shù)據(jù)庫

知識目標(biāo)

● 了解數(shù)據(jù)庫組成;

● 了解系統(tǒng)數(shù)據(jù)庫的作用;

● 理解數(shù)據(jù)庫文件、文件組的種類與作用;

● 理解數(shù)據(jù)庫的配置選項。

技能目標(biāo)

● 會創(chuàng)建數(shù)據(jù)庫;

● 會管理數(shù)據(jù)庫;

● 會分離和附加數(shù)據(jù)庫。

知識學(xué)習(xí)

1.數(shù)據(jù)庫組成

數(shù)據(jù)庫的存儲結(jié)構(gòu)分為邏輯存儲結(jié)構(gòu)和物理存儲結(jié)構(gòu)。邏輯存儲結(jié)構(gòu)用于說明數(shù)據(jù)庫是由哪些性質(zhì)的信息所組成,SQL Server的數(shù)據(jù)庫不僅僅只存儲數(shù)據(jù),所有與數(shù)據(jù)處理操作相關(guān)的信息都存儲在數(shù)據(jù)庫中。數(shù)據(jù)庫的物理存儲結(jié)構(gòu)則是討論數(shù)據(jù)庫文件在磁盤中是如何存儲的,數(shù)據(jù)庫在磁盤上是以文件為單位存儲的,由數(shù)據(jù)庫文件和事務(wù)日志文件組成,一個數(shù)據(jù)庫至少應(yīng)該包含一個數(shù)據(jù)庫文件和一個事務(wù)日志文件。

SQL Server數(shù)據(jù)庫管理系統(tǒng)中數(shù)據(jù)庫文件是由數(shù)據(jù)文件和日志文件組成的,數(shù)據(jù)文件以盤區(qū)為單位存儲在存儲器中。

2.數(shù)據(jù)庫文件

數(shù)據(jù)庫文件是指數(shù)據(jù)庫中用來存放數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫對象的文件,一個數(shù)據(jù)庫可以有一個或多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只能屬于一個數(shù)據(jù)庫。當(dāng)有多個數(shù)據(jù)文件時,有一個文件被定為主數(shù)據(jù)文件,它用來存儲數(shù)據(jù)庫的啟動信息和部分或者全部數(shù)據(jù),一個數(shù)據(jù)庫只能有一個主數(shù)據(jù)文件。數(shù)據(jù)文件則劃分為不同的頁面和區(qū)域,頁是SQL Server存儲數(shù)據(jù)的基本單位。

主數(shù)據(jù)文件是數(shù)據(jù)庫的起點(diǎn),指向數(shù)據(jù)庫文件的其他部分,每個數(shù)據(jù)庫都有一個主要數(shù)據(jù)文件,其擴(kuò)展名為.mdf。

次數(shù)據(jù)文件包含除主數(shù)據(jù)庫文件外的所有數(shù)據(jù)文件,一個數(shù)據(jù)庫可以沒有次數(shù)據(jù)文件,也可能有多個次數(shù)據(jù)文件,擴(kuò)展名為.ndf。

3.日志文件

SQL Server的日志文件是由一系列日志記錄組成的,日志文件中記錄了存儲數(shù)據(jù)庫的更新情況等事務(wù)日志信息,用戶對數(shù)據(jù)庫進(jìn)行的插入、刪除和更新等操作也都會記錄在日志文件中。當(dāng)數(shù)據(jù)庫發(fā)生損壞時,可以根據(jù)日志文件來分析出錯的原因,或者數(shù)據(jù)丟失時,還可以使用事務(wù)日志恢復(fù)數(shù)據(jù)庫。每個數(shù)據(jù)庫至少必須擁有一個事務(wù)日志文件,而且允許擁有多個日志文件。

SQL Server 2012不強(qiáng)制使用.mdf、.ndf或.ldf作為文件的擴(kuò)展名,但建議使用這些擴(kuò)展名來幫助標(biāo)識文件。SQL Server 2012中某個數(shù)據(jù)庫中的所有文件的位置都記錄在master數(shù)據(jù)庫和該數(shù)據(jù)庫的主文件中。

4.文件組

文件組(Filegroup)是文件的邏輯集合,用來存儲數(shù)據(jù)文件和數(shù)據(jù)庫對象,SQL Server自動創(chuàng)建一個名稱為PRIMARY的主文件組,主文件組上存有系統(tǒng)表。SQL Server默認(rèn)將數(shù)據(jù)文件、數(shù)據(jù)庫對象(如表、索引等)存放在主文件組上。為了提高數(shù)據(jù)庫的性能,如果希望將次數(shù)據(jù)文件、所創(chuàng)建的數(shù)據(jù)庫對象存放在與主數(shù)據(jù)文件不同的存儲設(shè)備上,就需要創(chuàng)建用戶定義的文件組,然后通過數(shù)據(jù)庫擴(kuò)充容量增加次數(shù)據(jù)文件,創(chuàng)建數(shù)據(jù)庫對象時將它們存放在用戶定義的文件組上。

一個文件或者文件組只能用于一個數(shù)據(jù)庫,不能用于多個數(shù)據(jù)庫。次數(shù)據(jù)文件或數(shù)據(jù)庫對象(如表、索引等)只能存放在一個文件組中,不可以存放在其他文件組中。文件組不適用于事務(wù)日志。

不能在READONLY(只讀)的文件組上創(chuàng)建新數(shù)據(jù)庫對象。讀者可以將不允許修改的表存放在用戶定義的文件組上,然后將文件組標(biāo)記為READONLY。

5.系統(tǒng)數(shù)據(jù)庫

SQL Server服務(wù)器安裝完成之后,打開SSMS工具,在“對象資源管理器”面板中的“數(shù)據(jù)庫”→“系統(tǒng)數(shù)據(jù)庫”結(jié)點(diǎn)下可以看到幾個已經(jīng)存在的數(shù)據(jù)庫,這些數(shù)據(jù)庫在SQL Server安裝到系統(tǒng)時就創(chuàng)建好了,下面分別介紹這幾個系統(tǒng)數(shù)據(jù)庫的作用。

(1)master數(shù)據(jù)庫

master是SQL Server 2012中最重要的數(shù)據(jù)庫,是整個數(shù)據(jù)庫服務(wù)器的核心。用戶不能直接修改該數(shù)據(jù)庫,如果損壞了master數(shù)據(jù)庫,那么整個SQL Server服務(wù)器將不能工作。該數(shù)據(jù)庫中包含以下內(nèi)容:所有用戶的登錄信息、用戶所在的組、所有系統(tǒng)的配置選項、服務(wù)器中本地數(shù)據(jù)庫的名稱和信息、SQL Server的初始化方式等。作為一個數(shù)據(jù)庫管理員,應(yīng)該定期備份master數(shù)據(jù)庫。

(2)model數(shù)據(jù)庫

model數(shù)據(jù)庫是SQL Server 2012中創(chuàng)建數(shù)據(jù)庫的模板,如果用戶希望創(chuàng)建的數(shù)據(jù)庫有相同的初始化文件大小,則可以在model數(shù)據(jù)庫中保存文件大小的信息;希望所有的數(shù)據(jù)庫中都有一個相同的數(shù)據(jù)表,同樣也可以將該數(shù)據(jù)表保存在model數(shù)據(jù)庫中。因?yàn)閷韯?chuàng)建的數(shù)據(jù)庫以model數(shù)據(jù)庫中的數(shù)據(jù)為模板,因此在修改model數(shù)據(jù)庫之前要考慮到,任何對model數(shù)據(jù)庫中數(shù)據(jù)的修改都將影響所有使用模板創(chuàng)建的數(shù)據(jù)庫。

(3)msdb數(shù)據(jù)庫

msdb數(shù)據(jù)庫提供運(yùn)行SQL Server Agent工作的信息。SQL Server Agent是SQL Server中的一個Windows服務(wù),該服務(wù)用來運(yùn)行制定的計劃任務(wù)。計劃任務(wù)是在SQL Server中定義的一個程序,該程序不需要干預(yù)即可自動開始執(zhí)行。與tempdb和model數(shù)據(jù)庫一樣,在使用SQL Server時也不要直接修改msdb數(shù)據(jù)庫,SQL Server中的其他一些程序會自動運(yùn)行該數(shù)據(jù)庫。例如,當(dāng)用戶對數(shù)據(jù)進(jìn)行存儲或者備份的時候,msdb數(shù)據(jù)庫會記錄與執(zhí)行這些任務(wù)相關(guān)的一些信息。

(4)tempdb數(shù)據(jù)庫

tempdb是SQL Server中的一個臨時數(shù)據(jù)庫,用于存放臨時對象或中間結(jié)果,SQL Server關(guān)閉后,該數(shù)據(jù)庫中的內(nèi)容被清空,每次重新啟動服務(wù)器之后,tempdb數(shù)據(jù)庫將被重建。

主站蜘蛛池模板: 新野县| 余干县| 兴义市| 贵德县| 平乡县| 丹棱县| 玉山县| 澄城县| 淮安市| 阿拉尔市| 醴陵市| 措勤县| 海口市| 南江县| 汉源县| 宝兴县| 精河县| 玉溪市| 蓝山县| 郎溪县| 万安县| 明水县| 东宁县| 广南县| 滨海县| 长岛县| 镇原县| 临海市| 南城县| 平原县| 神木县| 龙泉市| 靖州| 四川省| 内丘县| 松溪县| 微山县| 宜昌市| 鄂温| 石城县| 黄骅市|