Title: XQuery
1XQuery ?ng d?ng
- Nguy?n Vi?t Thành
- B? môn H? th?ng thông tin Khoa Công ngh? thông
tin
- Ð?i h?c Khoa h?c t? nhiên TpHCM
- 13/04/2004
2M?c l?c
- Gi?i thi?u
- Cú pháp
- ?ng d?ng
- K?t lu?n
3T?i sao XQuery ra d?i?
- Nhu c?u truy v?n t? nhi?u ngu?n d? li?u g?m nhi?u
lo?i khác nhau
- Nhu c?u truy v?n d? li?u không c?u trúc hay
bán c?u trúc
- XML tr? thành m?t chu?n trao d?i d? li?u gi?a các
h?t th?ng, ?ng d?ng
- SQL không phù h?p v?i truy v?n d? li?u XML
XML DBMS
RDBMS
?
Apps
Docs
Enterprise Systems
4M?t s? d?c di?m c?a XQuery
- Mô hình d? li?u có th? bi?u di?n các lo?i d? li?u
khác nhau
- Có kh? nang x? lý tính có th? t? và phân c?p c?a
d? li?u XML
- Không ch? là ngôn ng? truy v?n don thu?n, mà còn
h? tr? nhi?u d?ng bi?u th?c và d?nh d?ng k?t qu?
- Hi?n chua hoàn thi?n (data manipulation, full
text search)
5XQuery và SQL
- SQL s? khó khan trong vi?c tìm ki?m d? li?u n?u
không bi?t tru?c d? sâu phân c?p.
- VD Tìm các m?t hàng có màu d? (không bi?t c?u
trúc d? li?u, ch? bi?t thu?c tính mô t? màu là
color) thông qua XQuery //_at_color "Red"
- D? li?u SQL tr? v? mang tính ph?ng còn d? li?u
XQuery tr? v? là d? li?u XML phân c?p. XQuery
có kh? nang d?nh d?ng d? li?u tr? v?.
..... return or b/title, a/last
6XQuery và XPath, XSLT
- XPath 2.0 là m?t thành ph?n c?a XQuery nhung
không có nh?ng d?c di?m
- Ð?nh nghia thành ph?n XML (d?nh d?ng d? li?u tr?
v?)
- Ð?nh nghia hàm
- Ki?u d? li?u
- XSLT v? kh? nang d?nh d?ng tuong t? XQuery
- Không x? lý cùng lúc nhi?u tài li?u XML
- Cung d?a trên n?n t?ng XPath
7C?u trúc m?t câu truy v?n XQuery
- Là m?t bi?u th?c bao g?m nhi?u bi?u th?c con k?t
h?p v?i nhau m?t cách linh ho?t
- Bi?u th?c Xpath /a//bc5
- Bi?u th?c FLWR FOR LET WHERE RETURN
- Thành ph?n XML
- Bi?n và h?ng s? x, 5
- Toán t? và hàm x y, foo(x,y)
- Bi?u th?c di?u ki?n IF THEN ELSE
- Vòng l?p EVERY bi?n IN bi?u th?c SATISFIES bi?u
th?c
- Bi?u th?c s?p x?p SORTBY (ASCENDING, )
8Tài li?u XML ví d? - bib.xml
TCP/
IP Illustrated
Stevens W.
Addison-Wesle
y 65.95
9Bi?u th?c Xpath
document(bib.xml) /bib/book/author /bib/book
/author1 TO 2 //authorlastStevens and fir
stW. //book authorlastStevens BEFORE
authorlastAbiteboul
TCP/
IP Illustrated
Stevens W.
Addison-Wesle
y 65.95
10Bi?u th?c FLWOR co b?n
- for
- L?p tu?n t?
- Bi?n cho t?ng node l?p
- let
- Bi?n luu giá tr?
- where
- L?c k?t qu?
- order by
- S?p x?p k?t qu?
- return
- Ð?nh d?ng k?t qu? tr? v?
for b in input()/bib/book let
a b/author where b/price lt 200 order by
a/last return b
/title, a/last
phy
11Hi?n tr?ng c?a XQuery
- Ðang du?c W3C xem xét d? công nh?n chu?n XQuery
1.0
- Cài d?t
- Tuy chua du?c công nh?n chu?n nhung dã có khá
nhi?u s?n ph?m thuong m?i s? d?ng XQuery
- S?n ph?m DB2 Information Integrator for Content
V8.2 c?a IBM có kh? nang tích h?p thông tin t?
RDBMS (Oracle, DB2), tài li?u XML, Web services,
- APIs (Application Programming Interfaces)
- Nhi?u APIs c?a nh?ng ?ng d?ng d?c thù dã du?c
cung c?p
- Microsoft h? tr? XQuery trong phiên b?n ti?p theo
c?a Visual Studio.NET (2005 - thu?c l?p
System.XML)
- XQuery API for Java (XQJ)
12Tuong lai c?a XQuery
- XQuery 1.0
- S?p du?c công nh?n là chu?n W3C
- XQuery 1.1
- Các yêu c?u dã du?c so?n th?o
- B? sung c?p nh?t d? li?u (data manipulation),
full-text search. Hi?n m?t s? d? ngh? dã du?c dua
ra b?i Software AG (bi?u th?c dùng trong
Tamino). - Hi?u nang
- Thu?n l?i Ð?nh lu?t Moore và s? c?nh tranh
- Khó khan B?n ch?t XML (phân c?p, x? lý song song
kém)
13?ng d?ng 1 Tích h?p thông tin
Web Services
RDBMS
XML DB
N?n tích h?p XML
XQuery
RDBMS
?ng d?ng d?ng d?ch v?
14Ví d? 1.1 Qu?n lý song song d? li?u c?u trúc và
bán c?u trúc
15Ví d? 1.2 T?ng h?p thông tin trên các ngu?n d?
li?u xác d?nh
- Ngu?n d? li?u này có c?u trúc xác d?nh tru?c và
thông tin mang tính t?c th?i (trang giá ch?ng
khoán, trang d?u giá, trang tin t?c di?n t?, )
16Ví d? 1.2 T?ng h?p thông tin trên các ngu?n d?
li?u xác d?nh (tt)
- Bài toán Nhà d?u tu ch?ng khoán quan tâm d?n m?t
lo?i ch?ng khoán niêm y?t. Nhà d?u tu có nhu c?u
bi?t các thông tin t?c th?i liên quan d?n ch?ng
khoán dó l?y t? m?t s? ngu?n thông tin nhu trung
tâm giao d?ch ch?ng khoán, các trang tin kinh t?,
trang tin c?a các công ty liên quan - Yêu c?u 1 L?y nh?ng tin t?c có tiêu d? ch?a tên
ch?ng khoán hay công ty quan tâm
- Yêu c?u 2 L?y nh?ng tin t?c có tiêu d? ch?a tên
ch?ng khoán hay công ty quan tâm và trong n?i
dung có d? c?p d?n giá, h?p d?ng, giao
d?ch, l?i nhu?n
17?ng d?ng 2 Chuy?n d?i d?nh d?ng
- Bài toán dây chuy?n cung c?p (Supply Chain).
- rs" pxz100121fier 12
- 1200
- USD
- DNBX22
-
- unitPrice"12.00" currency"USD"
discount"DNBX22" xmlnspo"http//www.myapp.com/p
o"/ - declare namespace ord"http//www.customer.com/or
ders"
- declare namespace po"http//www.myapp.com/po"
- for custlineitem in document("customerPO.xml")//
orditem
- return emIdentifier" qty"custlineitem/ordquantity"
unitPrice"custlineitem/ordprice"
currency"custlineitem/ordcurrency"
discount"custlineitem/orddiscount"/
18?ng d?ng 3 Qu?n lý t?p tin log
- T?p tin log dùng luu v?t s? ch?a m?t lu?ng l?n
thông tin có ích cho nh?ng v?n d? nhu b?o m?t,
tài nguyên h? th?ng
- Bài toán Xác d?nh các k?t n?i b?t bình thu?ng t?
m?t máy tr?m d?n m?t máy ch? (l?n hon nhi?u so
v?i m?c k?t n?i trung bình)
- let log collection("logs")
- let logCount count(log//logEntry)
- let hosts distinct-values(log//host)
- let avg logCount div count(hosts)
- for host in hosts where count(log//host)
avg
- order by count(log//host)
- return host
19K?t lu?n
- S? ra d?i XML and XQuery không nh?m m?c dích thay
th? d? li?u quan h? và truy v?n SQL
- RDBMS, SQL v?i d? li?u ph?ng và quan h? s? phù
h?p v?i m?t t?p các bài toán
- XML, XQuery v?i d? li?u phân c?p s? phù h?p v?i
m?t t?p các bài toán khác
- Ph?i h?p gi?a (RDBMS, SQL) và (XML, XQuery) là
m?t hu?ng ti?p c?n có tri?n v?ng.
20Tham kh?o
- W3C http//www.w3.org/TR/XQuery
- W3C http//www.w3.org/TR/XPath
- W3C http//www.w3.org/XML
- Software AG, XML Company http//www.softwareag.com
21Th?o lu?n