Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "<title> XML與XQuery ,新一代資料儲存標準 </title>"— Presentation transcript:

1 <title> XML與XQuery ,新一代資料儲存標準 </title>
<prof>黃三益</prof> <stud.>D 尤濬哲 D 李銘祥</stud.>

2 Outline 緒論 相關觀念 相關的SQL語法 XML系統架構與相關產品介紹 結論

3 1.緒論 (1/4) XML的歷史 HTML的限制 XML與HTML ML語言 1.需使用規定的標籤 2.結構較不嚴謹及
3.以資料呈現方式為主

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>   </lib>

5 1.緒論 (3/4) XML的特點 Xquery 擴充性 共通性 自我描述 是XML的查詢語言
2007/1/23 XQuery已接受W3C協會推薦 逐漸受到重視

6 1.緒論 (4/4) XML的應用面 自動化電子商務應用 知識管理 資訊傳播 資料整合與應用

7 2.相關觀念 (1/4) (1)文件宣告 (2)文件內容 DTD Schema 元素(Element) 屬性(Attribute)
實體參考(Entity Reference) CDATA區塊和 PCDATA PI(Processing Instructions)

8 2.相關觀念 (2/4) XML資料庫 XML-Enabled 資料庫(XED) Native XML資料庫(NXD)
本身可能是RD或其他種類 透過中介軟體與XML整合 Native XML資料庫(NXD) 本身資料模式即是XML 不需經由中介軟體轉換 技術仍屬於發展階段

9 2.相關觀念 (3/4) 一個XML資料庫架構範例

10 2.相關觀念 (4/4) XML查詢語言(Xquery ) Xquery的要求 以XML 語法表示及以XML 格式做為輸出格式。
W3C 於1999 年九月開始定義XML 2007/1通過最新版本Xquery 2.0 目前有20個以上的資料庫支援,包含MS SQL等大廠。 Xquery的要求 以XML 語法表示及以XML 格式做為輸出格式。 不需使用資料結構 保留文件的順序及關聯。 支援XLink及XPointer 名稱空間別名(Namespace Alias)應具獨立性。 程式化操作及在伺服器端處理 查詢操作功能需在同一XML 之查詢語言中。

11 3.相關的SQL語法 (1/10) Xquery的三種語法 Xpath為基礎的查詢 FLWR語法 查詢關聯式資料庫
Xpath是Xquery的子集 Xpath的標準語法本身即是合法的XQuery

12 3.相關的SQL語法 (2/10) Xpath查詢範例 列出所有為作者的元素 //Author
列出store中所有的Author Document("store.xml")//Author

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

14 3.相關的SQL語法 (4/10) FLWR語法範例(1) 列出所有作者 FOR $ Author IN // Author 列出所有作者
LET $Author:=//Author   RETURN  $Author 列出所有作者 FOR $ Author IN // Author RETURN $ Author

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變數(可能有第一作者、第二作者等…),最後列出所有書籍作者。

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

17 3.相關的SQL語法 (7/10) XQuery 查詢關聯式資料庫 假設一個關連式資料結構如下 mId m_Name m_bith …
Customer pId p_Name p_Price Product oId num Order date

18 3.相關的SQL語法 (8/10) Joint運算(1) 列出購買過”資料庫的核心理論與實務”的產品的顧客姓名 SQL:
Select c.c_Name From Customer as c, Order as o, Product as p Where 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

19 3.相關的SQL語法 (9/10) Joint運算(2) 如要找出所有的曾經購買過的會員,並列出其購買的產品名稱 SQL:
Select c.c_Name, p.p_Name From Customer as c, Order as o, Product as p Where 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 >

20 3.相關的SQL語法 (10/10) Group運算式 (1) 找出至少購買五次以上的顧客其平均消費金額 SQL:
SELECT avg(p_Price) AS avgprice FROM 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>

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

22 4. XML系統架構與相關產品介紹 (2/3) Xquery執行效率評比(1) 執行反應時間(Tamino-1較慢,MS SQL最佳)

23 4. XML系統架構與相關產品介紹 (3/3) Xquery執行效率評比(2) 執行深度的反應時間(Tamino-1較慢,MS SQL最佳)

24 5.結論 1. XML是當今最受注目的資料交換機制,而XQuery 則是XML的查詢語言,因此XQuery 是一種有前途的技術。
2. XQuery 的標準及技術仍未統一及成熟,甚至最新的版本並沒有Update的語法。 3. XQuery 執行效率相對於SQL而言差異頗大,對於操作大型資料庫顯的有點吃力。 4. XML與SQL仍會並存10年以上的時間,最後獲勝者則仍然未知。

25 Q & A


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

Similar presentations


Ads by Google