250 likes | 347 Views
<title> XML 與 XQuery ,新一代資料儲存標準 </title>. <prof> 黃三益 </prof> <stud.>D954020009 尤濬哲 D954020002 李銘祥 </stud.>. Outline. 緒論 相關觀念 相關的SQL語法 XML 系統架構與相關產品介紹 結論. 1. 緒論 (1/4). XML 的歷史 XML 與 HTML ML 語言 HTML 的限制 1. 需使用規定的標籤 2. 結構較不嚴謹及 3. 以資料呈現方式為主. 1. 緒論 (2/4). XML 的一個範例.
E N D
<title>XML與XQuery ,新一代資料儲存標準</title> <prof>黃三益</prof> <stud.>D954020009 尤濬哲 D954020002 李銘祥</stud.>
Outline • 緒論 • 相關觀念 • 相關的SQL語法 • XML系統架構與相關產品介紹 • 結論
1.緒論 (1/4) • XML的歷史 • XML與HTML • ML語言 • HTML的限制 • 1.需使用規定的標籤 • 2.結構較不嚴謹及 • 3.以資料呈現方式為主
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>
1.緒論 (3/4) • XML的特點 • 擴充性 • 共通性 • 自我描述 • Xquery • 是XML的查詢語言 • 2007/1/23 XQuery已接受W3C協會推薦 • 逐漸受到重視
1.緒論 (4/4) • XML的應用面 • 自動化電子商務應用 • 知識管理 • 資訊傳播 • 資料整合與應用
2.相關觀念 (1/4) (1)文件宣告 • DTD • Schema (2)文件內容 • 元素(Element) • 屬性(Attribute) • 實體參考(Entity Reference) • CDATA區塊和 PCDATA • PI(Processing Instructions)
2.相關觀念 (2/4) • XML資料庫 • XML-Enabled 資料庫(XED) • 支援XML的資料庫系統 • 本身可能是RD或其他種類 • 透過中介軟體與XML整合 • Native XML資料庫(NXD) • 本身資料模式即是XML • 不需經由中介軟體轉換 • 技術仍屬於發展階段
2.相關觀念 (3/4) • 一個XML資料庫架構範例
XML查詢語言(Xquery ) 專屬於XML的查詢語言 W3C 於1999 年九月開始定義XML 2007/1通過最新版本Xquery 2.0 目前有20個以上的資料庫支援,包含MS SQL等大廠。 Xquery的要求 以XML 語法表示及以XML 格式做為輸出格式。 不需使用資料結構 保留文件的順序及關聯。 支援XLink及XPointer 名稱空間別名(Namespace Alias)應具獨立性。 程式化操作及在伺服器端處理 查詢操作功能需在同一XML 之查詢語言中。 2.相關觀念 (4/4)
3.相關的SQL語法 (1/10) • Xquery的三種語法 • Xpath為基礎的查詢 • FLWR語法 • 查詢關聯式資料庫 • Xpath為基礎的查詢 • Xpath是Xquery的子集 • Xpath的標準語法本身即是合法的XQuery
3.相關的SQL語法 (2/10) • Xpath查詢範例 列出所有為作者的元素 //Author -------------------------------------------------- 列出store中所有的Author Document("store.xml")//Author
3.相關的SQL語法 (3/10) • FLWR語法 • Xquery中的流程控制語法 • FlwrExpr:FOR或LET敘述其後必伴隨一個WHERE敘述 • WhereClause:WHERE敘述可在接另一串的合法的XQuery 查詢,包含另一串FLWR敘述 • ReturnClause:傳回查詢結果
3.相關的SQL語法 (4/10) • FLWR語法範例(1) 列出所有作者 LET $Author:=//Author RETURN $Author 列出所有作者 FOR $ Author IN // Author RETURN $ Author
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變數(可能有第一作者、第二作者等…),最後列出所有書籍作者。
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
3.相關的SQL語法 (7/10) Customer … mId m_Name m_bith Order oId mId pId num date Product … pId p_Name p_Price • XQuery 查詢關聯式資料庫 • 假設一個關連式資料結構如下
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
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 >
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>
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
4. XML系統架構與相關產品介紹 (2/3) • Xquery執行效率評比(1) • 執行反應時間(Tamino-1較慢,MS SQL最佳)
4. XML系統架構與相關產品介紹 (3/3) • Xquery執行效率評比(2) • 執行深度的反應時間(Tamino-1較慢,MS SQL最佳)
5.結論 1. XML是當今最受注目的資料交換機制,而XQuery 則是XML的查詢語言,因此XQuery 是一種有前途的技術。 2. XQuery 的標準及技術仍未統一及成熟,甚至最新的版本並沒有Update的語法。 3. XQuery 執行效率相對於SQL而言差異頗大,對於操作大型資料庫顯的有點吃力。 4. XML與SQL仍會並存10年以上的時間,最後獲勝者則仍然未知。