資料庫基本概念
SQL Server 中的資料庫是由資料表集合所組成,該集合內儲存了一組特定的結構資料。而資料表中則包含資料列集合 (也稱為記錄或 Tuple) 和資料行 (也稱為屬性) 集合。資料表中的每個資料行都是為了儲存某類資訊而設計,例如,日期、名稱、金額和數字。
資料表擁有多種類型的控制項 (例如,條件約束、觸發程序、預設值及自訂的使用者資料類型),可確保資料的有效性。您可將宣告式參考完整性 (DRI) 條件約束加入資料表,以確保不同資料表的相關資料可維持一致。資料表中可以包含索引,就如同書本中的索引,讓您能更快速地找到資料列。資料庫也可包含使用 Transact-SQL 或 .NET Framework 程式設計碼的程序,以使用資料庫中的資料來執行作業。這些作業包括建立提供自訂存取資料表資料的檢視,或在資料列子集上執行複雜計算的使用者自訂函數。
例如,您建立了一個名為 MyCompanyDB 的資料庫來管理您公司中的資料。在 MyCompanyDB 資料庫中,您建立了一個名為 Employees 的資料表來儲存每位員工的資訊。此資料表還包含名為 EmpId、LastName、FirstName、Dept 以及 Title 的資料行。為了確保不會有兩位員工共用相同的 EmpId,且 Dept 資料行僅包含您公司中有效的部門編號,您必須新增條件約束至資料表中。
因為您想要快速尋找員工的資料,請根據員工識別碼或姓氏來定義索引。您將必須為每位員工新增一列資料到 Employees 資料表中,所以您還必須建立名為 AddEmployee 的預存程序。此程序自訂為接受新員工的資料值並執行新增資料列至 Employees 資料表的作業。您可能需要分部門的員工摘要。在此案例中,您定義了一個稱為 DeptEmps 的檢視,結合來自 Departments 和 Employees 資料表的資料並產生輸出。此圖顯示建立的部份 MyCompanyDB 。
SQL Server 執行個體可支援許多資料庫。每個資料庫中儲存的資料可以與其他資料庫相關,也可以毫無關連。例如,SQL Server 執行個體可以有一個儲存個人資料的資料庫,以及另一個儲存產品相關資料的資料庫。或者,一個資料庫儲存目前客戶的訂單資料,而另一個關聯資料庫則儲存年度報表所使用的客戶歷年訂單。
重要事項 |
---|
您不應在 master 資料庫中建立任何使用者物件,例如資料表、檢視、預存程序或觸發程序。master 資料庫包含 SQL Server 的執行個體所使用之系統層級的資訊,例如登入資訊和組態選項設定值。 |
OLTP 資料庫
線上交易處理 (OLTP) 關聯式資料庫最適合管理變更的資料。通常,這些關聯式資料庫會有數個使用者同時執行會變更即時資料的交易。雖然使用者的個別資料要求通常只需參考少數的資料列,但會同時發出許多要求。
OLTP 資料庫是設計用來讓交易式應用程式只寫入儘快處理單一交易所需的資料。OLTP 資料庫一般會執行下列項目:
支援大量的並行使用者定期新增與修改資料。
表現組織狀態連續性的變更,但不儲存其記錄。
含有許多資料,包括用來驗證交易的大量資料。
具有複雜的結構。
調整為可以對交易活動作快速的反應。
提供技術基礎結構,以支援組織的每日作業。
個別交易可以迅速完成,並存取相對較小量的資料。OLTP 系統是設計並調整用來處理同時進入資料庫的數百或數千筆交易。
OLTP 系統中的資料主要會組織成支援交易,例如下列項目:
記錄來自銷售點終端機或 Web 站台所下的訂單。
當庫存量降至指定標準時下訂單,以要求更多貨源。
追蹤製造廠中將裝配為最終產品的元件。
記錄員工資料。
資料倉儲
兩相對照之下可得知,OLTP 資料庫主要是用來擷取快速的資料變動和新增的狀態,資料倉儲則是為了要組織許多穩定資料,以方便分析和擷取。資料倉儲較常用來作為商務智慧應用程式的基礎。
下列是資料倉儲可執行作業的清單:
將異質資料來源的資料合併為單一同質性結構。
針對分析查詢的效率而非針對交易處理,以簡化的結構來組織資料。
包含有效、一致、已合併以及針對分析進行格式化的已轉換資料。
提供代表商務記錄的穩定資料。
以其他資料定期更新,而非進行頻繁的交易。
簡化安全性需求。