Transcript XML
서울시립대학교 전자전기컴퓨터공학부 김한준 Data-centric XML <Orders> <SalesOrder SONumber="12345"> <Customer CustNumber="543"> <CustName>ABC Industries</CustName> <Street>123 Main St.</Street> <City>Chicago</City> <State>IL</State> <PostCode>60609</PostCode> </Customer> <OrderDate>981215</OrderDate> <Line LineNumber="1"> <Part PartNumber="123"> <Description> <p><b>Turkey wrench:</b><br/> Stainless steel, one-piece construction, lifetime guarantee.</p> </Description> <Price>9.95</Price> </Part> <Quantity>10</Quantity> </Line> </SalesOrder> </Orders> Document-centric XML <Product> <Name>Turkey Wrench</Name> <Developer>Full Fabrication Labs, Inc.</Developer> <Summary>Like a monkey wrench, but not as big.</Summary> <Description> <Para>The turkey wrench, which comes in both right- and left-handed versions (skyhook optional) … </Para> <Para>You can: <List> <Item><Link URL="Order.html">Order your own turkey wrench</Link></Item> <Item><Link URL="Wrenches.htm">Read more about wrenches</Link></Item> <Item><Link URL="catalog.zip">Download the catalog</Link></Item> </List> The turkey wrench costs just $19.99 and, if you order now, comes with a hand-crafted shrimp hammer as a bonus gift. </Para> </Description> </Product> Data-Centric XML documents ◦ Use XML as a data transport between DB and applications ◦ Designed for machine consumption ◦ 매우 정형적인 구조로서 내용과 구조가 혼재 ◦ 데이터 양이 적으며 형제들간의 순서가 중요하지 않음 ◦ 엘리먼트를 저장, 조작, 변경하는 데 중요한 의미를 가 짐 ◦ 활용예: 전자상거래용 문서, 비행 스케줄, 메시지 등 Document-Centric XML documents ◦ Designed for human consumption ◦ ◦ ◦ ◦ 비정형적인 구조 sibling 엘리먼트간의 순서가 중요 문서 단위의 저장, 내용검색, 문서단위 검색이 중요한 기능 활용예: 책, 논문, 광고 등 Data-Centric, Document-Centric이 혼재 가능 Polypropylene: 1. 2. 3. 4. 5. Lease Technical documentation Legal documents Intelligence reports Health documents Procedures Accident Report Insurance claims Data-centric XML documents를 저장/검색 ◦ Middleware : XML2DB and/or DB2XML ◦ XML-enabled DBMS Document-centric XML Documents를 저장/검색 ◦ Content management system이 필요 Designed for managing documents Developed on top of XML DBMS –Version and access control –Search engines –XML Editors –Publishing engines (such as paper, CD, Web…) –Separation of content and style –Extensibility through scripting or programming Data-centric XML Data & Document-centric Documents를 저장/검색 ◦ Native XML DBMS 개념적 데이터 모델: User level ◦ 동일 타입 문서 집합, 관련문서 집합, 문서정의, 문서 인스턴스, 엔터티등 논리적 데이터 모델: System level ◦ 대상 : 구조정보(엘리먼트), 속성, 엔터티, 하이퍼 링크 ◦ 복합 객체 생성 및 표현 ◦ 저장 후 구조정보의 유지 방안 ◦ 하이퍼링크 정보 표현, 하이퍼링크와 구조정보의 연계 ◦ 시스템 정의 클래스와 사용자 정의 클래스 물리적 데이터 모델: Storage level ◦ 인덱스 구조 : 구조, 내용, 하이퍼 링크, 속성 ◦ 클러스터링 : 엘리먼트별, 문서별 ◦ Decomposition 대 가상분할(virtual fragmentation) 저장방법 DTD-dependent ◦ OODB 기반 <Order Number="1234" <Customer>Gallagher</Customer> <Date>29.10.00</Date> <Item Number="1"> <Part>A-10</Part> <Quantity>12</Quantity> <Price>10.95</Price> </Item> <Item Number="2"> <Part>B-43</Part> <Quantity>600</Quantity> <Price>3.99</Price> </Item> </Order> 메모 Class 메모 type tuple( 수신: list(수신) 발신: list(발신) 본문: list(본문) 인사말: list(인사말) ) 수신 발신 Class 수신 type tuple( PCDATA: list(PCDDATA) ) PCDATA 본문 Class 발신 type tuple( PCDATA: list(PCDATA) ) 인사말 Class 본문 type tuple( P: list(P) ) Class 인사말 type tuple( RCDATA: list(RCDATA) ) PCDATA RM_RCDATA P Class P type tuple( PCDATA: list(PCDATA) Q: list(Q) 그림: list(그림) ) * Q Class Q type tuple( CDATA: list(CDATA) ) PCDATA CDATA * 그림 Class 그림 inherit RM_EMPTY DTD-dependent ◦ Store data in schema-specific structures ◦ 관계형 스키마로 표현 <Order Number="1234" <Customer>Gallagher</Customer> <Date>29.10.00</Date> <Item Number="1"> <Part>A-10</Part> <Quantity>12</Quantity> <Price>10.95</Price> </Item> <Item Number="2"> <Part>B-43</Part> <Quantity>600</Quantity> <Price>3.99</Price> </Item> </Order> Orders Number Customer Date 1234 Gallagher 001029 ... ... ... Items SONumber 1234 1234 ... Number 1 2 ... Part A-10 B-43 ... Quantity 12 600 ... Price 10.95 3.99 ... DTD-independent ◦ Node-centric ◦ Edge-centric <Order Number="1234" <Customer>Gallagher</Customer> <Date>29.10.00</Date> <Item Number="1"> <Part>A-10</Part> <Quantity>12</Quantity> <Price>10.95</Price> </Item> <Item Number="2"> <Part>B-43</Part> <Quantity>600</Quantity> <Price>3.99</Price> </Item> </Order> Order Item Customer Date Quantity Price Part Order Node-centric Model: ◦ 관계형 스키마로 표현 Documents DocID Name 1 Order1234 ... ... Item Customer Date Quantity <Order Number="1234" <Customer>Gallagher</Customer> <Date>29.10.00</Date> <Item Number="1"> <Part>A-10</Part> <Quantity>12</Quantity> <Price>10.95</Price> </Item> <Item Number="2"> <Part>B-43</Part> <Quantity>600</Quantity> <Price>3.99</Price> </Item> </Order> Price Part Elements DocID ID Parent Name Order 1 1 NULL Order 1 1 2 1 Customer 1 1 3 1 Date 2 1 4 1 Item 3 1 5 1 Item 4 1 6 4 Part 1 1 7 4 Quantity 2 ... ... ... ... ... Attributes DocID Parent 1 1 1 4 ... ... Name Number Number ... Value 1234 1 ... Text DocID Parent Value Order 1 2 Gallagher 1 1 3 29.10.00 1 1 5 A-10 1 1 6 12 1 1 ... ... ... Edge-centric Model <contact name = “Joe Smith”> <phone> <work> 800-555</work> <fax> 888-555</fax> </phone> </contact> Dimension Source Name Destinatio n child #root_0 Contact #contact_1 attribute #contact_1 Name Joe Smith child #contact_1 Phone #phone_2 child #phone_2 work #work_3 child #work_3 data 800-555 child #phone_2 fax #fax_4 child #fax_4 data 888-555 XML data can be stored in ◦ Non-relational data stores Flat files Natural for storing XML no concurrency, no recovery, … XML database Database built specifically for storing XML data, supporting DOM model and declarative querying ◦ (Object-) Relational databases Data must be translated into relational form Advantage: mature database systems Disadvantages: overhead of translating data and queries ◦ Native XML DBMS (NXD) Store the XML documents in true native form XML Middleware: For Data-Centric applications XML-Enabled DBMS: For Data-Centric applications Native XML DBMS: For data- and document-centric applications XML Servers: For data- and document-centric applications Content (Document) Management System: For Document-Centric ◦ Software you call from your application to transfer data between XML documents and databases. ◦ Databases with extensions for transferring data between XML documents and themselves. ◦ Databases that store XML in "native" form, generally as some variant of the DOM mapped to an underlying data store. ◦ XML-aware J2EE servers, Web application servers, integration engines, and custom servers ◦ Can be used to build distributed applications while others are used simply to publish XML documents to the Web applications ◦ Applications built on top of native XML databases and/or the file system for content/document management XML-enabled databases Native XML databases Use existing DBMS Built from scratch or on other DBMS Map XML data model to own model Use XML data model directly · Retain hierarchy and data · Retain hierarchy and data · Discard document identity, sibling order· Retain document identity, sibling Use XML only for data transport Manage and query XML Product Developer License DB Type DB=> X M L XML => D B ADO Microsoft Commercial Relational x x Alliance XML/400 Patrick Townsend & Associates Commercial Relational x x Allora HiT Software Commercial Relational x x Altova MapForce Altova Commercial Relational x x ASP2XML Stonebroom Commercial Relational x x Attunity Connect Attunity Ltd. Commercial Relational, hierarchical, etc. x x C24 Integration Objects Century 24 Solutions Commercial Relational x x Castor exolab.org Sourc e Relational x x Charteris Integration Toolkit Charteris Commercial Relational x x Connect for SQL/XML DataDirect Technologies Commercial Relational x x Connect XML-2-DB Skyhawk Systems Commercial Relational -- x DataDirect XQuery DataDirect Technologies Commercial Relational, XML x -- Data Junction Data Junction, Inc. Commercial Relational, ISAM, etc. x x Open DB2XML Volker Turau Open Source Relational x -- dbsql2xml Stepan RYBAR Open Source Relational x -- DbToXml SoftRUs Commercial Relational x x DBIx::XMLMessage Andrei Nossov Open Source Relational x x DBIx::XML_RDB Matt Sergeant Open Source Relational x x DBIx::XMLServer Martin Bright Open Source Relational x -- DB/XML Transform, DB/XML Vision DataMirror Corp. Commercial Relational x x Easysoft XML-ODBC Server Easysoft Commercial Relational x -- e.Report Actuate Commercial Relational x -- eTools XML GA eXpress Commercial MultiValue x x Extreme Translator Etasoft Commercial Relational x x iConnector infoteria Commercial Relational, Lotus Notes x x idx-xmnesia IDEALX Open Source mnesia x x iWay XML Transformation Engine (iXTE) iWay Software Commercial Relational, hierarchical, etc. x x JaxMe Jochen Wiedmann / Apache Software Foundation Open Source Relational, native XML x x mysql, mysqldump MySQL Open Source Relational x -- ODBC2XML Intelligent Systems Research Shareware Relational x -- ODBC Socket Server Team FXML Open Source Relational x -- Oracle XML Developer's Kit (XDK) Oracle Free Relational x x Osage George Stewart, et al Open Source Relational x x PowerXML Pro Wizen Software Commercial Relational x x(?) sql2dtd David Mertz Public domain Relational x -- sql2xml Scott Hathaway Public domain Relational x -- SXQL Goetz Hatop Shareware Relational x x Sypram XML Studio Sypram Technology Commercial Relational x -- SysDB Sysalys Shareware Relational x x XChainJ Cogent Logic Corp. Commercial Relational x x X:Forge Bibop Research International Open Source Relational, Native XML x -- xlinkit xlinkit.com Free/comm ercial Relational x -- XML DataDesk NetBryx Technologies Commercial Relational x -- XML-DBMS Ronald Bourret, et al Open Source Relational x x XML for Tables IBM Evaluation only Relational (DB2) x -- XML Gateway SPI Ltd. Commercial Relational, Excel, Word, text files x x XML::Generator::DBI Matt Sergeant Open Source Relational x -- XML Junction Data Junction, Inc. Commercial Relational, ISAM, etc. x x XML Lightweight Extractor (XLE) IBM Evaluation Relational x -- XMLServer Hydrosoft Free Relational x -- XQuare Bridge, XQuare Fusion Odonata Open Source Relational, XML documents x x XVRL (eXtensible Value Resolution Language) xvrl.org Open Source Relational x -- ZMOD Exchange XML Trailblazer Systems Commercial Relational x x Product Developer License DB Type Access 2002 Microsoft Commercial Relational Cache InterSystems Corp. Commercial Post-relational DB2 IBM Commercial Relational FoxPro Microsoft Commercial Relational Informix IBM Commercial Relational Matisse Matisse Software Commercial Object-oriented Objectivity/DB Objectivity Commercial Object-oriented Oracle Oracle Commercial Relational PostgreSQL PostgreSQL Global Development Group Open Source Relational SQL Server 2000 Microsoft Commercial Relational Sybase ASE 12.5 Sybase Commercial Relational UniData IBM Commercial Nested relational UniVerse IBM Commercial Nested relational Versant enJin Versant Corp. Commercial Object-oriented Product Developer License DB Type 4Suite, 4Suite Server FourThought Open Source Object-oriented Berkeley DB XML Sleepycat Software Open Source Key-value Birdstep RDM XML Birdstep Commercial Object-oriented Centor Interaction Server Centor Software Corp. Commercial Proprietary DBDOM K. Ari Krupnikov Open Source Relational dbXML dbXML Group Open Source Proprietary DOMSafeXML Ellipsis Commercial File system(?) eXist Wolfgang Meier Open Source Relational eXtc M/Gateway Developments Ltd. Commercial Post-relational Extraway 3D Informatica Commercial Files plus indexes GoXML DB XML Global Commercial Proprietary (Model-based) Infonyte DB Infonyte Commercial Proprietary (Model-based) Ipedo Ipedo Commercial Proprietary Lore Stanford University Research Semi-structured MarkLogic Server Mark Logic Corp. Commercial Proprietary(?) myXMLDB Mladen Adamovic Open Source MySQL Natix data ex machina Commercial File system(?) NaX Base Naxoft Commercial Proprietary Neocore XMS Xpriori Commercial Proprietary ozone ozone-db.org Open Source Object-oriented Sedna XML DBMS ISP RAS MODIS Free Proprietary Sekaiju / Yggdrasill Media Fusion Commercial Proprietary SQL/XML-IMDB QuiLogic Commercial Proprietary (native XML and relational) Sonic XML Server Sonic Software Commercial Object-oriented (ObjectStore). Relational and other data through Data Junction Tamino Software AG Commercial Proprietary. Relational through ODBC. TeraText DBS TeraText Solutions Commercial Proprietary TEXTML Server IXIASOFT, Inc. Commercial Proprietary (Text-based) TigerLogic XDMS Raining Data Commercial Pick Timber University of Michigan Open Source (noncommercial only) Shore, Berkeley DB TOTAL XML Cincom Commercial Object-relational? Virtuoso OpenLink Software Commercial Proprietary. Relational through ODBC XDBM Matthew Parry, Paul Sokolovsky Open Source Proprietary (Model-based) XDB ZVON.org Open Source Relational (PostgreSQL only?) XediX TeraSolution AM2 Systems Commercial Proprietary X-Hive/DB X-Hive Corporation Commercial Proprietary. Relational through JDBC Xindice Apache Software Foundation Open Source Proprietary (Model-based) XML Transactional DOM Ontonet Commercial Object-oriented XpSQL Makoto Yui Open Source Relational (PostgreSQL) XStreamDB Native XML Database Bluestream Database Software Corp. Commercial Proprietary (Model-based) Xyleme Zone Server Xyleme SA Commercial Proprietary Product Developer License DB Type ATG Relationship Management Platform ATG Commercial Relational (JDBC), LDAP, file system AxKit AxKit.com Ltd. Open Source Relational Cocoon Apache.org Open Source Relational ColdFusion Macromedia Commercial Relational Enhydra enhydra.org Open Source Relational Enosys Integration Suite Enosys Software Commercial Relational, XML, HTML, Web services, flat files Interaction Server Netegrity Commercial Relational Lasso Blue World Communications Commercial Relational Liquid Data BEA Commercial Relational (JDBC), XML, Web services, CSV files, etc. MatriXML MojoTechnology, Inc. Commercial Oracle. External relational through ODBC Net.Data IBM Commercial Relational Nimble Integration Suite Nimble Technology Commercial Relational, IMS, SAP, Notes, flat files, etc. Noetix Web Query Aris Software, Inc. Commercial Relational Orbeon Presentation Server Orbeon.org Open Source Relational, native XML Pi.gia.ma Power PGM Technology Commercial Relational PolarLake Database Integrator PolarLake Commercial Relational (JDBC) Rhythmyx Content Manager Percussion Software Commercial Relational, Lotus Notes SQml Web, SQml Publisher Agave Software Design Commercial Relational Total-e-Business HP Bluestone Commercial Relational (JDBC). Non-relational through Data Source Integration Modules Visual Net Server CNet Commercial Relational WebObjects Apple Computer Commercial Relational XA-Suite XAware, Inc. Commercial Relational, native XML, mainframe, etc. XML Portal Server (XPS) Uniway Commercial Relational, Lotus Notes, etc. Zope Digital Creations Open Source Object-oriented, Relational, LDAP Product Developer License DB Type Amaxus XML Content Management System Box UK Commercial Relational Astoria LightSpeed Software Commercial Object-oriented Cascade Server Hannon Hill Corporation Commercial Relational CMS Sorman Commercial POET Content@XML XyEnterprise Commercial Oracle Documentum Documentum, Inc. Commercial Relational Dynabase Red Bridge Interactive Commercial ObjectStore eidonXportal eidon Commercial Relational engenda Red Bridge Interactive Commercial ObjectStore/Dynabase entrepid Red Bridge Interactive Commercial Oracle 8i The Environment Ecosystems Design Commercial Unknown EXPLOit Document Solutions Commercial Relational Frontier UserLand Software Commercial Object-oriented GEMt X.Systems, Inc. Commercial Tamino GroveMinder Epremis Commercial Unknown iENGINE LightSpeed Software Commercial Pluggable Ingeniux Content Management System Ingeniux Corporation Commercial Relational InsightBuilder Polar Design Commercial Relational Life*CDM Corena Commercial Oracle Lucid e-Globalizer Lucid'i.t. Commercial Lucid XML Data Manager One-to-One Content BroadVision Commercial Unknown Prowler infozone Open Source Object-oriented, relational, etc. SCHEMA ST4 SCHEMA GmbH Commercial Relational SiberSafe SiberLogic Commercial Relational SigmaLink STEP Electronic Publishing Solutions GmbH Commercial Relational TeamSite Interwoven Commercial Relational, file system Vasont Vasont Systems Commercial Relational Vignette Content Suite Vignette Corp. Commercial Unknown XCMS KwareSoft Inc. Commercial Relational X-Hive/Docato X-Hive Corporation Commercial Proprietary (X-Hive/DB)