xml 與 xquery ,新一代資料儲存標準
Post on 18-Jan-2016
64 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
<title>XML 與 XQuery ,新一代資料儲存標準</title>
<prof> 黃三益 </prof><stud.>D954020009 尤濬哲 D954020002 李銘祥 </stud.>
2
Outline
1. 緒論2. 相關觀念 3. 相關的 SQL 語法4. XML 系統架構與相關產品介紹5. 結論
3
1. 緒論 (1/4)
XML 的歷史XML 與 HTMLML 語言
HTML 的限制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> </book> </lib>
5
1. 緒論 (3/4)
XML 的特點擴充性共通性自我描述
Xquery是 XML 的查詢語言2007/1/23 XQuery 已接受 W3C 協會推薦逐漸受到重視
6
1. 緒論 (4/4)
XML 的應用面自動化電子商務應用 知識管理 資訊傳播 資料整合與應用
7
2. 相關觀念 (1/4)
( 1 )文件宣告DTDSchema
( 2 )文件內容元素( Element )屬性( Attribute )實體參考( Entity Reference )CDATA 區塊和 PCDATAPI ( Processing Instructions )
8
2. 相關觀念 (2/4)
XML 資料庫XML-Enabled 資料庫( XED )• 支援 XML 的資料庫系統• 本身可能是 RD 或其他種類• 透過中介軟體與 XML 整合
Native XML 資料庫( NXD )• 本身資料模式即是 XML• 不需經由中介軟體轉換• 技術仍屬於發展階段
9
2. 相關觀念 (3/4)
一個 XML 資料庫架構範例
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 之查詢語言中。
11
3. 相關的 SQL 語法 (1/10)
Xquery 的三種語法Xpath 為基礎的查詢 FLWR 語法 查詢關聯式資料庫
Xpath 為基礎的查詢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 )列出所有作者 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 mId pId numOrder date
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
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 >
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>
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 是當今最受注目的資料交換機制,而 XQ
uery 則是 XML 的查詢語言,因此 XQuery 是一種有前途的技術。
2. XQuery 的標準及技術仍未統一及成熟,甚至最新的版本並沒有 Update 的語法。
3. XQuery 執行效率相對於 SQL而言差異頗大,對於操作大型資料庫顯的有點吃力。
4. XML 與 SQL 仍會並存 10 年以上的時間,最後獲勝者則仍然未知。
2525
Q Q & & AA
top related