Xem mẫu
- So sánh các ph ng pháp ti p c n c s d li u XML Page 1 of 6
So sánh các ph ng pháp ti p c n c s d li u
XML
M c : Trung bình
Adriaan de Jonge, K s ph n m m, Freelance
17 07 2009
Nhu c u s d ng XML ngày càng t ng òi h i các h th ng mà l u tr d li u bán c u trúc
mà không c n ph i ép nó vào các c u trúc d li u không phù h p. Các yêu c u này u c
áp ng b i c c s d li u XML nguyên g c và c s d li u quan h h tr XML. Câu
h i t ra là: T i sao b n thích m t c s d li u XML nguyên g c h n m t c s d li u c
i n v i h tr XML ho c các cách khác? Bài vi t này so sánh các ph ng pháp ti p c n cho
m t s các gi i pháp khác nhau, bao g m eXist, Mark Logic, và IBM® DB2® Express-C. S
khác bi t c a các ki u c s d li u c so sánh gi a nh ng thu n l i và khó kh n c a
chúng.
Trong nh ng n m u tiên c a c s d li u XML, s khác bi t gi a cái c g i là c s d li u XML
nguyên g c (native XML database-NXD) và các h th ng qu n lý c s d li u quan h có h tr XML
(relational database management systems - RDBMS) là r t l n. Các NXD c t i u hóa l u tr các
tài li u XML. Các b n RDBMS c ch! thêm m t s gia v" vào các i t ng nh" phân l n (binary large
object - BLOB) ch a XML.
Ngày nay, các NXD v#n là NXD nh ng c c i ti n r t Các thu t ng hay dùng
nhi u. Cùng th$i i m, các nhà cung c p RDBMS ã có API: Giao di n l p trình ng d ng
th$i gian u i k"p khi chúng có th l u tr các tài li u HTTP: Giao th c truy n siêu v n
XML. Các ph n XML không còn c l u tr trong các b n
BLOBs. Thay vì nh v y, chúng c l u tr trong các IT: Công ngh thông tin
c u trúc cây (tree-like structure), c t i u hóa ch a XML: Ngôn ng ánh d u m r ng
các tài li u có c u trúc cây, b n ch t t nhiên c a m t tài
li u XML chu%n.
Trong th$i gian gi a các cài t ban u và các gi i pháp ngày nay, m t s s phát tri n n n t ng ã c
thêm vào s chu%n hóa c a các ngôn ng truy v n trên các tài li u XML — áng chú ý nh t, XQuery 1.0,
v i h tr cho Ngôn ng & $ng d#n XML (XML Path Language - XPath) 2.0. Khái ni m c a XQuery
c phát tri n trong nhi u n m; k t qu cu i cùng có s t ng ng v i các phiên b n tr c ó nh ng
hoàn thi n h n. Gi ng nh Ngôn ng Truy v n Có c u trúc (Structured Query Language - SQL), XQuery
%y m nh s c l p c a nhà cung c p và tái s d ng.
T i sao b n c n c s d li u XML?
Các c s d li u th $ng có th l u tr c tài li u không c u trúc và có c u trúc. C hai u yêu c u các
c u trúc d li u mà không th $ng xuyên thay i. Tuy nhiên, i m y u c a các c s d li u quan h là
vi c l u tr các tài li u bán c u trúc. Không nh các d li u có c u trúc, các tài li u bán c u trúc này có
th có r t nhi u b c t do trong tr t t c a các thành ph n trong tài li u và cách nh ng thành ph n ó c
l ng vào nhau. Không nh các tài li u không có c u trúc, các thành ph n riêng l' có th c phân lo i
b(ng cách s d ng các nhãn mô t .
B n có th l u tr d li u bán c u trúc trong các c u trúc quan h không? T t nhiên là b n có th , nh ng
b n có th k t thúc b(ng m t c u trúc d li u c th mà th $ng xuyên thay i, m t c u trúc d li u t ng
quát hóa mà làm m t mô t c a các nhãn ho c m t mô hình tr)u t ng nh là nh ng th mà các h th ng
qu n lý n i dung s d ng, tr n d li u v i nh ng th mà áng ra là siêu d li u (metadata).
M t khác, "nh d ng XML phù h p v i vi c mô t d li u bán c u trúc. Thêm n a, b n có th duy trì mô
hình d li u m t cách d* dàng. Thêm các tên c a thành ph n không làm thay i c u trúc d li u — nó
luôn gi c u trúc cây. Nó ch! liên quan n m t s thay i trong l c XML mô t cách th c mà các
- So sánh các ph ng pháp ti p c n c s d li u XML Page 2 of 6
tên c a ph n t c s d ng và liên k t bên trong c u trúc cây.
V i các tài li u nh là các h s xin vi c, các mô t s n ph%m, và các n hàng c a khách hàng, XML có
l+ là "nh d ng phù h p. & ng th$i, XML có kh n ng mô t c d li u có c u trúc và d li u không có
c u trúc.
Th thì, b n có c n các c s d li u quan h n a
không?
Khi b n t o m t gi i pháp ph n m m m i, câu tr l$i có th là "Không!". N u b n có m t gi i pháp mà
cho phép b n l u tr d li u bán c u trúc, b n c ng có th s d ng nó l u tr d li u có c u trúc và
không có c u trúc. Vi c có t t c d li u c a b n trong m t gi i pháp l u tr n l' v i kh n ng t ng k t
và t o ra các truy v n mà bao trùm m i th trong m t l n thì d* h n r t nhi u so v i d li u tích h p t)
nhi u ngu n l u tr khác nhau.
T t h n, n u tr l$i "không" v i câu h i này, b n nên ph n l n d li u c a mình d ng ki u tài li u
bán c u trúc. Tuy nhiên, n u a ph n d li u c a b n phù h p v i mô hình quan h có c u trúc ch t ch+ và
ít gi ng v i ki u tài li u và qu n ch t v i nhau, thì vi c ch n m t NXD có l+ không giúp ích gì cho tr $ng
h p c a b n.
V y thì làm th nào xác "nh b n ch t d li u c a b n? Và b n s+ ph i làm gì n u kh i l ng d li u có
c u trúc, bán c u trúc và không c u trúc là t ng ng? Trong tr $ng h p b t "nh nh v y, tin t t lành
là các c s d li u c i n là l a ch n phù h p ch a các tài li u XML ho c các phân m nh c a các tài
li u XML vào th$i i m hi n t i. Các cách th c truy c p nh ng phân m nh XML này có l+ khác nhau
gi a các c s d li u. M t i u mà các b n cài t c a các c s d li u cùng có là chúng s d ng b n
XQuery 1.0.
Các gi i pháp
M t s s n ph%m trên th" tr $ng cài t m t c s d li u XML m t chi u ho c m t c s d li u khác,
bao g m Xindice, Tamino, X-Hive, Oracle, và Microsoft® SQL Server. Tuy nhiên, tôi s+ không khung
làm vi c lu n v nh ng s n ph%m này trong bài vi t này. M t b n so sánh s n ph%m dài và y là không
kh thi, và nó có th không áng tin khi mà bài vi t này c công b trên trang c a m t nhà cung c p m t
gi i pháp c s d li u XML. Các tác gi c l p c ng không gi i quy t hoàn toàn các câu h i m t cách
khách quan.
Nh ng gì tôi có th làm là th o lu n v IBM DB2 Express-C v i các tính n ng pureXML và so sánh nó
v i các ti p c n c a các NXD c i n. V i so sánh này, tôi ã ch n m t d án mã m tên là eXist-DB. C
eXist-DB và DB2 Express-C u mi*n phí và cung c p r t nhi u ch c n ng thân thi n v i ng $i dùng.
N u b n mu n l u tr l ng d li u c c l n, tôi khuyên b n mua m t phiên b n th ng m i c a DB2.
& u tiên, DB2 có l+ nghe nh là m t cái gì ó r t n ng n , nh ng b n có th cài t DB2 Express-C trên
m t máy bàn ho c máy xách tay th nghi m kh n ng pureXML d* dàng. M c dù không có phiên
b n th ng m i c a eXist, Mark Logic là l a ch n thay th x ng áng cho eXist khi mà các yêu c u hi u
su t và tính m r ng v t quá kh n ng c a eXist. B n có th dùng th Mark Logic b(ng cách s d ng
gi y phép dùng th 30 ngày ho c m t phiên b n c ng ng mà b" gi i h n l u tr m c 100MB.
Tôi có th t ng t ng th y nhu c u v so sánh s n ph%m gi a các s n ph%m t ng t nh là DB2 và
Orcale. B n có th tìm th y m t s tranh lu n tr c ây trên m ng v hai s n ph%m này. M t th o lu n c
b n h n là so sánh các tính n ng c a pureXML trong DB2 Express-C và trong eXist-DB. Ho c, m t cách
t ng t , so sánh DB2 v i Mark Logic.
- So sánh các ph ng pháp ti p c n c s d li u XML Page 3 of 6
C s d li u XML nguyên g c
Gi ng nh h u h t các tên phân lo i s n ph%m, thu t ng c s d li u XML nguyên g c gây hi u nh m
ôi chút. Nó làm cho b n th,c m,c ki u nh : C s d li u là gì? XML nguyên g c là gì? DB2 có ph i là
NXD không?
Theo Wikipedia, "m t c s d li u máy tính là m t t p h p có c u trúc các b n ghi ho c d li u cl u
tr trong m t h th ng máy tính." XML nguyên g c là cách dùng c a các công ngh liên quan n XML
mà không pha t p v i các công ngh phi XML. T c là kh n ng s d ng XQuery và XPath không có m t
chút SQL nào. IBM d oán tr c câu h i có ph i DB2 là XML nguyên g c không b(ng cách g i các c
tính c a nó là pureXML. Tôi s+ quay tr l i "nh ngh-a ó trong ph n sau.
Khi so sánh các NXD v i RDBMS có h tr XML, tôi ngh- r(ng m t NXD i n hình c ng có th c
phân lo i nh là m t kho ch a tài li u. Thu t ng kho ch a tài li u c s d ng b i các s n ph%m nh
Alfresco và Magnolia. Các s n ph%m này c x p l p trên c các c s d li u hi n có, và chúng thi u c
s h t ng c cung c p b i eXist và Mark Logic — áng chú ý nh t là kh n ng ch y các XQuery m t
cách có hi u qu . Chúng t p trung vào các ch c n ng b c cao nh là lu ng làm vi c (workflow) và giao
di n ng $i dùng thân thi n. Các NXD dành nh ng th ó cho các ng $i dùng các s n ph%m c a mình.
Chúng ch! cung c p các hàm API ch a tài li u b c th p, nh là Web-based Distributed Authoring and
Versioning (WebDAV) ho c các k t n i RESTful tùy bi n.
Nh v y m t NXD i n hình l u tr các tài li u XML m t cách hi u qu . Nó cung c p công ngh XQuery
và m t l p m ng các ch c n ng kho d li u.
Các NXD d $ng nh nh,m t i tài nguyên theo nh h ng, ngh-a là các m%u n i dung riêng c l u tr
trong kho ch a có th c xác "nh b(ng cách s d ng các "nh danh tài nguyên ng b (Uniform
Resource Identifier - URI). S d ng HTTP ho c WebDAV, các URI t ng t cho phép truy c p t i d li u
cái mà làm cho tính k t n i tr thành không v n .
Coi d li u nh là các tài nguyên n l' c ng có các y u i m c a nó. S chia tách tài li u làm cho vi c
t o quan h gi a các d li u mà b" chia nh kh,p các a li u tr nên khó kh n. N u m t tài li u ch a các
d li u c quy n mà các tài li u khác tham chi u n, thì vi c duy trì tính tích h p tham chi u càng khó
kh n h n. Các nhà s n xu t c s d li u XML l n cung c p các l a ch n t các ràng bu c trên các d
li u trong các a tài li u. Tuy nhiên, i u này ch a c tiêu chu%n hóa nh các công ngh XML khác.
pureXML
IBM l a ch n tránh thu t ng c s d li u XML nguyên g c (native) nh ng v#n mu n truy n t i b n
ch t nguyên g c c a XML c a gi i pháp c a h . DB2 Express-C là m t i n hình cho NXD, nh ng nó l i
chia s' m t s c tính. T) m t góc , DB2 d $ng nh gi ng m t RDBMS v i các c t XML. N u b n
mu n s d ng các tính n ng, )ng nh m l#n s tinh vi c a các c t XML v i s thi u kh n ng XML.
Tên pureXML c chính th ng hóa theo hai cách:
D li u XML c l u tr trong "nh d ng cây nguyên b n, tách bi t kh i d li u quan h .
B n c phép truy c p t t c d li u — c quan h và XML — thông qua m t giao di n XML n
nh t.
XQuery 1.0 không b" gi i h n b i vi c truy v n các tài li u XML. IBM cung c p các hàm XQuery mà cho
phép b n truy v n d li u quan h và tr n và i sánh các k t qu v i XML t) các c t XML. K t c a c a
d li u k t h p có th c tr l i trong "nh d ng XML.
DB2 là n n t ng c s d li u nguyên b n. Nó không cung c p m t l p m ng các ch c n ng ch a tài li u
mà r t nhi u NXD khác cung c p. &i u ó không có ngh-a là b n không th s d ng DB2 th c hi n
ch a tài li u — cho dù m ng hay dày. Hi n nay, h u h t các kho ch a tài li u nh là Alfresco c cài t
trên các RDBMS không h tr XML h n là các NXD. S d ng DB2 nh là c s cho nh ng kho ch a này
ít nh t c ng cho k t qu t ng t , nh ng, h n th n a, v i l i ích c thêm vào c a các mô hình d li u
- So sánh các ph ng pháp ti p c n c s d li u XML Page 4 of 6
m m d'o h n s d ng kh n ng l u tr XML.
Nó có th là th$i i m tr c khi các s n ph%m nh là Alfresco có c các tính n ng ch.ng h n nh là
pureXML. Lý do là nh ng s n ph%m ó không mu n b" trói bu c vào m t s n ph%m c s d li u riêng
bi t nào. B t ch p XQuery 1.0, cách mà ngôn ng XQuery c s d ng trong các s n ph%m c s d li u
v#n thi u s tiêu chu%n hóa. V i nh ng s n ph%m này, cách an toàn là ch$ i các kh n ng m i c a các
c s d li u XML, ch$ i ng d ng ng nh t h n c a XQuery và các giao th c k t n i, và bây gi$, t
gi i h n b n thân chúng n các tiêu chu%n v i các cài t ng nh t gi ng nh WebDAV ho c các b k t
n i c s d li u quan h .
B n có th s d ng các kh n ng c a DB2 âu?
Câu tr l$i t ng i n gi n. &a s các gi i pháp IT trên th gi i ã nghiên c u chi ti t các c s d li u
quan h . Th m chí khi các c s d li u quan h thi u tính m m d'o c yêu c u cho m t gi i pháp,
chúng v#n phát tri n h n và phù h p h n cho các nhu c u l n so v i các thay th khác.
Các công ty mu n tri n khai b c ti p theo và áp d ng các công ngh XML không mu n b i các k t qu
ã c phát tri n trong nhi u n m và thay th chúng v i m t NXD. Và, m c dù h có l+ s d ng NXD
thêm vào c s d li u quan h c a h , i u này có th t o ra các thách th c m i trong vi c tích h p các
d li u b" chia nh kh,p các a ngu n. Hãy ngh- n tính toàn v/n tham chi u và qu n lý giao tác. M c dù
là không th gi i quy t c, nh ng m t gi i pháp tích h p n l' mà quan tâm n nh ng i u này v#n
có nhi u u i m.
S k t h p c a d li u quan h và d li u XML trong pureXML giúp cung c p s chuy n v" suôn s', ho c
g n nh th , s chuy n v" t)ng ph n sang công ngh XML.
K t lu n
M c dù các tài li u XML có th mô t d li u có c u trúc, m t NXD ch a nhi u tài li u XML có l+ không
ph i là gi i pháp t i u mô t các quan h gi a d li u có c u trúc b" chia nh thành nhi u tài li u và
duy trì tính toàn v/n tham chi u. N u nó ã có th qu n lý nh ng m i quan h ó (có l+ s d ng
XPointer), thì vi c s d ng v#n ch a c chu%n hóa.
L$i khuyên t t nh t là s d ng úng công c cho úng công vi c. Tuy nhiên, s song hành c a m t NXD
v i m t RDBMS t o ra thách th c cho b o toàn d li u. Các c tính c a pureXML c a DB2 k t h p
nh ng cái t t nh t c a hai bên và cho phép l u tr c d li u có c u trúc và d li u bán c u trúc. & i v i
l u tr d li u không có c u trúc, c NXD và RDBMS u thích h p.
N u b n th c s tìm ki m m t kho ch a tài li u h n là m t c s d li u, b n nên h i m t câu h i khác.
Các yêu c u c a b n t p trung vào kh n ng m t tr c (front-end) c a kho ch a tài li u hay chúng t p
trung vào m t sau (back-end)? N u b n mu n nhi u ch c n ng cho ng $i dùng cu i nh là m t giao di n
qu n tr", dòng làm vi c, và tr c quan hóa, thì r t nhi u s n ph%m trên th" tr $ng, nh là Alfresco, cung c p
ki u h tr này. N u b n quan tâm n các c ch truy v n m nh m+, nh là XQuery và tìm ki m v n b n
y , và l u tr hi u qu các tài li u bán c u trúc, thì các NXD nh là eXist ho c Mark Logic có l+ là
l a ch n c a b n.
Th gi i c a các gi i pháp c s d li u b" chi ph i b i m t s ít các nhà cung c p l n. IBM là m t trong
s ó. Các NXD v#n là m t th" tr $ng nh . Các câu h i th $ng là li u nh ng ng $i ch i nh bé có th
s ng sót qua s c nh tranh hay không, hay li u h s+ b" mua b i các t p oàn l n h n (nh là X-Hive b"
mua b i EMC), ho c li u h s+ m t th" ph n cho các gi i pháp lai. M t i u rõ ràng, các nhà cung c p
RDBMS, s+ không b(ng lòng t) b th" ph n cho NXD, cung c p các gi i pháp XML tích h p tiêu
chu%n xu t x ng nh ng c tích h p t t c a chính mình áp ng nhu c u c a các khách hàng.
- So sánh các ph ng pháp ti p c n c s d li u XML Page 5 of 6
Tài nguyên
H ct p
XQuery 1.0: Tìm hi u v tiêu chu%n truy v n XML m nh m+ c s d ng trong t t c các c s d
li u XML.
Th vi n k thu t XML: Truy c p developerWorks XML Zone xem các bài vi t, các th thu t,
các h ng d#n, các tiêu chu%n và IBM Redbooks.
Web qu ng bá và các s ki n k thu t c a developerWorks: C p nh t thông tin công ngh v i các
ph n này.
developerWorks podcasts: Nghe các th o lu n và ph ng v n dành cho các nhà phát tri n ph n m m.
Kho sách công ngh : Tìm các sách v công ngh ây.
L y s n ph m và công ngh
DB2 pureXML: Tìm hi u v các kh n ng c a n n t ng DB2 y bao g m các kh n ng
pureXML.
DB2 Express-C v i pureXML: Dùng th công ngh pureXML b(ng cách s d ng phiên b n c ng
ng mi*n phí.
eXist-DB: T i NXD mã m mà t)ng b c tham gia c nh tranh v i MySQL.
Mark Logic: Khi các yêu c u c a b n v hi u su t và tính kh m v t quá kh n ng c a eXist,
Mark Logic là l a ch n phù h p.
Th o lu n
Di*n àn th o lu n XML: Tham gia vào các th o lu n liên quan n XML.
developerWorks blogs: Xem xét nh ng blogs này và tham gia vào c ng ng developerWorks.
ôi nét v tác gi
Adriaan de Jonge là chuyên gia phát tri n ph n m m hi n ang làm vi c cho chính ph Hà Lan, x lý m t
vài d án v i các vai trò khác nhau. Adriaan ã vi t các bài vi t liên quan n XML cho developerWorks
c a IBM và Amazon
IBM, IBM logo, ibm.com, DB2, developerWorks, Lotus, Rational, Tivoli, và WebSphere là th ng hi u c a
t p oàn International Business Machines Corporation M và các n c khác. Nh ng th ng hi u này và các
thu t ng th ng hi u c a IBM c xác l p khi chúng xu t hi n l n u tiên v i các ký hi u t ng ng (®
ho c ™), xác "nh ã c ng ký M hay lu t th ng hi u chung s h u b i IBM t i th$i i m thông tin
c phát hành. Nh ng th ng hi u ó c ng có th c ng ký ho c là th ng hi u c a lu t chung các
n c khác. Danh sách hi n t i c a các th ng hi u c a IBM có http://www.ibm.com/legal/copytrade.shtml
Bi u tr ng Adobe, the Adobe logo, PostScript, và PostScript là các th ng hi u ã c ng ký c a Adobe
- So sánh các ph ng pháp ti p c n c s d li u XML Page 6 of 6
Systems Incorporated M và các n c khác. Microsoft, Windows, và bi u tr ng Windows là th ng hi u
c a Microsoft Corporation M và các n c khác. Tên các d"ch v , s n ph%m, công ty, có th' là th ng hi u
ho c d"ch v ã ng ký. Tên c a công ty, s n ph%m hay d"ch v có th là nhãn hi u ng ký ho c nhãn hi u
d"ch v c a ng $i khác.
nguon tai.lieu . vn