Xem mẫu

  1. 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
  2. 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.
  3. 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
  4. 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.
  5. 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
  6. 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.