數據庫基礎#3:數據庫中的數據?
原文鏈接:https://www.scarydba.com/2017/06/20/database-fundamentals-3-whats-database/
轉載自BOOK – “EXECUTION PLANS” CODE AZURE DATA PLATFORM INSTRUCTORS
值得註意的是,很多人永遠不需要創建自己的數據庫。 您也許永遠不會創建自己的表或其他數據結構。 您只能運行備份和恢復並操縱系統上的安全性,並讓應用程序為您安裝數據庫。 這是完全可以理解的,完全符合許多企業和許多意外DBA的需求。 但是,了解這些東西是什麽以及如何作為理解SQL Server的一部分,這是一個好主意。
數據庫實際上是文件
您需要存儲以後能夠檢索的信息。 您有必要組織這些信息。 如果您正在使用文字處理程序,則將不同的文檔存儲在不同的文件中。 你真的不會將所有的文檔放在一個單一的大文件中。 SQL Server的功能非常類似。 當您有一臺服務器時,您不會簡單地存儲在該服務器中的一個大堆中運行業務所需的各種類型的信息。 相反,你將組織這些信息。 SQL Server的初始組織機制是數據庫。 數據庫允許您在單獨的存儲區域中保留信息集。 此外,它允許您隔離這些不同信息集的安全性,以便您可以控制誰查看或修改數據。
在數據庫中有一些稱為表的東西。 表是如何定義關系存儲。 您在組織的給定數據庫中存儲的信息將被添加到這些表中。
除了數據庫中的表之外,還有一些不同的構造將幫助您管理數據庫中也存儲在數據庫中的信息。 這些包括許多不同類型的對象,可幫助您操縱數據,如視圖,存儲過程和函數。 您還可以獲得一整套安全對象,例如角色和用戶。
數據庫實際上由存儲在Windows文件系統的某個位置的文件組成。 這些文件是專有的二進制格式,除非通過SQL Server才能直接讀取。 將數據寫入這些文件是SQL Server中最昂貴和耗時最多的操作之一(盡管大多數情況下,所涉及的時間以微秒為單位)。 由於這種費用,重要的是要了解您的數據庫是由文件定義的,並且它們在存儲的地方很重要,因為您對數據庫的理解。
兩種類型的文件
您可以將數據簡單地存儲在文本文件或電子表格中,並有大量人員使用。 但是,當您需要多個人同時訪問它時,更新某些日期,刪除某些日期,插入新信息,同時,這些其他存儲機制變得非常有問題。 這就是為什麽你需要使用數據庫。 因為SQL Server必須與存儲的數據做很多不同的工作,所以提出了一些不同的機制來執行這些操作。 數據庫圍繞存儲不同類型信息的兩種不同類型的文件構成。 我們通過這兩種類型可以參考這個數字。
註意:實際上可以添加到數據庫中的其他幾種文件類型,但是我們在這裏談論基本原理,所以現在我們將保持直觀和簡單。
數據文件
定義數據庫所需的第一種文件類型是數據文件。 數據文件易於理解和解釋。 這種類型的文件是要存儲您寫入數據庫的信息的地方。 任何給定的數據庫都可以由多個數據文件組成。 數據文件可以放在與您的系統的多個硬盤驅動器上。 如果您擁有更高級的存儲機制,例如存儲區域網絡(SAN),您可能會有其他構造,而不是服務器上的簡單硬盤驅動器,但它們將映射到Windows操作系統作為驅動器,SQL Server可以使用存儲 的數據文件。
日誌文件
創建數據庫所需的第二種文件類型是日誌文件。日誌文件比數據文件要復雜一點。日誌文件記錄數據庫中發生的每個事務。當系統中以某種方式操縱數據時,會發生事務。這些操作可以是對現有數據的更新,通過將新數據插入到表中來添加新數據,或從表中刪除數據。所有這些操作都會將信息寫入日誌文件。還有一些其他功能也與日誌文件相關聯。這些文件通常遠小於數據文件,因為日誌文件中的條目只需要保留,直到所有數據都已成功寫入數據文件。因為寫入數據文件有不同種類的故障,因此日誌文件被保留以幫助處理這些故障。一旦將信息寫入數據文件,可以刪除日誌條目。清理日誌文件的過程將在另一篇文章中詳細討論。
當您最初創建文件時,您可以調整其大小。您也可以在創建文件之後調整上下的大小。每個文件也可以自動設置,這是非常復雜的,所以值得花更多的時間了解它的意思。
自動增長設置
如果你有很多數據庫,那麽在數據庫上管理文件可能會很多。您必須檢查可用空間,然後在足夠的時候將文件設置為更大的尺寸。所有這些手動工作的一個方法是使用數據庫上的自動增長屬性設置。
謹慎一點:使用此設置非常小心。您可以填寫驅動器,使您的服務器脫機。
將數據庫設置為自動增長是指數據庫在開始運行時會自動調整文件大小。許多人使用此設置,並且許多應用程序在安裝它們時將其設置為開啟。您應該為文件設置一個較高的增長限制,以避免該問題。您可以將文件設置為增長數據庫的百分比或固定大小。對於較小的數據庫,按百分比增長可以起作用,但隨著數據庫的大小增加,百分比的增長將變得越來越長。最佳做法是將增長率設定為特定值而不是百分比。有關如何設置所有這些的詳細信息將在數據庫創建時被覆蓋。
放置文件的位置
安裝SQL Server時,您可以選擇定義數據庫文件的放置位置。 您還可以通過“服務器屬性”窗口進行調整。 在創建數據庫時,最好知道您要放置文件的位置,以確保該驅動器上有足夠的空間。 要查看此位置,請按照“數據庫基礎知識2”中所述連接到您的服務器。 一旦連接,在對象資源管理器窗口中,右鍵單擊服務器名稱本身。 這將顯示一個上下文菜單。 選擇該菜單底部的“屬性”菜單選項。 這將打開“服務器屬性”窗口,您將處於默認的“常規”選項卡。 選擇“數據庫設置”選項卡,您將看到與此類似的內容:
要查看的有趣區域是位於窗口底部的“數據庫默認位置”部分。您將看到列出的三個不同的目錄,一個用於數據,日誌和備份。通過單擊條目右側的省略號,您可以啟動默認文件瀏覽器窗口,以更改日誌或數據文件的默認位置。您還可以通過使用上述物理路徑直接鍵入文本框或使用通用命名約定(UNC)路徑來修改它們。
放置文件的目標應該是嘗試盡可能多地分離功能。如果你有這個能力,你最好將操作系統文件和數據和日誌文件分開。這意味著如果可能,將數據和日誌文件放在C:\驅動器之外。此外,您至少應考慮將數據和日誌文件存儲在完全獨立的驅動器上。這允許對驅動器上的文件的最大數據吞吐量。
確定存儲位置是否合適後,如果您進行了更改,請單擊確定按鈕保存這些更改。如果您沒有進行任何更改,或者您不想保存所做的更改,請單擊取消按鈕。這些點擊之一將關閉“服務器屬性”窗口。
除了物理位置之外,兩個文件類型中的每一個都具有幾個屬性,這些屬性在創建數據庫時將會很重要。物理位置的一部分將是文件名和擴展名。這些可以是任何有效的Windows操作系統名稱和擴展名。默認情況下,擴展名通常是數據文件的.mdf,日誌文件的.ldf。你可以改變這些,如果你願意,但它可能導致混亂,因為大多數人使用默認值作為最佳做法。有一個邏輯文件名,允許您引用文件中的數據庫中的操作,而不必參考包括驅動器在內的完整文件位置。邏輯名稱根本不必與物理名稱相匹配,但通常它們相同。
結論
這將介紹數據庫的文件存儲的內容。 下一篇文章我們將在服務器上實際創建一個數據庫,這是一個比這個帖子更容易的感覺。
數據庫基礎#3:數據庫中的數據?