SQL Server 2000 XML 概述

來源:互聯網
上載者:User

摘要:在一個任務關鍵資料存放區於不同異構源的世界中,可延伸標記語言 (XML) (XML) 通過一種標準格式為不同應用程式間的資料交換和不同系統間的整合提供了強大的機制。

XML 已被緊密整合到 Microsoft SQL Server 關聯式資料庫管理系統 (RDBMS) 當中,可以協助開發人員建立下一代 Web 和公司專屬應用程式程式。本白皮書講述了 SQL Server 2000 中的 XML 功能以及這些功能與 Oracle 中的功能比較。

為何實現 XML 與 RDBMS 的整合?

XML 支援以下商業方案下的資訊交換:

企業對企業 (B2B)

不同供應商的整合供應鏈。

企業對消費者 (B2C)

要求從資料庫擷取資料的基於瀏覽器的應用程式。

企業內

整合,例如來自不同供應商的企業資源規劃 (ERP) 和客戶關係管理 (CRM) 軟體。

這些商業方案要求為資訊交換提供以下 XML 功能:

  • 映射鬆散結合的商業系統。

    SQL Server 2000 通過 XML 視圖、XPath 查詢和 SELECT 語句為關係資料提供 XML 視圖。從 XML 資料到關係表的映射是使用 OPENXML 和注釋架構提供的。

  • 對資料庫的安全 HTTP 串連。
  • 對任意來源的 XML 資料的查詢、更新和載入能力。

    SQL Server 2000 為 SQL Server (SQLOLEDB) 和 Microsoft ActiveX 資料對象 (ADO) 訪問儲存於 SQL Server 中的資料提供了 URL 和 Microsoft OLE DB 提供者。

SQL Server 2000 中的 XML 提供者

Microsoft SQL Server 2000 是適合建立基於 XML 的應用程式的高度可伸縮和可靠的平台。SQL Server 2000 提供了以下 XML 功能:

  • HTTP 訪問
  • 用於以 XML 格式檢索結果的新的 SELECT 語句選項 (FOR XML)
  • XML 模式
  • XML 視圖
  • XPath 查詢
  • OPENXML
  • OLE DB 和 ADO 訪問
HTTP 訪問

Microsoft SQL Server 2000 為通過 HTTP 訪問資料提供了三種方法:

  • URL 處的 SQL 陳述式

    SQL 陳述式和預存程序可以直接從 URL 處執行。這允許特別迅速地訪問資料庫中的資料。

  • 模板

    模板是包含一個或多個嵌入式 SQL 陳述式的有效 XML 文檔。跟 SQL 陳述式一樣,模板可以在 URL 處或在檔案中指定。模板允許使用 URL 檢索 SQL 資料而不向查詢者暴露資料庫的結構;查詢者只能知道模板名稱。這省卻了在 URL 處輸入很長的 SQL 陳述式的麻煩。SQL Server 2000 在模板內支援以下功能:

    • SELECT 語句和實體引用。
    • 預存程序的執行。
    • 參數傳遞和預設參數的指定。
    • XPath 查詢。
  • HTML 事件後整合

    HTML 表單輸入變數可以作為 URL 指定模板中的參數通過程式傳遞。可延伸樣式表語言 (XSL) (XSL) 樣式表可用來處理用戶端或 Web 服務器訪問機制的輸出。

使用 HTTP 訪問時可用的選項

HTTP 存取方法支援以下選項:

contenttype

該關鍵字指定返迴文檔的內容類型。text/XML 是預設的文檔內容類型。

xsl

該選項允許使用 XSL 檔案處理查詢結果。

安全

安全基於每個虛擬根目錄設定,許可權也在 SQL Server 上設定。ISAPI 動態連結程式庫 (DLL) 有三種身分識別驗證選項:

匿名訪問直接在虛擬根上設定 Microsoft Windows 或 SQL Server 登入/密碼並為所有使用者所用。 基本驗證使用該選項時,清晰的文本 SQL Server 登入/密碼要通過網路傳遞,因此該選項要結合安全通訊端層 (SSL) 一起使用。 整合安全使用 Windows 存取控制清單 (ACL)。
用於以 XML 格式檢索結果的新的 SELECT 語句選項 (FOR XML)

您可以對已有關聯式資料庫執行 SQL 查詢並以 XML 格式而不是標準的行集格式返回結果。這些查詢可以直接執行,也可以從預存程序中執行。要檢索 XML 結果,請使用 SELECT 語句的 FOR XML 字句並指定 RAW、AUTO 或 EXPLICIT 等 XML 模式。

XML 模式

指定的 XML 模式決定了返回 XML 文檔的形狀。您可以指定以下 XML 模式:

RAW

RAW 模式擷取查詢結果並將結果集中的每一行轉化為一個 XML 元素,並使用一個常規標識符作為元素標籤,SELECT 中的列成為屬性。

AUTO

AUTO 模式以簡單的嵌套 XML 樹返回查詢結果。FROM 語句中至少有一列出現在 SELECT 語句中的表都被表示為 XML 元素。SELECT 語句中列出的列被映射為相應的元素屬性。列也可以映射為子項目。結果集中元素的嵌套或者層次由 SELECT 語句中指定列所標識的表順序決定。最左邊的表將成為最頂層元素。次左邊的表(由 SELECT 語句中的列標識)將嵌套在頂層元素內,依次類推。

EXPLICIT

在 EXPLICIT 模式下,您可以顯式地定義結果 XML 樹的形狀。使用該模式要求以特殊方式書寫查詢,有關所需嵌套的附加資訊也作為查詢的一部分顯式指定。

(圖 1)顯示了在 URL 中使用虛擬路徑和 SQL 串以 AUTO 模式輸出的結果。


如果您的瀏覽器不支援內嵌框,請單擊此處在單獨的頁中查看。

圖 1 在 URL 中使用虛擬路徑和 SQL 串以 AUTO 模式輸出的結果樣本

使用 XML 模式時可用的選項

XML 模式支援以下選項:

XMLDATA

該選項隨 XML 文檔返迴文檔架構。

BINARY base64

在查詢中指定該選項可以返回 base64 編碼格式的位元據。在 RAW 和 EXPLICIT 模式下,不指定該選項檢索位元據的結果是產生錯誤。

ELEMENTS

如果指定了該選項,列將以子項目形式返回,如(圖 2)所示。否則,列將被映射為 XML 屬性。該選項只支援在 AUTO 模式下使用。


如果您的瀏覽器不支援內嵌框,請單擊此處在單獨的頁中查看。

圖 2 使用元素選項的輸出樣本

XML 視圖

Microsoft SQL Server 2000 引入了幾個 XML-資料架構語言注釋以便提供資料庫的 XML 視圖。您可以在 XML-資料架構下使用這些注釋來指定 XML-到-關係的雙向映射。這包括 XML-資料架構中元素和屬性到資料庫中表和列的映射,以及反向的映射。預設情況下,注釋架構中元素名映射於指定資料庫中相同名稱的表(視圖),而屬性對應於相同名稱的列。這些注釋還可以用於指定 XML 中的層次關係。

XPath 查詢

SQL Server 2000 支援 XPath 語言的一個子集,使用它和前面講述的 XML 視圖技術可以從資料庫擷取 XML 結果。

OPENXML

OPENXML 是一個 Transact-SQL 關鍵字,可以在記憶體中的 XML 文檔內提供關係/行集視圖。OPENXML 是類似於表或視圖的行集提供者。OPENXML 通過將資料從 XML 文檔傳入關係表而提供了在 Transact-SQL 上下文中訪問 XML 資料的機制。因此,OPENXML 允許您管理 XML 文檔及其與相關環境的互動。

OPENXML 可以用在 SELECT、INSERT、UPDATE 和 DELETE 等語句中。您可以指定 OPENXML 代替指定資料來源表或視圖。

XML 文檔可以作為文本參數(charncharvarcharnvarchartextntext)傳遞給預存程序。OPENXML 語句可與其他 Transact-SQL 陳述式一起使用來提供 XML 資料的行集視圖,因此執行插入、更新、刪除和聯結等關係操作時可以將 XML 文檔作為資料來源。這可以用來通過單個預存程序調用對資料庫執行多行、多表更新。

OLE DB 和 ADO 訪問

SQLOLEDB 已為 XML 和 Xpath 做了擴充。添加了一個新的 ICommandStream 介面用來向 OLE DB 傳遞需要處理的模板。另外,OLE-DB 提供者的屬性集也得到擴充,允許支援 IStream 的對象規範返回 XML 結果以及支援使用通過映射架構定義的 XML 視圖進行 XPath 查詢。流對象是在 ADO 2.5 中引入的,現在可以與新引入的語言分支一起用來向資料庫發送 XPath 查詢和從資料庫接收 XML 結果。

Oracle 比較分析

SQL Server 2000 中的 XML 功能與 Oracle 中的功能類似。其主要差別在於 Oracle 建立了一個常規的 XML 架構,而 Microsoft 在 SQL Server 2000 內建立了特殊的 XML 支援。SQL Server 2000 支援通過簡單的“隨插即用”公開機制(XML 視圖)在鬆散結合的商業系統間提供映射。例如,它直接包含了對檢索 (FOR XML) 和儲存 (OPENXML) XML 資料的支援。而 Oracle 的 XML 技術即使執行簡單的 XML 任務也需要複雜的編程工作。與 Oracle 的解決方案不同,SQL Server 2000 為產生不同格式的 XML 文檔提供了內在支援,而不必進行 XSL 轉換。

功能列表
功能
SQL Server 2000
Oracle
鬆散結合商業系統的公開映射
這些功能在 XML 和資料關係視圖間提供雙向映射。
SQL Server 2000 整合的 XML 功能允許通過最少的編程工作啟用系統。
Oracle 不帶任何整合 XML 特定功能。

XML 視圖
XPath 支援
Transact-SQL FOR XML 擴充
Transact-SQL OPENXML 擴充

無特定功能。必須編寫自訂程式。

到 SQL 的內在 XML 擴充
允許使用者利用其 SQL 技能快速啟用應用程式,而不必進行額外的編程工作。
SQL Server 2000 提供了到 SQL 語言的內在擴充,可以用來從標準 SQL 查詢返回 XML 資料。
Oracle 提供的伺服器端工具 + 生產力未對標準 SQL 進行擴充,要求額外編程才能返回 XML 資料。

Transact-SQL FOR XML 擴充
Transact-SQL OPENXML 擴充

無特定功能。必須使用 XSQL 工具 + 生產力編寫自訂程式。

不同的 XML 存取方法
這些方法為通過網路連接訪問 XML 資料的編程人員帶來了靈活性。
SQL Server 2000 和 Oracle 均支援使用不同方法訪問資料庫中的 XML 資料。

HTTP 訪問
OLE DB/ADO 訪問
JDBC

HTTP 訪問
OLE DB/ADO 訪問
JDBC

XML 模板
XML 模板允許在伺服器中介層上儲存 XML 商業邏輯。
SQL Server 和 Oracle 均支援通過選擇性參數在伺服器上儲存 XML 查詢範本。


URL/HTTP 訪問
XML 模板


URL/HTTP 訪問
XSQL 模板

對 XML 資料的安全
Web 存取

網路連接 Internet 應用程式要求安全的訪問。
SQL Server 2000 提供了可在單表級上管理的安全性。
Oracle 提供了有限層級的安全性並支援加密整個資料庫擁有者,但不支援單表級的安全性。

資料庫使用者層次安全性
資料庫物件級安全

資料庫使用者層次安全性

複雜 XML 文檔的進階搜尋選項
SQL Server 2000 和 Oracle 均提供了搜尋複雜文字文件(包括 XML)的支援。

全文檢索搜尋

帶分割功能的媒介文本搜尋

XML 剖析器
編程人員在設計 XML 應用程式時可使用這些工具獲得最大的能力和靈活性。


支援多種語言的 MSXML COM 支援剖析器


支援多種語言的 Oracle 剖析器

SQL Server 2000 和 Oracle XML 功能比較

儘管 Oracle 提供了一個常規 XML 架構,但您必須編寫自訂程式才能使用其大部分 XML 功能。Oracle 提供了可被擴充以識別 XML 標記的 XML 常值搜尋功能。

本文將比較以下 SQL Server 2000 和 Oracle XML 功能。

XML 視圖

SQL Server 2000 包括為關係資料提供 XML 視圖的技術。而 Oracle 目前必須編寫自訂程式提供映射。

對資料庫的內在擴充

資料庫中的整合功能與外部實現的功能相比可以提供更高的效能。建立 SQL Server 2000 內在 XML 功能的決定考慮了這些效能因素。Oracle 不帶內在 XML 支援。

檢索動態 XML 格式

Oracle 查詢產生類似於以元素為中心的 RAW 格式的固定 XML 格式。要得到更有用的格式,編程人員必須編寫 XSL 轉換或者 Java 代碼。SQL Server 2000 不僅提供類似於 RAW 的模型,而且允許直接產生更“有價值”的 XML(使用 XML 視圖和 FOR XML AUTO 及 EXPLICIT 模式)。此外,SQL Server 2000 為返回 XML 流格式的查詢結果提供了一個流介面。

XML 更新

Oracle 和 SQL Server 2000(帶 Web 發行版)均支援批量裝載。SQL Server 具有通過 XML 在伺服器上提供行集的 OPENXML 以及使用 XML 文法提供更新的更新程式(Web 發行版)。Oracle 具有執行類似功能的 Java 包。

Oracle XSQL 模板與 SQL Server 2000 XML 模板

Oracle 使用 XML SQL Utility for Java(用於將資料編排為 XML 格式)和 XSQL Servlet(用於 URL 訪問)來執行模板檔案。SQL Server 2000 通過提供檢索 XML 資料的內在支援 (FOR XML) 為執行模板檔案提供了整合度更高的解決方案。Oracle 的 XSQL 模板檔案只可以通過 XSQL Servlet 執行。要以其他任何方式執行 Oracle 模板,需要自訂 Java 編程。SQL Server 2000 模板既可以從 URL 執行,也可以從 ADO 程式執行。

XPath 查詢

Oracle 帶有一個如何向 SQL 映射 Xpath 子集的 alpha 級示範。SQL Server 2000 含有一個出售版本的 XPath 子集。

全文檢索索引和索引

SQL Server 2000 為 OPENXML 提供了溢出列文法,可以用來從文檔提取索引資訊。Oracle 為從文檔提取資料建立索引提供了類似的方法。Oracle 含有一個按層次執行的文本檢索組件(WITHIN 子句)。雖然 Oracle 不能執行關聯,但它支援多級巢狀查詢。SQL Server 2000 中的全文檢索索引系統目前不提供層級索引和以純文字格式搜尋 XML。它不包含用來識別標記和屬性名稱的特殊配置。

XML 流

SQL Server 2000 提供了行集文法以及來自 ADO 的 XML 流介面。Oracle 只支援行集文法。

延展性和效能

SQL Server 2000 可以使用 OPENXML 和 FOR XML 查詢將部分負荷從中介層推至伺服器。

雖然很難比較兩個產品的效能和延展性,但 SQL Server 由於能夠直接通過查詢產生 XML 而不必使用 XSLT 或 Java 程式進行轉換而具有一定優勢。

物件檢視

Oracle 具有對象關係支援並使用這一功能為資料庫中儲存的資料提供 XML 物件檢視。SQL Server 2000 擁有帶 ADO 對象支援的不同模型。

XML 剖析器、架構處理器和 XML 開發組件

Oracle 擁有針對不同語言的 Transviewer bean、架構處理器和 XML 剖析器。這些功能與資料庫沒有關係。MSXML 和第三方工具 + 生產力提供相同的功能。

XML 類產生器

跟 Oracle Transviewer bean 和 XML 剖析器一樣,該功能與資料庫技術沒有關係。

結論

Microsoft SQL Server 2000 提供了專門為 Web 和資料庫開發人員設計的 XML 功能。Web 開發人員不必學習資料庫編程即可以使用 SQL Server 2000 XML 功能,這是因為 SQL Server 2000 支援標準的 XML 構造(比如 Xpath),允許開發人員與資料庫進行互動。與之類似,資料庫開發人員也不必學習 XML 編程即可以使用 FOR XML 子句獲得 XML 查詢結果或使用 OPENXML 操縱 XML 資料。最後,SQL Server 2000 為定義企業對企業事務的架構映射提供了簡單的公開機制和 XML 視圖。

本文檔所包含的資訊代表了在發布之日,Microsoft Corporation 對所討論問題的當前看法。因為 Microsoft 必須順應不斷變化的市場條件,故該文檔不應理解為 Microsoft 一方的承諾,Microsoft 不保證所給資訊在發布之日以後的準確性。

本文檔僅供參考。在本文檔中,MICROSOFT 不做任何明示或暗示的保證。

使用者必須遵守所有適用的著作權法。在不對著作權法所規定的權利加以限制的情況下,如未得到 Microsoft 公司明確的書面許可,不得出於任何目的、以任何形式或手段(電子的、機械的、影印、錄製等等)複製、傳播本文的任何部分,也不得將其儲存或引入到檢索系統中。

Microsoft 可能擁有本文檔主題涉及到的專利、專利使用、商標、著作權或其它智慧財產權。除非在 Microsoft 書面許可協議中明確提到,否則購買本文檔並不向您提供其中的任何專利、著作權或其他智慧財產權。

2000 Microsoft Corporation。著作權所有,並保留一切權利。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.