SQL管理對象 (SMO)模型是SQL Server 2005的管理對象模型。SMO 在SQL Server管理對象模型上有顯著的設計和結構上的提升。它是一個簡單易用的,有著豐富的基于.NET Framework托管代碼的對象模型。SMO 是開發(fā)數(shù)據(jù)庫管理應用程序的主要的工具。SQL Server 管理工具集的每一個功能都可以用SMO來實現(xiàn)。
新的SMO對象模型和Microsoft Windows Management Instrumentation (WMI) APIs 替代了SQL-DMO,SMO比SQL-DMO更易使用。你依然可以使用SQL Server 2005 Beta 2中的SQL-DMO,但SQL-DMO 并不包含SQL Server 2005的特有的管理特性。
SMO 對象模型是SQL-DMO 的延續(xù)。SMO和SQL-DMO 在特性上是兼容的,包含很多相同的對象。Where possible, the original SQL-DMO design is followed, 但是SMO 有很多SQL-DMO 沒有的附加特性。為了實現(xiàn)SQL Server 2005中更多的DDL和管理功能,SMO增加了150多個新類。
SMO的主要優(yōu)點是性能和可伸縮性。SMO有緩存對象模型,它允許在對SQL Server應用改變之前改變對象的一些屬性。因此,SMO會更少的和服務器往返通訊,而且使得對象更加靈活。SMO也有優(yōu)化過的實例,這意味著你可以部分或全部的實例化一個對象,這樣你就不用實例化對象的所有屬性,從而可以快速的裝載多個對象。
和SQL-DMO只有一個單一的應用程序根目錄來保持對所有創(chuàng)建的服務器對象的引用不同的是,SMO允許為多個服務器建立多個根,而無需建立一個新的連接。SMO除了支持SQL-DMO類型的腳本外,還支持先進的多段腳本。你也可以把一個對象轉入捕獲模式來捕獲所有施加在這個對象上的DDL,無需對服務器做實際的改變。
為了支持“WMI監(jiān)控”和“通過SMO對象接口的服務端配置”,SQL-DMO也有一個可控制的計算機對象,這個對象能夠簡化到WMI的接口。
XML 技術
XML已經成為一種存儲和交換數(shù)據(jù)的通用格式,是那些帶標記的、結構化或半結構化信息的常用選擇,如:文本(帶有標示文檔結構和重點的標記),嵌套對象(結構化的),異類數(shù)據(jù)(半結構化的)。 XML也是一種用來在網(wǎng)絡上不同應用程序間散布數(shù)據(jù)的重要的、被廣為接受的標準。
Microsoft SQL Server 2000 支持通過Microsoft SQLXML來使用XML, 它允許你把關系型數(shù)據(jù)轉換為XML,把XML數(shù)據(jù)存在關系型表中。Microsoft SQL Server 2005 Beta 2通過把XML作為一類數(shù)據(jù)類型來實現(xiàn)這一功能,此外,它還提供了針對XML文檔的新的查詢語句和定位修改。
為了更好的滿足用戶使用XML數(shù)據(jù)的要求,Microsoft SQL Server 2005 Beta 2引入了一種新的XML數(shù)據(jù)類型。這種數(shù)據(jù)類型有多種方法—query(), exist(), value(), nodes()和 modify(),它們實現(xiàn)了XML查詢 (XQuery)規(guī)范中最重要的子集部分。事實上,SQL Server 2005 Beta 2已經擴充了這一規(guī)范的XML數(shù)據(jù)修改部分。為了支持XML類型,增加了相應的關鍵字用于注冊和管理XML schema。FOR XML 和OPENXML也有所改變,它們在SQL Server 2000中被引入用來在關系型數(shù)據(jù)和XML之間互相轉換,在SQL Server 2005 Beta 2中對此有所增強以更好的支持XML數(shù)據(jù)類型。
XML能夠比SQL Server所支持的那些標量數(shù)據(jù)類型更好的對復雜數(shù)據(jù)進行建模。例如那些基于字符串的內置數(shù)據(jù)類型char 或者是varchar并不能夠充分有效的利用XML數(shù)據(jù)的大量優(yōu)點。舉例來說,如果XML被存儲為一個字符串,那么你可以插入或檢索整個XML文檔,甚至能夠從中檢索連續(xù)的字符,但你不能定位查詢文檔中內容。通過XML數(shù)據(jù)類型,SQL Server 2005使我們能夠查詢XML文檔中的一部分,校驗文檔是否滿足XML schema,甚至能夠定位修改文檔中的內容。 它也將傳統(tǒng)的關系型數(shù)據(jù)和非結構化和半結構化的數(shù)據(jù)集成在一起,而這在SQL Server 2000中是不可能的。在SQL Server 2005中, XML數(shù)據(jù)被作為二進制大對象 (BLOBs)內部存放,使得重解析和壓縮更有效。
一個XML schema集可以和類型化XML的一列相關聯(lián),這樣便能夠對已存儲的XML數(shù)據(jù)的約束、插入、改寫、值的類型進行校驗,也能夠優(yōu)化存儲和查詢性能。SQL Server 2005 也提供了一些DDL 語句用于管理服務器上的schema。
SQL Server 2005 Beta 2 也對在SQL Server 2000中引入的FOR XML 和 OPENXML 功能作了增強。
FOR XML
SQL Server 2000 中的FOR XML 字句并不支持在服務器上處理XML結果,你不能把XML結果存在表中,或分配給一個變量。SQL Server 2005 Beta 2 通過支持XML數(shù)據(jù)類型和在服務器端處理XML增強了FOR XML功能,實現(xiàn)這一點是通過在FOR XML中增加TYPE 指示。例如,SELECT...FOR XML TYPE 語句所生成的XML數(shù)據(jù)類型的結果集可被分配給一個本地的XML變量,也可被用在INSERT 語句中用來插入XML數(shù)據(jù)類型列。 PATH 樣式指定了列的值如何表現(xiàn)在XML數(shù)的路徑中。包含在FOR XML中的TYPE和PATH選項簡化了復雜XML的生成,比FOR XML EXPLICIT查詢更易使用。
OPENXML
SQL Server 2000 基本上把FOR XML 子句和OPENXML 行集函數(shù)配對使用。也就是說,可以用FOR XML把關系型數(shù)據(jù)檢索為XML,用OPENXML可以把XML轉為關系型數(shù)據(jù),從而設置SQL連接和執(zhí)行查詢。SQL Server 2005 Beta 2 增強了OPENXML的功能。處理XML數(shù)據(jù)類型外,還支持幾種新的數(shù)據(jù)類型,如用戶定義類型(UDTs)。你可以在OPENXML WITH子句中使用它,你也可以傳遞一個XML數(shù)據(jù)類型實例給sp_preparedocument。
XML 查詢語言,或者XQuery是一種專為查詢各種類型XML數(shù)據(jù)的智能和高效的語言。使用XQuery,你可以對XML數(shù)據(jù)類型列和變量進行查詢。. 和許多XML 標準一樣, World Wide Web Consortium (W3C) 組織監(jiān)督著XQuery的開發(fā)。 XQuery由 Quilt 這種查詢語言發(fā)展而來,它基于多種查詢語言,如, XML Path Language (XPath) 1.0, XQL, 和 SQL, 它也把XPath 2.0 包含為一個子集。因此,如果你有使用XPath 1.0的經歷,你可以不用從頭學起。然而,它比XPath1.0有些顯著的增強,如:類型化,特別的函數(shù),支持更好的反復,結果集排序,結構等。
SQL Server 2005 Beta 2 提供了更多的XQuery 功能,它允許在數(shù)據(jù)層操作XML對象。它支持XQuery 1.0 Working Draft of November 15, 2003的一個靜態(tài)類型子集。
當前的 XQuery 規(guī)范包括查詢的語法和語義詞,但沒有XML文檔修改的部分。XML數(shù)據(jù)修改語言(DML)是XQuery數(shù)據(jù)修改特性的擴展, SQL Server 2005 Beta 2 增加了3個關鍵字: insert, update和 delete,他們都被用在XML數(shù)據(jù)類型的modify() 方法中。
SQL Server 2005引入了新的SQL Server應用程序框:Service Broker。 Service Broker 是一個分布式應用程序框架,它在數(shù)據(jù)庫到數(shù)據(jù)庫級上提供了可靠的異步通訊。
在過去10年來,電子商務應用的發(fā)展提出了在數(shù)據(jù)庫應用程序間管理工作流的需求。當一個在線客戶發(fā)出一個購書訂單,這個訂單需要提交在庫存、送貨、信用卡系統(tǒng)中提交事務,也需要使用另一個Web應用程序發(fā)出訂單確認信息。等待這些應用依次完成并不是好的方法,SQL Server 2005 提供了一個新的可伸縮的架構用來構建異步信息處理。
Service Broker 技術通過使用T-SQL DML語言擴展允許內部或外部應用程序發(fā)送和接收可靠、異步的信息流。信息可以被發(fā)送到發(fā)送者所在數(shù)據(jù)庫的隊列中,獲發(fā)送到同一SQL Server實例的另一個數(shù)據(jù)庫,或發(fā)送到同一服務器或不同服務器的另一個實例。
隨著SQL Server 2005的發(fā)布, 微軟在它集成商業(yè)智能平臺上擴展了一個主要的組件。SQL Server Reporting Services 可以在任何商業(yè)環(huán)境中,非常容易的把正確的數(shù)據(jù)傳遞給正確的人,從而擴展了微軟商業(yè)智能的前景。
Reporting Services 是一個創(chuàng)建、管理和發(fā)布傳統(tǒng)和交互式報表的完全基于服務器的平臺。它包括你創(chuàng)建、分發(fā)和管理報表所需的所有功能。與此同時,它的模塊化設計和可擴展的應用程序編程接口(APIs)使軟件開發(fā)者、數(shù)據(jù)提供者和企業(yè)能夠把報表集成在現(xiàn)有系統(tǒng)和第三方應用程序中。
SQL Server 2005中的Reporting Services包括: