《Web數(shù)據(jù)庫(kù)技術(shù)應(yīng)用教程(第二版)》課件第13章-2_第1頁(yè)
《Web數(shù)據(jù)庫(kù)技術(shù)應(yīng)用教程(第二版)》課件第13章-2_第2頁(yè)
《Web數(shù)據(jù)庫(kù)技術(shù)應(yīng)用教程(第二版)》課件第13章-2_第3頁(yè)
《Web數(shù)據(jù)庫(kù)技術(shù)應(yīng)用教程(第二版)》課件第13章-2_第4頁(yè)
《Web數(shù)據(jù)庫(kù)技術(shù)應(yīng)用教程(第二版)》課件第13章-2_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

13.3XML查詢語(yǔ)言Xquery

面對(duì)XML數(shù)據(jù)量的指數(shù)級(jí)的增長(zhǎng),必然要求更有效的數(shù)據(jù)管理能力和更快、更精確的查詢。因此,如何從XML數(shù)據(jù)源中準(zhǔn)確有效地查詢所需信息,也就變得越來(lái)越重要。要做到這一點(diǎn),必須要有一個(gè)讓你能夠準(zhǔn)確地獲得所需信息、更新XML數(shù)據(jù)源中數(shù)據(jù)的可表達(dá)的查詢語(yǔ)言,XQuery正是這樣的語(yǔ)言。

XQuery是一種將查詢表示成表達(dá)式的功能語(yǔ)言。通過(guò)它所支持的多種表達(dá)式,它的查詢可以有各種不同的形式,各種XQuery表達(dá)式可以完全嵌套,也支持子查詢。目前,數(shù)據(jù)庫(kù)業(yè)界的三大主流廠商Oracle、IBM、Microsoft都已經(jīng)在各自的產(chǎn)品中提供了對(duì)XQuery規(guī)范的支持。

13.3.1XQuery概述

13.3.2XQuery語(yǔ)法簡(jiǎn)介1.文字與注釋2.?dāng)?shù)值類型3.XQuery的模塊結(jié)構(gòu)

XQuery模塊包括三個(gè)部分:名字空間和模式聲明、函數(shù)定義、查詢表達(dá)式。其中模式聲明和函數(shù)定義不是必需的。4.XPath路徑表達(dá)式

5.條件表達(dá)式

6.算術(shù)表達(dá)式與布爾表達(dá)式

7.FLWR表達(dá)式

13.3.3FLWR查詢FLWR描述了典型XQuery的結(jié)構(gòu)。在FLWR語(yǔ)句中,數(shù)據(jù)被綁定到變量,然后,再在后續(xù)步驟使用該變量。FLWR例句:FOR$bINdocument("Ch10-5-1.xml")/bib/vendor/bookWHERE$b/price=102AND$b/year="2001"RETURN$b/title相當(dāng)于SQL語(yǔ)句:selectb.titlefrombib.vendor.bookasbwhereb.price=102andb.year='2000'結(jié)果為:<title>Office2000VBA編程技術(shù)</title>13.3.4查詢深入

在FLWR查詢語(yǔ)句中,還可以使用if…then…else…這樣的選擇結(jié)構(gòu):

if<條件表達(dá)式>then<表達(dá)式一>else<表達(dá)式二>除路徑表達(dá)式和FLWR表達(dá)式之外,XQuery還有5種基本的表達(dá)式模式:元素構(gòu)造符、算子和函數(shù)表達(dá)式、條件表達(dá)式、限定表達(dá)式、列表構(gòu)造符、數(shù)據(jù)類型表達(dá)式。通過(guò)它們的多種組合,可以產(chǎn)生具有豐富而強(qiáng)大的查詢檢索功能的查詢語(yǔ)句。

13.4基于關(guān)系數(shù)據(jù)庫(kù)的XML處理

在XML數(shù)據(jù)和關(guān)系數(shù)據(jù)庫(kù)之間有兩個(gè)問(wèn)題,一個(gè)問(wèn)題是如何將存儲(chǔ)于關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)用XML的形式表達(dá)出來(lái),即XML的發(fā)布問(wèn)題;另一個(gè)問(wèn)題是如何將XML數(shù)據(jù)存儲(chǔ)于關(guān)系數(shù)據(jù)庫(kù)中,并能提供基于XML查詢語(yǔ)言的查詢。圖13-3表示了XML存儲(chǔ)和查詢系統(tǒng)的體系結(jié)構(gòu)。

13.4基于關(guān)系數(shù)據(jù)庫(kù)的XML處理(2)13.4.1關(guān)系數(shù)據(jù)的XML發(fā)布

為了在XML和數(shù)據(jù)庫(kù)之間傳輸數(shù)據(jù),需要在文檔結(jié)構(gòu)和數(shù)據(jù)庫(kù)結(jié)構(gòu)之間進(jìn)行相互的映射,這樣的映射通常分為兩大類:模板驅(qū)動(dòng)和模式驅(qū)動(dòng)。1.模板驅(qū)動(dòng)的映射這種方法的原理是首先定義一個(gè)模板,然后在模板中嵌入SQL指令,這些命令將交給數(shù)據(jù)庫(kù)關(guān)系系統(tǒng)進(jìn)行執(zhí)行。

2.模型驅(qū)動(dòng)的映射模型驅(qū)動(dòng)的映射是指數(shù)據(jù)從數(shù)據(jù)庫(kù)到XML文檔的傳送用一個(gè)具體的模型。它通過(guò)在DTD/Schemas中定義數(shù)據(jù)模型的方法,建立數(shù)據(jù)庫(kù)中數(shù)據(jù)與XML文檔中數(shù)據(jù)的映射。

13.4.2將XML文檔中的數(shù)據(jù)裝入關(guān)系數(shù)據(jù)庫(kù)

將XML文檔中的數(shù)據(jù)裝入關(guān)系數(shù)據(jù)庫(kù)有兩種通用的方法。一種是可以將整個(gè)文檔輸入到數(shù)據(jù)庫(kù)的列中。其二就是可以將文檔“撕碎”后放到多個(gè)關(guān)系型表格中。第二種方法充分利用了數(shù)據(jù)庫(kù)的查詢引擎和強(qiáng)大的更新功能,但是從不規(guī)則XML數(shù)據(jù)到SQL的映射比從SQL到XML的映射要困難得多。

13.4.3關(guān)系式數(shù)據(jù)中產(chǎn)生XML文檔

在SQLServer2000中通過(guò)使用SELECT語(yǔ)句可以把查詢結(jié)果存儲(chǔ)為XML文檔而不是通常意義上的結(jié)果集,這樣通過(guò)比原來(lái)少得多的編碼就可以使Web應(yīng)用或其他應(yīng)用直接使用XML文檔。將關(guān)系數(shù)據(jù)庫(kù)的查詢結(jié)果顯示成XML文檔是通過(guò)FORXML語(yǔ)句來(lái)完成的。在使用FORXML語(yǔ)句的同時(shí)可以指定XML的MODE(RAW、AUTO、EXPLICIT)以及XMLDATA的模式(Schema)。13.4.3關(guān)系式數(shù)據(jù)中產(chǎn)生XML文檔(2)FORXML語(yǔ)句的語(yǔ)法規(guī)則為:FORXMLmode[,XMLDATA][,ELEMENTS][,BINARYBASE64]各參數(shù)的含義說(shuō)明如下:

(1)mode:指定XML模式。XML模式?jīng)Q定所得到的XML的形式,mode共有三種取值,即RAW、AUTO、EXPLICIT。

(2)XMLDATA:指定應(yīng)返回XML-Data架構(gòu),文檔的架構(gòu)被預(yù)先設(shè)計(jì)為內(nèi)嵌式架構(gòu)。(3)ELEMENTS:如果指定ELEMENTS選項(xiàng),則列作為子元素返回;否則,列將映射到XML特性。只有在AUTO模式下才支持該選項(xiàng)。

(4)BINARYBASE64:如果指定BINARYBase64選項(xiàng),則查詢所返回的任何二進(jìn)制數(shù)據(jù)都用base64編碼格式表示。小結(jié)XML是跨平臺(tái)的數(shù)據(jù)交換語(yǔ)言,也被認(rèn)為是一種跨平臺(tái)的數(shù)據(jù)交換語(yǔ)言,因此本章對(duì)其進(jìn)行了簡(jiǎn)單的介紹。本

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論