xml 與 xquery ,新一代資料儲存標準

25
1 <title> XML 與 XQuery 與與 與與與與與與與 ,一 </title> <prof> 黃黃黃 </prof> <stud.>D954020009 黃黃黃 D954020002 黃黃黃 < /stud.>

Upload: zarola

Post on 18-Jan-2016

64 views

Category:

Documents


0 download

DESCRIPTION

XML 與 XQuery ,新一代資料儲存標準 . 黃三益 D954020009 尤濬哲 D954020002 李銘祥 . Outline. 緒論 相關觀念 相關的SQL語法 XML 系統架構與相關產品介紹 結論. 1. 緒論 (1/4). XML 的歷史 XML 與 HTML ML 語言 HTML 的限制 1. 需使用規定的標籤 2. 結構較不嚴謹及 3. 以資料呈現方式為主. 1. 緒論 (2/4). XML 的一個範例. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: XML 與 XQuery  ,新一代資料儲存標準

1

<title>XML 與 XQuery ,新一代資料儲存標準</title>

<prof> 黃三益 </prof><stud.>D954020009 尤濬哲 D954020002 李銘祥 </stud.>

Page 2: XML 與 XQuery  ,新一代資料儲存標準

2

Outline

1. 緒論2. 相關觀念 3. 相關的 SQL 語法4. XML 系統架構與相關產品介紹5. 結論

Page 3: XML 與 XQuery  ,新一代資料儲存標準

3

1. 緒論 (1/4)

XML 的歷史XML 與 HTMLML 語言

HTML 的限制1. 需使用規定的標籤2. 結構較不嚴謹及3. 以資料呈現方式為主

Page 4: XML 與 XQuery  ,新一代資料儲存標準

4

1. 緒論 (2/4)

XML 的一個範例 <?xml version="1.0" encoding="Big5" ?> - <lib> <book> <title>XML 大未來 </title> <author>Mary</author> <price=>590</price> </book>- <book> <title> 如何在 7-11 白吃白喝 </title> <author> 無名氏 </author> <price>120</price> </book> </lib>

Page 5: XML 與 XQuery  ,新一代資料儲存標準

5

1. 緒論 (3/4)

XML 的特點擴充性共通性自我描述

Xquery是 XML 的查詢語言2007/1/23 XQuery 已接受 W3C 協會推薦逐漸受到重視

Page 6: XML 與 XQuery  ,新一代資料儲存標準

6

1. 緒論 (4/4)

XML 的應用面自動化電子商務應用 知識管理 資訊傳播 資料整合與應用

Page 7: XML 與 XQuery  ,新一代資料儲存標準

7

2. 相關觀念 (1/4)

( 1 )文件宣告DTDSchema

( 2 )文件內容元素( Element )屬性( Attribute )實體參考( Entity Reference )CDATA 區塊和 PCDATAPI ( Processing Instructions )

Page 8: XML 與 XQuery  ,新一代資料儲存標準

8

2. 相關觀念 (2/4)

XML 資料庫XML-Enabled 資料庫( XED )• 支援 XML 的資料庫系統• 本身可能是 RD 或其他種類• 透過中介軟體與 XML 整合

Native XML 資料庫( NXD )• 本身資料模式即是 XML• 不需經由中介軟體轉換• 技術仍屬於發展階段

Page 9: XML 與 XQuery  ,新一代資料儲存標準

9

2. 相關觀念 (3/4)

一個 XML 資料庫架構範例

Page 10: XML 與 XQuery  ,新一代資料儲存標準

10

2. 相關觀念 (4/4)

XML 查詢語言( Xquery )

專屬於 XML 的查詢語言W3C 於 1999 年九月開始定義 XML2007/1 通過最新版本 Xquery 2.0目前有 20 個以上的資料庫支援,包含 MS SQL 等大廠。

Xquery 的要求以 XML 語法表示及以 XML 格式做為輸出格式。不需使用資料結構保留文件的順序及關聯。支援 XLink 及 XPointer名稱空間別名( Namespace Alias )應具獨立性。程式化操作及在伺服器端處理查詢操作功能需在同一XML 之查詢語言中。

Page 11: XML 與 XQuery  ,新一代資料儲存標準

11

3. 相關的 SQL 語法 (1/10)

Xquery 的三種語法Xpath 為基礎的查詢 FLWR 語法 查詢關聯式資料庫

Xpath 為基礎的查詢Xpath 是 Xquery 的子集Xpath 的標準語法本身即是合法的 XQuery

Page 12: XML 與 XQuery  ,新一代資料儲存標準

12

3. 相關的 SQL 語法 (2/10)

Xpath 查詢範例

列出所有為作者的元素

//Author

--------------------------------------------------列出 store 中所有的 Author

Document("store.xml")//Author

Page 13: XML 與 XQuery  ,新一代資料儲存標準

13

3. 相關的 SQL 語法 (3/10)

FLWR 語法Xquery 中的流程控制語法FlwrExpr: FOR 或 LET敘述其後必伴隨一個 WHERE敘述WhereClause:WHERE敘述可在接另一串的合法的 XQuery 查詢,包含另一串 FLWR敘述ReturnClause:傳回查詢結果

Page 14: XML 與 XQuery  ,新一代資料儲存標準

14

3. 相關的 SQL 語法 (4/10)

FLWR 語法範例( 1 )列出所有作者 LET $Author:=//Author   RETURN   $Author

列出所有作者 FOR $ Author IN // Author RETURN $ Author

Page 15: XML 與 XQuery  ,新一代資料儲存標準

15

3. 相關的 SQL 語法 (5/10)

FLWR 語法範例( 2 )列出所有書籍的作者    FOR $book in //book   FOR $author IN $book/author   RETURN   $author

解說:第一層的 FOR迴圈, $book被指派K次(所有 book 的數量),而每一次第二層的 FOR迴圈將依據 <book> 元素中 <author> 子元素的數目指派查詢值給 $author變數(可能有第一作者、第二作者等…),最後列出所有書籍作者。

Page 16: XML 與 XQuery  ,新一代資料儲存標準

16

3. 相關的 SQL 語法 (6/10)

FLWR 語法範例( 3 ):匯總函數列出所有出版書籍超過 100 本的出版商  FOR $p IN distinct(document("booklist.xml")//publisher) LET $b : = document(“booklist.xml”)/book[publisher = $p]   WHERE count($b) > 100 RETURN $p

列出所有書價超過平均書價的書籍名稱   LET $a : = avg(//book/price)   FOR $b IN /book   WHERE $b/price > $a   RETURN  $b/title

Page 17: XML 與 XQuery  ,新一代資料儲存標準

17

3. 相關的 SQL 語法 (7/10)

XQuery 查詢關聯式資料庫假設一個關連式資料結構如下

mId m_Name m_bith …Customer

pId p_Name p_Price …Product

oId mId pId numOrder date

Page 18: XML 與 XQuery  ,新一代資料儲存標準

18

3. 相關的 SQL 語法 (8/10)

Joint 運算( 1 )列出購買過”資料庫的核心理論與實務”的產品的顧客姓名 SQL:Select c.c_NameFrom Customer as c, Order as o, Product as pWhere p.p_Name='資料庫的核心理論與實務 ' and o.pId=p.pId and c.mId=o.Mid

XML :FOR $p IN document("product.xml")//o_record[p_Name = '資料庫的核心理論與實務 ']$o IN document("order.xml")//o_record[pId = $p/pId]$c IN document("customer.xml")//c_record [mId=$o/mId],      RETURN    $c/c_Name

Page 19: XML 與 XQuery  ,新一代資料儲存標準

19

3. 相關的 SQL 語法 (9/10)

Joint 運算( 2 )如要找出所有的曾經購買過的會員,並列出其購買的產品名稱 SQL:Select c.c_Name, p.p_NameFrom Customer as c, Order as o, Product as pWhere o.pId=p.pId and c.mId=o.Mid

XML :FOR $c IN document(“customer1.xml”)//c_record

RETURN<customer1>

   $c/c_Name   FOR $o IN document(“order.xml”)// order_record [mId = $o/mId]   $p IN document(“product.xml”)//product_record [pId = $o/pId]    RETURN $p/p_Name  

</customer1 >

Page 20: XML 與 XQuery  ,新一代資料儲存標準

20

3. 相關的 SQL 語法 (10/10)

Group 運算式 ( 1 )找出至少購買五次以上的顧客其平均消費金額SQL:SELECT avg(p_Price) AS avgpriceFROM order  GROUP BY pId  HAVING count(*) >= 5  

XML :   FOR $op IN distinct(document("order.xml")//pId)   LET $o := document("customer1")//order_record[pId = $op]  WHERE count($o) >=5   RETURN    <customer1>   $op,    <avgprice> avg($o/price) </avgprice>   </ customer1>

Page 21: XML 與 XQuery  ,新一代資料儲存標準

21

4. XML 系統架構與相關產品介紹 (1/3)

Tamino簡介第一套純粹 XML 資料庫( NXD )德國 Software AG發展主要架構• 1.X-Engine• 2.Data Map • 3.Tamino Manager

其他發展工具• 1.Tamino Schema

Editor • 2. Tamino X-Plorer • 3. Tamino X-Application

Page 22: XML 與 XQuery  ,新一代資料儲存標準

22

4. XML 系統架構與相關產品介紹 (2/3)

Xquery執行效率評比( 1 )

執行反應時間( Tamino-1 較慢 ,MS SQL 最佳)

Page 23: XML 與 XQuery  ,新一代資料儲存標準

23

4. XML 系統架構與相關產品介紹 (3/3)

Xquery執行效率評比( 2 )

執行深度的反應時間( Tamino-1 較慢 ,MS SQL 最佳)

Page 24: XML 與 XQuery  ,新一代資料儲存標準

24

5. 結論1. XML 是當今最受注目的資料交換機制,而 XQ

uery 則是 XML 的查詢語言,因此 XQuery 是一種有前途的技術。

2. XQuery 的標準及技術仍未統一及成熟,甚至最新的版本並沒有 Update 的語法。

3. XQuery 執行效率相對於 SQL而言差異頗大,對於操作大型資料庫顯的有點吃力。

4. XML 與 SQL 仍會並存 10 年以上的時間,最後獲勝者則仍然未知。

Page 25: XML 與 XQuery  ,新一代資料儲存標準

2525

Q Q & & AA