資料庫的儲存結構分為邏輯儲存結構和物理儲存結構。
◊ 物理儲存結構:資料庫在磁碟上是以檔案為單位儲存的,由資料庫檔案和事務日誌檔案組成,乙個資料庫至少應該包含乙個資料庫檔案和乙個事務日誌檔案。
sql server資料庫系統中的資料庫檔案是由資料檔案和日誌檔案組成的,資料檔案以盤區為單位儲存在儲存器中。
資料庫檔案是指資料庫中用來存放資料庫資料和資料庫物件的檔案,乙個資料庫可以有乙個或多個資料庫檔案,乙個資料庫檔案只能屬於乙個資料庫。當有多個資料庫檔案時,有乙個檔案被定為主資料檔案,用來儲存資料庫的啟動資訊和部分或全部資料,乙個資料庫只能有乙個主資料庫檔案。資料檔案則劃分為不同的頁面和區域,頁是sql server儲存資料的基本單位。
主資料檔案是資料庫的起點,指向資料庫檔案的其他部分,每個資料庫都有乙個主要資料檔案,擴充套件名為.mdf。
次資料檔案包含除主資料庫檔案之外的所有資料檔案,乙個資料庫可以沒有次資料檔案,也可以有多個次資料檔案,擴充套件名為.ndf。
sql server的日誌是由一系列日誌記錄組成,日誌檔案中記錄了儲存資料庫的更新情況等事務日誌資訊,使用者對資料庫進行的插入、刪除和更新等操作都會記錄在日誌檔案中。當資料庫損壞時,可以根據日誌檔案來分析出錯的原因,或者資料丟失時,還可以使用事務日誌恢復資料庫。每乙個資料庫至少必須擁有乙個事務日誌檔案,而且允許擁有多個日誌檔案。
sql server2012不強制使用.mdf、.ndf或者.ldf作為檔案的副檔名,但建議使用這些副檔名幫助標準檔案的用途。資料庫中的所有檔案的位置都記錄在master資料庫和該資料庫在主資料檔案中。
master是sql server中最重要的資料庫,是整個資料庫伺服器的核心。使用者不能直接修改master資料庫,如果master資料庫損壞了,那麼整個sql server伺服器將不能工作。
master資料庫中包含了以下的一些內容:
◊ 所有使用者的登入資訊
◊ 使用者所在的組
◊ 所有系統的配置選項
◊ 伺服器中本地資料庫的名稱和資訊
◊ sql server的初始化方式等
master資料庫儲存系統表用於系統的總體控制。如在新建乙個資料庫時,在master資料庫的sysdatabases表中插入對應的記錄。
作為乙個資料庫管理員,應該定期備份master資料庫。
model資料庫是sql server中建立資料庫的模板,如果使用者
◊ 希望建立的資料庫有相同的初始化檔案大小,則可以在model資料庫中儲存檔案大小的資訊;
◊ 希望所有的資料庫中都有相同的乙個或多個表,可以將該資料表儲存在model資料庫中。
新建立的資料庫以model資料庫中的資料作為模板,因此在修改model資料庫之前要考慮到,任何對model資料庫中資料的修改都要影響到所有使用該模板建立的資料庫。
由於model資料庫作為其他任意資料庫的模板,系統中必須保留,不能刪除。
在更改model資料庫時需要注意:任意新建的資料庫至少要比model資料庫大。如果將model資料庫大小更改為100mb,則不能建立小於100mb的資料庫。
msdb提供了執行sql server agent工作的資訊。sql server agent是sql server中的乙個windows服務,該服務用來執行制定的計畫任務。如在計畫對乙個資料庫每夜進行備份時,則在msdb資料庫中有乙個相應的記錄項。
tempdb是sql server中的乙個臨時資料庫,用於存放臨時物件或中間結果,只要建立臨時表,則臨時表會建立在tempdb資料庫中。sql server關閉後,該資料庫中的內容被清空,每次重新啟動伺服器之後,tempdb資料庫將被完全重建。
SqlServer系列 資料庫三大正規化
1 概述 一般地,在進行資料庫設計時,應遵循三大原則,也就是我們通常說的三大正規化,即第一正規化要求確保表中每列的原子性,也就是不可拆分 第二正規化要求確保表中每列與主鍵相關,而不能只與主鍵的某部分相關 主要針對聯合主鍵 主鍵列與非主鍵列遵循完全函式依賴關係,也就是完全依賴 第三正規化確保主鍵列之間...
sql server資料庫優化教程系列 開篇
終於決定自己動手寫乙個了,以前一直是在看別人的文章,也是因為自己的文筆不好,另外也是怕自己被人噴,但是還是鼓足勇氣自己寫上乙個優化系列吧,算是對我這些日子對sql server資料庫優化工作的乙個總結。大體的乙個結構如下 資料庫結構基礎 索引基礎 事務基礎 如何寫好乙個儲存過程 資料庫設計基礎 基於...
資料庫基礎系列之三 Sql Server連線埠
昨天遇到乙個比較奇怪的問題,機器a 機器b,都裝有sql server2000,c 程式從a連b上的資料庫ok,但是從b連a的資料庫總是有異常,異常提示 在建立與伺服器的連線時出錯。在連線到 sql server 2005 時,在預設的設定下 sql server 不允許進行遠端連線可能會導致此失敗...