【導讀】SQL Server 2005是微軟的下一代數據管理和分析解決方案,它將給企業級應用數據和分析程序帶來更好的安全性、穩定性和可靠性,使得它們更易于創建、部署和管理。本文詳細介紹SQL Server 2005的新特性。
三、查詢通知
SQL Server 2005引入了對SQL Server 查詢的通知支持。你可以使用這一功能來發送一個命令到SQL Server,并且要求當其后運行的同樣命令產生不同的結果時,SQL Server生成一個通知。這一功能是通過從屬對象檢測到基礎數據的改變來實現的。可用通過多種客戶端API將命令發送到服務器,如:ADO.NET, OLE DB, Open Database Connectivity (ODBC), Microsoft ActiveX Data Objects (ADO), 或 SOAP等,這些命令可能包含一個通知請求的tag。對于被作為請求一部分的被執行的每一條語句,服務器都會為請求中的每一條語句創建一個“通知訂閱”。通知通過一個SQL Service Broker 隊列傳遞,應用程序可以輪詢,并且無論通知是否可用,都可以使用活動服務,或者阻礙語句的返回。 查詢通知對于在那些數據庫驅動Web 站點應用程序中啟用結果緩存非常有用。圖 4 顯示了查詢通知處理過程。

圖 4: 查詢通知
四、MARS
多活動結果集 (MARS)允許每個連接有超過1個的掛起請求,特別是允許每個連接有超過1個的打開的默認結果集。默認結果集是一種前向的、只讀的結果集,采用默認結果集,客戶端驅動可以透明的接受數據塊(表格數據流buffer大小的數據塊)以滿足應用程序的要求,而無需在服務器往返(就像使用服務器游標)。 應用程序可用使用一種簡單的一次一行的編程方法而不會有性能上的損失。多活動結果集消除了這一當前的限制:一個打開的默認結果集將阻止發送新的請求給服務器,直到整個結果集關閉為止。
五、數據鏡像中的透明的故障轉移
SQL Server 2005 可通過數據庫鏡像來支持熱備功能。如果一個SQL Server 實例失效,工作可以被自動的轉移到備份服務器上。這要求一個實例見證故障轉移,該實例被稱為見證實例。熱備例子要求已存在的客戶端連接必須知道故障轉移(和新的服務器實例建立連接),如果客戶端在下一次訪問中發生錯誤,必須手工編程來故障轉移,這并非好的方案,ADO.NET 2.0中的SqlClient 無需特別的編程便可支持客戶端的故障轉移。
XML Support
像本機XML數據類型和XQuery之類的先進功能使組織能夠無縫的連接內部和外部的系統。SQL Server 2005 將完全支持關系型和XML 數據,這樣企業可以以最適合的格式來存儲,管理和分析數據。對于那些已存在的和開放的標準如: Hypertext Transfer Protocol (HTTP), XML, Simple Object Access Protocol (SOAP), XQuery, 和 XML Schema definition language (XSD) 的支持也將更方便的讓整個企業系統互通。
XML 數據類型
XML能夠比SQL Server所支持的那些標量數據類型更好的對復雜數據進行建模。基于字符串的內置數據類型char 或者是varchar并不能夠充分有效的利用XML數據的大量優點。舉例來說,如果XML被存儲為一個字符串,那么你可以插入或檢索整個XML文檔,甚至能夠從中檢索連續的字符,但你不能定位查詢文檔中內容。通過XML數據類型,SQL Server 2005使我們能夠查詢XML文檔中的一部分,校驗文檔是否滿足XML schema,甚至能夠定位修改文檔中的內容。 它也將傳統的關系型數據和非結構化和半結構化的數據集成在一起,而這在SQL Server 2000中是不可能的。在SQL Server 2005中, XML數據被作為二進制大對象 (BLOBs)內部存放,使得重解析和壓縮更有效。
一個XML schema集可以和類型化XML的一列相關聯,這樣便能夠對已存儲的XML數據的約束、插入、改寫、值的類型進行校驗,也能夠優化存儲和查詢性能。SQL Server 2005 也提供了一些DDL 語句用于管理服務器上的schema。
XQuery
XML 查詢語言,或者XQuery是一種專為查詢各種類型XML數據的智能和高效的語言。使用XQuery,你可以對XML數據類型列和變量進行查詢。. 和許多XML 標準一樣, World Wide Web Consortium (W3C) 組織監視著XQuery的開發。 XQuery由 Quilt 這種查詢語言發展而來,它基于多種查詢語言,如, XML Path Language (XPath) 1.0, XQL, 和 SQL, 它也把XPath 2.0 包含為一個子集。因此,如果你有使用XPath 1.0的經歷,你可以不用從頭學起。然而,它比XPath1.0有些顯著的增強,如:類型化,特別的函數,支持更好的反復,結果集排序,結構等。
SQL Server 2005 Beta 2 提供了更多的XQuery 功能,它允許在數據層操作XML對象。它支持XQuery 1.0 工作草案(2003年11頁15日制定)的一個靜態類型子集。
Web Services 支持
在SQL Server 2005中,你可以開發數據庫層的XML Web services,把SQL Server 作為一個HTTP listener。這對那些以Web services為中心的應用程序提供了新型的數據訪問功能。在SQL Server 2005中,你可以使用HTTP直接訪問SQL Server,無需使用IIS這樣的中間層listener。SQL Server 開放了一個 Web service 接口, 可以執行SQL語句和調用函數和過程,查詢結果可用XML格式返回,并且可以利用Visual Studio 的Web services 架構。
XML for Analysis Services (XML/A)
用于分析的XML(XML/A)是一個本機的、基于標準的協議,被用于和Analysis Services服務器通信。通過它,可以非常容易的開發出新型的應用程序——集成分析和實時操作,可以從任何平臺,任何語言來訪問數據。采用XML/A本機協議,分析服務客戶端無需任何配置,每一個服務器自動的成為一個Web Services。一個輕量的Win32層可用于向后兼容,如Analysis Services 2000 的 OLE DB for OLAP,ADOMD和ADOMD.NET。大多數用戶也還能使用ADOMD.NET對象模型創建分析服務上的定制應用。
Application 架構
SQL Server 2005 帶來了新的SQL Server 應用程序架構,包括: Service Broker, Notification Services, SQL Server Mobile, SQL Server Express。Service Broker 是一個分布式應用程序框架,它在數據庫到數據庫級上提供了可靠的異步通訊。