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)