SQL Server 是Microsoft 公司推出的關係型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平台使用。
Microsoft SQL Server 是一個全面的資料庫平台,使用集成的商業智慧型 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 資料庫引擎為關係型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程式。
基本介紹
中文名:sql server 資料庫
外文名:SQL Server
分類:關係型資料庫管理系統標準語言
公司:美國Microsoft公司
概述,版本介紹,SQL Server 2000,SQL Server 2005,SQL Server 2008,SQL Server 2012,2014,願景,體系,開放,可伸縮性,安全性,可擴展性,性能,操作簡單,技術風險,廠商風險,性能參數,機制結構,結構,接口,伺服器,計數器,新特性,
概述
SQL Server 是一個關係資料庫管理系統。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同開發的,於1988 年推出了第一個OS/2版本。在Windows NT 推出後,Microsoft與Sybase 在SQL Server 的開發上就分道揚鑣了,Microsoft 將SQL Server移植到Windows NT系統上,專注於開發推廣SQL Server 的Windows NT 版本。Sybase 則較專注於SQL Server在UNⅨ作業系統上的套用。
SQL Server 2000 是Microsoft 公司推出的SQL Server資料庫管理系統,該版本繼承了SQL Server 7.0 版本的優點,同時又比它增加了許多更先進的功能。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的伺服器等多種平台使用。
版本介紹
SQL Server 2000
SQL Server 2000 是Microsoft 公司推出的SQL Server 資料庫管理系統,該版本繼承了SQL Server 7.0 版本的優點,同時又比它增加了許多更先進的功能。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的伺服器等多種平台使用。
SQL Server 2005
Microsoft SQL Server 2005 是一個全面的資料庫平台,使用集成的商業智慧型 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 2005資料庫引擎為關係型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程式。
Microsoft SQL Server 2005 數據引擎是該企業數據管理解決方案的核心。此外 Microsoft SQL Server 2005 結合了分析、報表、集成和通知功能。這使您的企業可以構建和部署經濟有效的 BI 解決方案,幫助您的團隊通過記分卡、Dashboard、Web services 和移動設備將數據套用推向業務的各個領域。
與 Microsoft Visual Studio、Microsoft Office System 以及新的開發工具包(包括 Business Intelligence Development Studio)的緊密集成使 Microsoft SQL Server 2005 與眾不同。無論您是開發人員、資料庫管理員、信息工作者還是決策者,Microsoft SQL Server 2005 都可以為您提供創新的解決方案,幫助您從數據中更多地獲益。
SQL Server 2005 提供了5個不同版本:
SQL Server 2005 Enterprise Edition(32 位和 64 位)——企業版
SQL Server 2005 Standard Edition(32 位和 64 位)——標準版SQL Server 2005 Standard Edition 是適合中小型企業的數據管理和分析平台。它包括電子商務、數據倉庫和業務流解決方案所需的基本功能。Standard Edition 的集成商業智慧型和高可用性功能可以為企業提供支持其運營所需的基本功能。SQL Server 2005 Standard Edition 是需要全面的數據管理和分析平台的中小型企業的理想選擇。
SQL Server 2005 Workgroup Edition(僅適用於 32 位)——工作組版對於那些需要在大小和用戶數量上沒有限制的資料庫的小型企業,SQL Server 2005 Workgroup Edition 是理想的數據管理解決方案。SQL Server 2005 Workgroup Edition 可以用作前端 Web 伺服器,也可以用於部門或分支機構的運營。它包括 SQL Server 產品系列的核心資料庫功能,並且可以輕鬆地升級至 SQL Server 2005 Standard Edition 或 SQL Server 2005 Enterprise Edition。SQL Server 2005 Workgroup Edition 是理想的入門級資料庫,具有可靠、功能強大且易於管理的特點。
SQL Server 2005 Developer Edition(32 位和 64 位)——開發版SQL Server 2005 Developer Edition 允許開發人員在 SQL Server 頂部生成任何類型的應用程式。該應用程式包括 SQL Server 2005 Enterprise Edition 的所有功能,但許可用作開發和測試系統,而不用作生產伺服器。SQL Server 2005 Developer Edition 是獨立軟體供應商 (ISV)、諮詢人員、系統集成商、解決方案供應商以及生成和測試應用程式的企業開發人員的理想選擇。可以根據生產需要升級 SQL Server 2005 Developer Edition。
SQL Server 2005 Express Edition(僅適用於 32 位)——學習版SQL Server Express 資料庫平台基於 SQL Server 2005。它也可以替換 Microsoft Desktop Engine (MSDE)。通過與 Microsoft Visual Studio 2005 集成,SQL Server Express 簡化了功能豐富、存儲安全且部署快速的數據驅動應用程式的開發過程。
SQL Server Express 是免費的,可以再分發(受制於協定),還可以充當客戶端資料庫以及基本伺服器資料庫。SQL Server Express 是獨立軟體供應商 ISV、伺服器用戶、非專業開發人員、Web 應用程式開發人員、網站主機和創建客戶端應用程式的編程愛好者的理想選擇。如果您需要使用更高級的資料庫功能,則可以將 SQL Server Express 無縫升級到更複雜的 SQL Server 版本。
Microsoft SQL Server 2005 是用於大規模在線上事務處理 (OLTP)、數據倉庫和電子商務套用的資料庫平台;也是用於數據集成、分析和報表解決方案的商業智慧型平台。
SQL Server 2005 引入了一些“Studio”幫助實現開發和管理任務:SQL Server Management Studio 和 Business Intelligence Development Studio。在 Management Studio 中,可以開發和管理 SQL Server 資料庫引擎 與通知解決方案,管理已部署的 Analysis Services 解決方案,管理和運行 Integration Services 包,以及管理報表伺服器和 Reporting Services 報表與報表模型。在 BI Development Studio 中,可以使用以下項目來開發商業智慧型解決方案:使用 Analysis Services 項目開發多維數據集、維度和挖掘結構;使用 Reporting Services 項目創建報表;使用報表模型項目定義報表的模型;使用 Integration Services 項目創建包。
使用資料庫引擎創建用於在線上事務處理或在線上分析處理數據的關係資料庫。這包括創建用於存儲數據的表和用於查看、管理和保護數據安全的資料庫對象(如索引、視圖和存儲過程)。可以使用 SQL Server Management Studio 管理資料庫對象,使用 SQL Server Profiler 捕獲伺服器事件。
複製是一組技術,用於在資料庫間複製和分發數據和資料庫對象,然後在資料庫間進行同步操作以維持一致性。使用複製可以將數據通過區域網路、廣域網、撥號連線、無線連線和 Internet 分發到不同位置以及分發給遠程用戶或移動用戶。SQL Server 提供以下三種功能各不相同的複製類型:事務複製、合併複製和快照複製。
事務複製通常用於需要高吞吐量的伺服器到伺服器方案(包括:提高伸縮性和可用性、數據倉庫和報告、集成多個站點的數據、集成異類數據以及卸載批處理)。合併複製主要為可能存在數據衝突的移動應用程式或分步式伺服器應用程式而設計的。常見套用場景包括:與移動用戶交換數據、POS(消費者銷售點)應用程式以及集成來自多個站點的數據。快照複製用於為事務性複製和合併複製提供初始數據集;在適合數據完全刷新時也可以使用快照複製。利用這三種複製,SQL Server 提供功能強大且靈活的系統,以便使企業範圍的數據同步。
Reporting Services
SQL Server 2005 Reporting Services (SSRS) 是基於伺服器的報表平台,提供來自關係和多維數據源的綜合數據報表。Reporting Services 包含處理組件、一整套可用於創建和管理報表的工具和允許開發人員在自定義應用程式中集成和擴展數據和報表處理的應用程式編程接口 (API)。生成的報表可以基於 SQL Server、Analysis Services、Oracle 或任何 Microsoft .NET Framework 數據訪問接口(如 ODBC 或 OLE DB)提供的關係數據或多維數據。
利用 Reporting Services,可以創建互動式報表、表格報表或自由格式報表,可以根據計畫的時間間隔檢索數據或在用戶打開報表時按需檢索數據。Reporting Services 還允許用戶基於預定義模型創建即席報表,並且允許通過互動方式瀏覽模型中的數據。所有報表可以按桌面格式或面向 Web 的格式呈現。您可以從許多查看格式中進行選擇,以數據操作或列印的首選格式按需呈現報表。
Notification Services 引擎與 SQL Server 資料庫引擎協同工作。資料庫引擎存儲應用程式數據,並執行事件和訂閱之間的匹配。Notification Services 引擎控制數據流和數據處理,並且可以擴展到多台計算機。這可以改進要求極高的應用程式的性能。
全文搜尋
SQL Server 包含對 SQL Server 表中基於純字元的數據進行全文查詢所需的功能。全文查詢可以包括字詞和短語,或者一個字詞或短語的多種形式。使用全文搜尋可以快速、靈活地為存儲在 Microsoft SQL Server 資料庫中的文本數據的基於關鍵字的查詢創建索引。在 SQL Server 2005 中,全文搜尋提供企業級搜尋功能。
使用全文搜尋可以同時在多個表的多個欄位中搜尋基於字元的純文本數據。對大量非結構化的文本數據進行查詢時,使用全文搜尋獲得的性能優勢會得到充分的表現。例如,對數百萬行文本數據執行的 Transact-SQL LIKE 查詢可能需要花費幾分鐘時間才能返回結果;但對同樣的數據,全文查詢只需要幾秒或更少的時間,具體取決於返回的行數。可以對存儲在 char、varchar 或 nvarchar 列中的數據或存儲在 varbinary(max) 或 image 列中的格式化二進制數據(如 Microsoft Word 文檔)創建全文搜尋。
Service Broker
SQL Server 2005 Service Broker 為訊息和佇列應用程式提供 SQL Server 資料庫引擎本地支持。這使開發人員可以輕鬆地創建使用資料庫引擎組件在完全不同的資料庫之間進行通信的複雜應用程式。開發人員可以使用 Service Broker 輕鬆生成可靠的分散式應用程式。
使用 Service Broker 的應用程式開發人員無需編寫複雜的內部通信和訊息,即可跨多個資料庫分發數據工作負荷。由於 Service Broker 處理會話上下文中的通信路徑,所以降低了開發和測試工作。同時還提高性能。例如,支持網站的前端資料庫可以記錄信息並將處理密集型任務傳送到後端資料庫以進行排隊。Service Broker 確保在事務上下文中管理所有任務以確保可靠性和技術一致性。
SQL Server 2008
Microsoft SQL Server 2008是一個重大的產品版本,它推出了許多新的特性和關鍵的改進,使得它成為至今為止的最強大和最全面的Microsoft SQL Server版本。這篇文章詳細介紹了Microsoft SQL Server 2008中的新的特性、優點和功能。
Microsoft SQL Server 2008可以對整個資料庫、數據檔案和日誌檔案進行加密,而不需要改動應用程式。進行加密使公司可以滿足遵守規範及其關注數據隱私的要求。簡單的數據加密的好處包括使用任何範圍或模糊查詢搜尋加密的數據、加強數據安全性以防止未授權的用戶訪問、還有數據加密。這些可以在不改變已有的應用程式的情況下進行。
Microsoft SQL Server 2008為加密和密鑰管理提供了一個全面的解決方案。為了滿足不斷發展的對數據中心的信息的更強安全性的需求,公司投資給供應商來管理公司內的安全密鑰。Microsoft SQL Server 2008通過支持第三方密鑰管理和硬體安全模組(HSM)產品為這個需求提供了很好的支持。
* 增強了審查
Microsoft SQL Server 2008使你可以審查你的數據的操作,從而提高了遵從性和安全性。審查不只包括對數據修改的所有信息,還包括關於什麼時候對數據進行讀取的信息。Microsoft SQL Server 2008具有像伺服器中加強的審查的配置和管理這樣的功能,這使得公司可以滿足各種規範需求。Microsoft SQL Server 2008還可以定義每一個資料庫的審查規範,所以審查配置可以為每一個資料庫作單獨的制定。為指定對象作審查配置使審查的執行性能更好,配置的靈活性也更高。
SQL Server 2008為我們帶來了一些更強大的審計功能;或許其中最重要的一個就是變更數據捕獲(CDC)。使用CDC,你能夠捕獲和記錄發生在你資料庫中的任意INSERT、UPDATE或DELETE等操作。一旦你為一個資料庫啟用了CDC功能,你可以對該資料庫中的一個表進行跟蹤記錄。SQL Server會記錄對這些表進行修改的信息,並將其寫到啟用CDC功能的資料庫的某些系統表中。當一個用戶針對你的數據表運行INSERT、UPDATE或UPDATE操作時,相關操作事務和相關數據就會被記錄下來。對於INSERT來說,插入的數值會被記錄,而對於DELETE來說,被刪除的值同樣也會被記錄。UPDATE的操作略微有點不同。更新前後的數據都會被記錄。通過使用CDC功能,你不僅可以知道對數據進行了何種操作,你還可以恢復因誤操作或錯誤的程式所造成的丟失數據。這是SQL Server非常強大的一個新增功能,它為數據審計提供了一個非常有用的功能,在此以前,我們一般要藉助於第三方工具來實現這一功能。
SQL Server 2012
RTM發布
2012年3月7日訊息,微軟於正式發布最新的SQL Server 2012 RTM(Release-to-Manufacturing)版本,面向公眾的版本將於4月1日發布。微軟此次版本發布的口號是“大數據”來替代“雲”的概念,微軟對SQL Server 2012的定位是幫助企業處理每年大量的數據(Z級別)增長。
來自微軟商業平台事業部的副總裁Ted Kummert 稱:SQL Server 2012更加具備可伸縮性、更加可靠以及前所未有的高性能;而Power View為用戶對數據的轉換和勘探提供強大的互動操作能力,並協助做出正確的決策。即將推出三個主要版本和很多新特徵,同時微軟也透露了SQL Server 2012的價格和版本計畫,其中增加一個新的智慧型商業包。
SQL Server 2012主要版本包括新的商務智慧型版本,增加Power View數據查找工具和數據質量服務,企業版本則提高安全性可用性,以及從大數據到StreamInsight複雜事件處理,再到新的可視化數據和分析工具等,都將成為SQL Server 2012最終版本的一部分。
新功能
SQL Server 2012 對微軟來說是一個重要產品。微軟把自己定位為可用性和大數據領域的領頭羊。
8.增強的 PowerShell 支持- 所有的 Windows 和 SQL Server 管理員都應該認真的學習 PowderShell 的技能。微軟正在大力開發伺服器端產品對 PowerShell 的支持。
9.分散式回放(Distributed Replay)- 這個功能類似 Oracle 的 Real Application Testing 功能。不同的是 SQL Server 企業版自帶了這個功能,而用 Oracle 的話,你還得額外購買這個功能。這個功能可以讓你記錄生產環境的工作狀況,然後在另外一個環境重現這些工作狀況。
10.PowerView- 這是一個強大的自主 BI 工具,可以讓用戶創建 BI 報告。
11.SQL Azure 增強- 這和 SQL Server 2012 沒有直接關係,但是微軟確實對 SQL Azure 做了一個關鍵改進,例如 Reporint Service,備份到 Windows Azure 。Azure 資料庫的上限提高到了150G。
12.大數據支持- 這是最重要的一點,雖然放在了最後。 PASS(Professional Association for SQL Server)會議,微軟宣布了與 Hadoop 的提供商 Cloudera 的合作。一是提供 Linux 版本的 SQL Server ODBC 驅動。主要的合作內容是微軟開發 Hadoop 的連線器,也就是 SQL Server 也跨入了 NoSQL 領域。
系統要求
·支持的作業系統:Windows 7、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Vista SP2
SQL Server 2014中最吸引人關注的特性就是記憶體線上事務處理(OLTP)引擎,項目代號為“Hekaton”。記憶體OLTP整合到SQL Server的核心資料庫管理組件中,它不需要特殊的硬體或軟體,就能夠無縫整合現有的事務過程。一旦將表聲明為記憶體最最佳化,那么記憶體OLTP引擎就將在記憶體中管理表和保存數據。當它們需要其他表數據時,它們就可以使用查詢訪問數據。事實上,一個查詢會同時引用記憶體最佳化表和常規表。
SQL Server 2014增強記憶體相關功能的另一個方面是允許將SQL Server記憶體緩衝池擴展到固態硬碟(SSD)或SSD陣列上。擴展緩衝池能夠實現更快的分頁速度,但是又降低了數據風險,因為只有整理過的頁才會存儲在SSD上。這一點對於支持繁重讀負載的OLTP操作特別有好處。LSI Nytro快閃記憶體卡與最新SQL Server 2014協同工作,降低延遲、提高吞吐量和可靠性,消除IO瓶頸。
在SQL Server 2014中,列存儲索引功能也得到更新。列存儲索引最初是在SQL Server 2012引入的,目的是支持高度聚合數據倉庫查詢。基於xVelocity存儲技術,這些索引以列的格式存儲數據,同時又利用xVelocity的記憶體管理功能和高級壓縮算法。然而,SQL Server 2012的列存儲索引不能使用集群,也不能更新。
SQL Server 2014引入了另一種列存儲索引,它既支持集群也支持更新。此外,它還支持更高效的數據壓縮,允許將更多的數據保存到記憶體中,以減少昂貴的I/O操作。
2、雲整合
微軟一直將SQL Server 2014定位為混合雲平台,這意味著SQL Server資料庫更容易整合Windows Azure。例如,從SQL Server 2012 Cumulative Update 2開始,您就能夠將資料庫備份到Windows Azure BLOB存儲服務上。SQL Server 2014引入了智慧型備份(Smart Backups)概念,其中SQL Server將自動決定要執行完全備份還是差異備份,以及何時執行備份。SQL Server 2014還允許將本地資料庫的數據和日誌檔案存儲到Azure存儲上。此外,SQL Server Management Studio提供了一個部署嚮導,它可以幫助您輕鬆地將現有本地資料庫遷移到Azure虛擬機上。
SQL Server 2014還增加了一個功能,允許將Azure虛擬機作為一個Always On可用性組副本。可用性組(Availability Groups)特性最初在SQL Server 2012引入,提供了支持高可用性資料庫的故障恢復服務。它由1個主副本和1~4個次副本(SQL Server 2014增加到8個)構成。主副本可以運行一個或多個資料庫;次副本則包含多個資料庫副本。Windows Azure基礎架構服務支持在運行SQL Server的Azure虛擬機中使用可用性組。這意味著您用一個虛擬機作為次副本,然後支持自動故障恢復。
今天的Internet是一個令人激動的新世界,它具有鮮明的圖像,實時的視頻點播,高保真的語音和聲音,以及諸如金融數據趨勢和地理編碼之類的複雜信息。通過集中管理文本、圖像、音頻、視頻和地理信息,Oracle8i的interMedia使客戶能夠利用Web的多媒體特性。相比之下,Microsoft SQL Server 7.0對非傳統的數據類型缺乏內置的支持。作為一種替代的策略,Microsoft提倡將非傳統的數據存儲到單獨的伺服器里的平面(flat)檔案中,然後使用OLE-DB將它們連結在一起。使用這種策略,集成在Web中發現的各種數據類型,將會產生複雜的、不安全的、維護量大的數據包(mess),這種數據包缺乏事物的完整性。
Process: Working Set SQL Server的該參數應該非常接近分配給SQL Server的記憶體值。在SQL Server設定中,如果將"set working set size"置為0,則Windows NT會決定SQL Server的工作集的大小。如果將"set working set size"置為1,則強制工作集大小為SQLServer的分配記憶體大小。一般情況下,最好不要改變"set working set size"的預設值。
多年來,SQL Server 一直被認為是一種客戶機/伺服器系統。事實上,Sybase DataServer(以此為基礎開發了原始的 SQL Server)正是第一個作為客戶機/伺服器系統開發的商用關係資料庫系統。那這又說明了什麼呢?這不只意味著 SQL Server 是一個雙層系統。從傳統上看,雙層系統意味著客戶機應用程式運行在一台機器上,向另一台計算機上的伺服器傳送請求。而對於 SQL Server,客戶機/伺服器意味著 SQL Server 的組成部分,即客戶機 API 部分,駐留在處理結構中的遠端,與伺服器組件本身是分開的。
三層系統也採用了同樣的模型。多年以來,SQL Server 一直用在事務處理監視系統中,例如 BEA 的 Tuxedo 以及 Compaq 的 ACMSxp,這些系統早在二、三十年前就採用了典型的三層模型。三層模型在今天基於 Web 的套用系統中占據了支配地位,這類系統以 Microsoft 的 MTS 以及新的 COM+ 1.0 為代表。從 SQL Server 的角度看,三層解決方案中的客戶機程式是放在中間層的。中間層直接與資料庫互動。實際的桌面,或瘦客戶機(Thin Client),使用其他機制並通常直接與中間層互動,而不是直接與資料庫系統互動。
結構
從結構的角度看,SQL Server 關係伺服器組件本身並不真正關心客戶機程式運行的位置。事實上,就 SQL Server 而言,即使在運行 SQL Server 的同一台機器上運行應用程式,仍然還是客戶機/伺服器模型。伺服器運行一個單獨的多執行緒進程,為來自客戶機的請求提供服務,不管客戶機的位置在哪裡。客戶機程式代碼本身是單獨的運行在客戶機應用程式內部的 DLL,與 SQL Server 的實際接口是在客戶機和伺服器之間對話的“表格數據流”(Tabular Data Stream,TDS) 協定。一個常見的問題是“什麼是 SQL Server 的本機接口呢?”很長時間以來,很多開發人員一直都不願意使用 ODBC 這樣的接口,因為他們認為由 Sybase 開發的客戶機 API,也就是 DB-Library,是 SQL Server 的本機接口。實際上,SQL Server 關係伺服器本身並沒有本機 API,它的接口就是在客戶機和伺服器之間的通信流協定 TDS。TDS 把客戶機傳送給伺服器的 SQL 語句封裝起來,也把伺服器返回給客戶機的處理結果封裝起來。任何直接處理 TDS 的 API 都是 SQL Server 的本機接口。
讓我們來看一下客戶機的組件,客戶機結構中的某些部分就不在這裡討論了,因為它們不屬於 SQL Server 的範疇。但如果您在編寫應用程式的話,就必須了解這些部分。大家知道得最多的應該是各種對象模型,如果您正在編寫 ASP 或 Microsoft Visual Basic(R)應用程式,就需要通過 ADO 與資料庫系統互動,而不是直接調用底層的 API,例如 ODBC 或 OLE-DB。ADO 映射到 OLE-DB,而 RDO 映射到 ODBC。因此,作為這種最常用的編程模型的對象模型,並不是 SQL Server 客戶機結構中的嚴格意義上的組件。此外,還有另外一些組件可以插接到 SQL Server 基礎結構上面的這一層。OLE-DB 的“會話池服務提供程式 (Session Pooling Service Provider)”就是這種組件的一個例子。
接口
SQL Server 有兩個接口可以認為是 SQL Server 7.0 的本機接口,即 OLE-DB 和 ODBC。DB-Library 接口也是本機的,它與 TDS 通信,但是 DB-Library 使用的是 TDS 較老的版本,需要在伺服器上進行一些轉換。現有的 DB-Library應用程式仍然可以繼續與 SQL Server 7.0 協同使用,但是很多新的功能和性能提高等好處只能通過 ODBC 和 OLE DB 才能利用。更新 DB-Library 使其支持 SQL Server 7.0 的新能力,將會導致與現有應用程式的很多不兼容性,因此需要修改應用程式。ODBC 在五年之前就替代了 DB-Library,是新的 SQL Server應用程式更理想的 API,因此引入不兼容的 DB-Library 新版本並不明智。從圖 2 可以看到,所有這些客戶機 API 都有三個部分。最上面的部分實現 API 的細節,例如行集和游標應該是什麼樣等等。TDS 格式化程式負責處理實際請求,例如 SQL 語句,並將其封裝成 TDS 訊息包,傳送給 SQL Server,獲得返回的結果,然後再把結果反饋到接口實現。
除了我們在前面已經提到的局限性,即 DB-Library 仍然只能使用 SQL Server 6.5 版,TDS 協定對於所有 API 都是相同的。ODBC 和 OLE-DB 在與 SQL Server 7.0 通信時使用 SQL Server 7.0 版,但也能夠與 6.5 或 6.0 伺服器通信。另一個是 Net-Library,這是一個抽象層,客戶機和伺服器都在此層上同網路抽象接口通信,不必為 IPX 還是 TCP/IP 困擾。在這裡我們將不討論 Net-Library 的工作細節;只要知道它們的工作基本上是將來自的網路通信底層的細節隱藏起來不讓軟體的其他部分看到就可以了。
伺服器
前面已經提到過,客戶機與 SQL Server 通信的主要方法就是通過使用 TDS 訊息。TDS 是一種簡單協定。當 SQL Server 接收到一條訊息時,可以認為是發生了一個事件。首先,客戶機在一個連線上傳送登錄訊息(或事件),並得到返回的成功或失敗的回響。當您希望傳送 SQL 語句時,客戶機可以把 SQL 語言訊息打包傳送給 SQL Server。另外,當您希望調用存儲過程、系統過程或虛擬系統存儲過程(我們後面還要詳細討論)時,客戶機可以傳送 RPC 訊息,這種訊息相當於 SQL Server 上的一個 RPC 事件。對於上面的後兩種情況,伺服器會以數據令牌流的形式送回結果。Microsoft 沒有把實際的 TDS 訊息寫入文檔中,因為這被認為是 SQL Server 組件之間的私用契約。
目錄存儲過程是另一類關鍵的客戶機/伺服器的互動部分。這些存儲過程首先在 ODBC 的 SQL Server 6.0 中出現,包括諸如 sp_tables 和 sp_columns 等存儲過程。ODBC 和 OLE-DB API 定義了描述有關資料庫對象的元數據的標準方法,這些標準需要適用於所有類型的 RDBMS 伺服器,而不必調整為 SQL Server 自己的系統表。不是客戶機向伺服器傳送對系統表的多個查詢,並在客戶機端建立標準的元數據視圖,而是創建一組存儲在伺服器上的系統存儲過程,並對 API 返回適當格式的信息。這種方法使得通過一次通信就可以完成很多重要的元數據請求。為 ODBC 編寫的過程已經寫入文檔,通常適合需要從系統表中獲取信息但其他機制沒有提供這種方法的情況。這使得Transact-SQL過程和 DB-Library應用程式可以訪問元數據,而不需要編寫對 SQL Server 系統表的複雜查詢,並且使應用程式不受今後 Microsoft 修改系統表的影響。OLE DB 定義了一組架構行集,它們類似於 ODBC 的元數據,但又和它不同。它創建了一組新的目錄存儲過程,以更有效地為這些架構行集植入數據。但是,這組新的存儲過程沒有寫入文檔,因為這些存儲過程重複了早先提供的功能。通過現有的若干種方法都可以得到元數據,因此 SQL Server 開發組決定不顯露這些並沒有為編程模型增加新內容的對象。