XML database: Difference between revisions
Xpriori XMS support neither XML:DB or XQJ APIs, and yet apparently different people continue to alter this Wiki page with false claims for marketing purposes..... Get a life. |
Trashing the XML Database page huh??? Fanks. |
||
Line 1: | Line 1: | ||
{{external links|date=March 2010}} |
|||
An XML database is a [[data persistence]] software system that allows data to be stored in [[XML]] format. This data can then be [[XQuery|queried]], exported and serialized into the desired format. |
An XML database is a [[data persistence]] software system that allows data to be stored in [[XML]] format. This data can then be [[XQuery|queried]], exported and serialized into the desired format. |
||
Line 146: | Line 147: | ||
| Yes |
| Yes |
||
|} |
|} |
||
==Implementations== |
|||
* [http://xml.apache.org/xindice/ Apache Xindice](previous name:dbxml) |
|||
* [http://basex.org/ BaseX] native, open-source XML Database developed at the [[University of Konstanz]]. Supports XQuery and [http://www.w3.org/TR/xpath-full-text-10/ Full Text] and [http://www.w3.org/TR/xqupdate/ Update] extensions. |
|||
* [http://www.ibu.de/node/52 BSn/NONMONOTONIC Lab: IB Search Engine], embeddable XML++ search engine using a generic/abstract model and a mix of polymorphic objects types. Spin-off from the [[Isearch]] project. |
|||
* [http://www.clusterpoint.com/ Clusterpoint Storage Engine], an XML storage engine geared towards high-volume applications and millisecond query times. |
|||
* [http://ibm.com/db2/viper/ DB2 9 Express-C], no-charge hybrid relational/XML data server with [[PureXML]] |
|||
* [http://www.emc.com/products/detail/software/documentum-xdb.htm EMC Documentum xDB], a commercial native XML database including XQuery implementation, embeddable |
|||
* [http://exist.sourceforge.net/ eXist-db], open-source native XML database, written in Java |
|||
* [http://www.gemstone.com/products/gemfire/enterprise.php Gemstone System's GemFire Enterprise] commercial XML database |
|||
* [http://www.marklogic.com/ MarkLogic Server], a native XML database which uses XQuery. |
|||
* [http://www.mgateway.com/mdbx.html M/DB:X], a lightweight, REST-interfaced native XML database designed for use as a Cloud database. |
|||
* [http://monetdb.cwi.nl/XQuery/ MonetDB/XQuery] - XQuery processor on top of the [[MonetDB]] relational database system. Also supports W3C [http://www.w3.org/TR/xqupdate/ XQUF] updates. Open source. |
|||
* [http://www.oracle.com/technology/tech/xml/xmldb/index.html Oracle XML DB] XML Enabled, (as of Oracle 10g known as Oracle XDB) despite its name it does not support the XML:DB API. |
|||
* [http://www.oracle.com/database/berkeley-db/xml/index.html Oracle Berkeley DB XML], XML Enabled, embedded database; built on top of the [[Berkeley DB]] (a key-value database). |
|||
* [http://modis.ispras.ru/sedna Sedna XML Database], [[Open source]] XML database developed by [http://modis.ispras.ru MODIS] team at [http://ispras.ru Institute for System Programming]. Supports [[XQuery]], Updates, XQJ API, [[Database transactions|Transactions]] and [[Database trigger|Triggers]] |
|||
* [http://www.microsoft.com/sql/default.mspx SQL Server 2005], Free Express Edition with full xml features |
|||
* [http://www.softwareag.com/corporate/products/wm/tamino/ Tamino XML Server], native XML database. support for XQuery, XQuery Update, Transactions and Server Extensions. |
|||
* [http://www.ixiasoft.com/textmlserver TEXTML Server], a native XML database combined with a full-text search engine. |
|||
* [http://www.rainingdata.com/products/tl/index.html TigerLogic XDMS] native XML Database |
|||
* [http://www.eecs.umich.edu/db/timber/ Timber], a native XML database system developed at the [[University of Michigan]] |
|||
* [http://www.xmlmind.com/qizx/ Qizx 3.0] a native XQuery database engine written in Java (free & open source edition available) |
|||
* [http://bluestream.com/products/xstreamdb32 XStreamDB], native XML Database |
|||
* [http://www.xpriori.com Xpriori XMS], XMS is a completely self constructing native XML database. |
|||
== References == |
== References == |
Revision as of 23:43, 1 July 2010
This article's use of external links may not follow Wikipedia's policies or guidelines. (March 2010) |
An XML database is a data persistence software system that allows data to be stored in XML format. This data can then be queried, exported and serialized into the desired format.
Two major classes of XML database exist:
- XML-enabled: these map all XML to a traditional database (such as a relational database[1]), accepting XML as input and rendering XML as output. This term implies that the database does the conversion itself (as opposed to relying on middleware).
- Native XML (NXD): the internal model of such databases depends on XML and uses XML documents as the fundamental unit of storage, which are, however, not necessarily stored in the form of text files.
Rationale for XML in databases
O'Connell (2005, 9.2) gives one reason for the use of XML in databases: the increasingly common use of XML for data transport, which has meant that "data is extracted from databases and put into XML documents and vice-versa". It may prove more efficient (in terms of conversion costs) and easier to store the data in XML format.
Native XML databases
The term "native XML database" (NXD) can lead to confusion. Many NXDs do not function as standalone databases at all, and do not really store the native (text) form.
The formal definition from the XML:DB initiative (which appears to be inactive since 2003[2]) states that a native XML database:
- Defines a (logical) model for an XML document — as opposed to the data in that document — and stores and retrieves documents according to that model. At a minimum, the model must include elements, attributes, PCDATA, and document order. Examples of such models include the XPath data model, the XML Infoset, and the models implied by the DOM and the events in SAX 1.0.
- Has an XML document as its fundamental unit of (logical) storage, just as a relational database has a row in a table as its fundamental unit of (logical) storage.
- Need not have any particular underlying physical storage model. For example, NXDs can use relational, hierarchical, or object-oriented database structures, or use a proprietary storage format (such as indexed, compressed files).
Additionally, many XML databases provide a logical model of grouping documents, called "collections". Databases can set up and manage many collections at one time. In some implementations, a hierarchy of collections can exist, much in the same way that an operating system's directory-structure works.
All XML databases now[update] support at least one form of querying syntax. Minimally, just about all of them support XPath for performing queries against documents or collections of documents. XPath provides a simple pathing system that allows users to identify nodes that match a particular set of criteria.
In addition to XPath, many XML databases support XSLT as a method of transforming documents or query-results retrieved from the database. XSLT provides a declarative language written using an XML grammar. It aims to define a set of XPath filters that can transform documents (in part or in whole) into other formats including Plain text, XML, or HTML.
Many XML databases also support XQuery to perform querying. XQuery includes XPath as a node-selection method, but extends XPath to provide transformational capabilities. Users sometimes refer to its syntax as "FLWOR" (pronounced 'Flower') because the flow may include the following statements: 'For', 'Let', 'Where', 'Order' and 'Return'. Traditional RDBMS vendors (who traditionally had SQL only engines), are now shipping with hybrid SQL and XQuery engines. Hybrid SQL/XQuery engines help to query XML data alongside the Relational data, in the same query expression. This approach helps in combining Relational and XML data.
Some XML databases support an API called the XML:DB API (or XAPI) as a form of implementation-independent access to the XML datastore. In XML databases, XAPI resembles ODBC and JDBC as used with relational databases. On the 24th of June 2009, The Java Community Process released the final version of the XQuery API for Java specification (XQJ) - "a common API that allows an application to submit queries conforming to the W3C XQuery 1.0 specification and to process the results of such queries".
Databases known to support XQuery, XQJ, XML:DB, or a RESTful API
XML Database | License | Language | XQJ API | XML:DB API | RESTful API | Transaction Support |
---|---|---|---|---|---|---|
Apache XIndice (no longer maintained[3]) | Open source | Java | No | Yes | No | No |
BaseX | Open source | Java | Yes | Yes | Yes | Yes |
Gemfire Enterprise | Commercial | Unknown | No | Yes | No | Yes |
DOMSafeXML | Commercial | Unknown | No | Yes | No | Yes |
eXist | Open source | Java | No | Yes | Yes | No |
MarkLogic Server | Commercial | C++ | No | No | Yes | Yes |
MonetDB/XQuery | Open source | C++ | No | Yes | No | No |
myXMLDB | Open source | Java | No | Yes | No | Unknown |
OZONE | Open source | Java | No | Yes | No | Yes |
Sedna | Open source | C++ | Yes | Yes | No | Yes |
Tamino | Commercial | Unknown | No | Partial | No | Unknown |
TeXtML | Commercial | Unknown | Unknown | Unknown | No | Yes |
Xpriori XMS | Commercial | C++ | No | No | Yes | Yes |
Implementations
- Apache Xindice(previous name:dbxml)
- BaseX native, open-source XML Database developed at the University of Konstanz. Supports XQuery and Full Text and Update extensions.
- BSn/NONMONOTONIC Lab: IB Search Engine, embeddable XML++ search engine using a generic/abstract model and a mix of polymorphic objects types. Spin-off from the Isearch project.
- Clusterpoint Storage Engine, an XML storage engine geared towards high-volume applications and millisecond query times.
- DB2 9 Express-C, no-charge hybrid relational/XML data server with PureXML
- EMC Documentum xDB, a commercial native XML database including XQuery implementation, embeddable
- eXist-db, open-source native XML database, written in Java
- Gemstone System's GemFire Enterprise commercial XML database
- MarkLogic Server, a native XML database which uses XQuery.
- M/DB:X, a lightweight, REST-interfaced native XML database designed for use as a Cloud database.
- MonetDB/XQuery - XQuery processor on top of the MonetDB relational database system. Also supports W3C XQUF updates. Open source.
- Oracle XML DB XML Enabled, (as of Oracle 10g known as Oracle XDB) despite its name it does not support the XML:DB API.
- Oracle Berkeley DB XML, XML Enabled, embedded database; built on top of the Berkeley DB (a key-value database).
- Sedna XML Database, Open source XML database developed by MODIS team at Institute for System Programming. Supports XQuery, Updates, XQJ API, Transactions and Triggers
- SQL Server 2005, Free Express Edition with full xml features
- Tamino XML Server, native XML database. support for XQuery, XQuery Update, Transactions and Server Extensions.
- TEXTML Server, a native XML database combined with a full-text search engine.
- TigerLogic XDMS native XML Database
- Timber, a native XML database system developed at the University of Michigan
- Qizx 3.0 a native XQuery database engine written in Java (free & open source edition available)
- XStreamDB, native XML Database
- Xpriori XMS, XMS is a completely self constructing native XML database.
References
- ^ Mustafa Atay and Shiyong Lu, “Storing and Querying XML: An Efficient Approach Using Relational Databases”, ISBN 3639115813, VDM Verlag, 2009.
- ^ http://xmldb-org.sourceforge.net/faqs.html
- ^ http://www.oreillynet.com/onjava/blog/2006/03/dont_be_misled_xindice_is_dead.html
External references
- XML Databases - The Business Case, Charles Foster, June 2008 - Talks about the current state of Databases and data persistence, how the current Relational Database model is starting to crack at the seams and gives an insight into a strong alternative for today's requirements.
- An XML-based Database of Molecular Pathways (2005-06-02) Speed / Performance comparisons of eXist, X-Hive, Sedna and Qizx/open
- XML Native Database Systems: Review of Sedna, Ozone, NeoCoreXMS 2006
- XML Data Stores: Emerging Practices
- Bhargava, P.; Rajamani, H.; Thaker, S.; Agarwal, A. (2005) XML Enabled Relational Databases, Texas, The University of Texas at Austin.
- O'Connell, S. Advanced Databases Course Notes, Southampton, University of Southampton, 2005
- Initiative for XML Databases
- XML and Databases, Ronald Bourret, September 2005
- XML Database Products, Ronald Bourret, 2000-2009
- The State of Native XML Databases, Elliotte Rusty Harold, August 13, 2007
- XML for DB2 Information Integration, an IBM Redbook that has a chapter on XML and databases (1st chapter).