1、檔案與檔案組
在SQL Server 中資料庫是由資料庫檔案和交易記錄檔組成的。一個資料庫至少應包含一個資料庫檔案和一個事物記錄檔。
(1) 資料庫檔案(Database File)
資料庫檔案是存放資料庫資料和資料庫物件的檔案。一個資料庫可以有一個或多個資料庫檔案,一個資料庫檔案只屬於一個資料庫。當有多個資料庫檔案時,有一個檔案被定義為主要資料庫檔案(Primary Database File), 副檔名為mdf, 它用來儲存資料庫的啟動資訊和部分或全部資料,一個資料庫只能有一個主要資料庫檔案。其它資料庫檔案被稱為次資料庫檔案(Secondary Database File), 副檔名為ndf, 用來儲存主檔案沒儲存的其它資料。
採用多個資料庫檔案來儲存資料的優點體現在:
·資料庫檔案可以不斷擴充,而不受作業系統檔案大小的限制;
·可以將資料庫檔案儲存在不同的硬碟中,這樣可以同時對幾個硬碟做資料存取,提高了資料處理的效率。對於伺服器型的電腦尤為有用。
(2) 交易記錄檔(Transaction Log File)
交易記錄檔是用來記錄資料庫更新情況的檔案,副檔名為ldf。例如使用INSERT、UPDATE、 DELETE、 等對資料庫進行更的操作都會記錄在此檔案中,而如SELECT 等對資料庫內容不會有影響的操作則不會記錄在案。一個資料庫可以有一個或多個交易記錄檔。
SQL Server 中採用“Write-Ahead (提前寫)”方式的事務,即對資料庫的修改先寫入交易記錄中,再寫入資料庫。其具體操作是,系統先將更改操作寫入交易記錄中,再更改儲存在電腦緩衝中的資料,為了提高執行效率,此更改不會立即寫到硬碟中的資料庫,而是由系統以固定4 的時間間隔執行CHECKPOINT 命令,將更改過的資料批量寫入硬碟。SQL Server 有個特點,它在執行資料更改時會設定一個開始點和一個結束點,如果尚未到達結束點就因某種原因使操作中斷,則在SQL Server 重新啟動時會自動回復已修改的資料,使其返回未被修改的狀態。 由此可見,當資料庫破壞時,可以用交易記錄恢複資料庫內容。