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

第1章 創建及維護數據庫

知識目標

● 了解數據庫組成;

● 了解系統數據庫的作用;

● 理解數據庫文件、文件組的種類與作用;

● 理解數據庫的配置選項。

技能目標

● 會創建數據庫;

● 會管理數據庫;

● 會分離和附加數據庫。

知識學習

1.數據庫組成

數據庫的存儲結構分為邏輯存儲結構和物理存儲結構。邏輯存儲結構用于說明數據庫是由哪些性質的信息所組成,SQL Server的數據庫不僅僅只存儲數據,所有與數據處理操作相關的信息都存儲在數據庫中。數據庫的物理存儲結構則是討論數據庫文件在磁盤中是如何存儲的,數據庫在磁盤上是以文件為單位存儲的,由數據庫文件和事務日志文件組成,一個數據庫至少應該包含一個數據庫文件和一個事務日志文件。

SQL Server數據庫管理系統中數據庫文件是由數據文件和日志文件組成的,數據文件以盤區為單位存儲在存儲器中。

2.數據庫文件

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

主數據文件是數據庫的起點,指向數據庫文件的其他部分,每個數據庫都有一個主要數據文件,其擴展名為.mdf。

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

3.日志文件

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

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

4.文件組

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

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

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

5.系統數據庫

SQL Server服務器安裝完成之后,打開SSMS工具,在“對象資源管理器”面板中的“數據庫”→“系統數據庫”結點下可以看到幾個已經存在的數據庫,這些數據庫在SQL Server安裝到系統時就創建好了,下面分別介紹這幾個系統數據庫的作用。

(1)master數據庫

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

(2)model數據庫

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

(3)msdb數據庫

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

(4)tempdb數據庫

tempdb是SQL Server中的一個臨時數據庫,用于存放臨時對象或中間結果,SQL Server關閉后,該數據庫中的內容被清空,每次重新啟動服務器之后,tempdb數據庫將被重建。

主站蜘蛛池模板: 延长县| 耒阳市| 获嘉县| 招远市| 青州市| 乌审旗| 呈贡县| 乌恰县| 襄城县| 金门县| 乌鲁木齐市| 海晏县| 东城区| 普兰县| 县级市| 珠海市| 洪洞县| 贵德县| 吉林市| 定日县| 霞浦县| 辽中县| 惠州市| 宁城县| 兰溪市| 吉隆县| 太谷县| 隆回县| 垫江县| 呼和浩特市| 郴州市| 永昌县| 镶黄旗| 准格尔旗| 曲阜市| 曲麻莱县| 类乌齐县| 芮城县| 阜平县| 太原市| 桐城市|