Tài liệu so sánh các phương pháp tiếp cận cơ sở dữ liệu XML docx

6 638 0
Tài liệu so sánh các phương pháp tiếp cận cơ sở dữ liệu XML docx

Đang tải... (xem toàn văn)

Thông tin tài liệu

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 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 nhiu. Cùng th$i im, các nhà cung cp RDBMS ã th$i gian ui k"p khi chúng th lu tr các tài liu XML. Các phn XML không còn c lu tr trong các BLOBs. Thay vì nh vy, chúng c lu tr trong các cu trúc cây (tree-like structure), c ti u hóa  cha các tài liu 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 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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 th lu tr c tài liu không cu trúc và 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u trúc, các tài liu bán cu trúc này th 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u trúc, các thành phn riêng l' th c phân loi b(ng cách s dng các nhãn mô t. Bn 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 th, nhng bn 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 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 Các thut ng hay dùng  API: Giao din lp trình ng dng  HTTP: Giao thc truyn siêu vn bn  IT: Công ngh thông tin  XML: Ngôn ng ánh du m rng Page 1 of 6So sánh các phng pháp tip cn c s d liu XML 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 l+ là "nh dng phù hp. &ng th$i, XML kh nng mô t c d liu cu trúc và d liu không cu trúc. Th thì, bn 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 th là "Không!". Nu bn 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 th s dng nó  lu tr d liu cu trúc và không cu trúc. Vi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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 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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 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 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ó 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 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 l+ nghe nh là mt cái gì ó rt nng n, nhng bn 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 không 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 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 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 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. Page 2 of 6So sánh các phng pháp tip cn c s d liu XML 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 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u trúc các bn ghi hoc d liu c l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 mt chút SQL nào. IBM d oán trc câu hi 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 h tr XML, tôi ngh- r(ng mt NXD in hình c ng 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 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 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 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 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 ngh-a là bn không th s dng DB2  thc hin cha tài liu — cho 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 Page 3 of 6So sánh các phng pháp tip cn c s d liu XML mm d'o hn s dng kh nng lu tr XML. Nó th là th$i im trc khi các sn ph%m nh là Alfresco 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 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 h l+ s dng NXD thêm vào c s d liu quan h ca h, iu này 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 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 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 các tài liu XML th mô t d liu cu trúc, mt NXD cha nhiu tài liu XML 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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ó ã 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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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 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é 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. Page 4 of 6So sánh các phng pháp tip cn c s d liu XML 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 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  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 Tài nguyên Hc t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 Page 5 of 6So sánh các phng pháp tip cn c s d liu XML 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, 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 th là nhãn hiu ng ký hoc nhãn hiu d"ch v ca ng$i khác. Page 6 of 6So sánh các phng pháp tip cn c s d liu XML . 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. 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. Page 2 of 6So sánh các

Ngày đăng: 23/12/2013, 13:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan