XML database: Difference between revisions
(using an external editor) |
(using an external editor) |
||
Line 1: | Line 1: | ||
== Definition == | == Definition == | ||
In this article, we are primairly interested in '''Native XML Databases''', {{quotation | Databases that store XML in "native" form, generally as some variant of the DOM mapped to an underlying data store. This includes the category formerly known as persistent DOM (PDOM) implementations.For data- and document-centric applications.}}([http://www.rpbourret.com/xml/XMLDatabaseProds.htm R. Bourret], retrieved 17: | In this article, we are primairly interested in '''Native XML Databases''', {{quotation | Databases that store XML in "native" form, generally as some variant of the DOM mapped to an underlying data store. This includes the category formerly known as persistent DOM (PDOM) implementations.For data- and document-centric applications.}}([http://www.rpbourret.com/xml/XMLDatabaseProds.htm R. Bourret], retrieved 17:59, 3 November 2006 (MET)) | ||
== When do we need an XML database == | == When do we need an XML database == | ||
Ronald Bourret (2006) summarizes the major different XML and databases scenarios: {{quotationbox | | Ronald Bourret (2006) summarizes the major different XML and databases scenarios: {{quotationbox | | ||
To store and retrieve the data in data-centric documents, what kind of software you need will depend on how well structured your data is. For highly structured data, such as the white pages in a telephone book, you will need an XML-enabled database that is tuned for data storage, such as a relational or object-oriented database, and some sort of data transfer software. This may be built in to the database (in which case the database is said to be XML-enabled) or might be third-party software, such as middleware or an XML server. If your data is semi-structured, such as the yellow pages in a telephone book or health data, you have two choices. You can try to fit your data into a well-structured database, such as a relational database, or you can store it in a native XML database, which is designed to handle semi-structured data.}} ([http://www.rpbourret.com/xml/XMLDatabaseProds.htm R. Bourret], retrieved 17: | To store and retrieve the data in data-centric documents, what kind of software you need will depend on how well structured your data is. For highly structured data, such as the white pages in a telephone book, you will need an XML-enabled database that is tuned for data storage, such as a relational or object-oriented database, and some sort of data transfer software. This may be built in to the database (in which case the database is said to be XML-enabled) or might be third-party software, such as middleware or an XML server. If your data is semi-structured, such as the yellow pages in a telephone book or health data, you have two choices. You can try to fit your data into a well-structured database, such as a relational database, or you can store it in a native XML database, which is designed to handle semi-structured data.}} ([http://www.rpbourret.com/xml/XMLDatabaseProds.htm R. Bourret], retrieved 17:59, 3 November 2006 (MET)) | ||
== Standards == | == Standards == | ||
* [http://www.w3.org/TR/xquery/ XQuery 1.0: An XML Query Language] (the central document). XQuery can only query (not update). | * [http://www.w3.org/TR/xquery/ XQuery 1.0: An XML Query Language] (the central document). XQuery can only query (not update). | ||
Line 27: | Line 26: | ||
[[User:DSchneider|DSchneider]] believes that native XML databases eXist "will take off" in our field as soon as there are sufficient PHP APIs. eXist is both a server but there is also a portal written in Java (which makes this technology not very accessible to the "bricoleur" world of education). The advantage of an XML-database is that you can just "stick in" XML contents and then retrieve them with XQuery expressions. Adding new information structures may require rewriting of interfaces to XQuery to optimize retrieving, but otherwise flexibility comes at a much lower price.... | [[User:DSchneider|DSchneider]] believes that native XML databases eXist "will take off" in our field as soon as there are sufficient PHP APIs. eXist is both a server but there is also a portal written in Java (which makes this technology not very accessible to the "bricoleur" world of education). The advantage of an XML-database is that you can just "stick in" XML contents and then retrieve them with XQuery expressions. Adding new information structures may require rewriting of interfaces to XQuery to optimize retrieving, but otherwise flexibility comes at a much lower price.... | ||
See some discussion in the [[DITA]] article. | |||
[[Category: XML]] | [[Category: XML]] | ||
[[Category: Technologies]] | [[Category: Technologies]] |
Revision as of 17:59, 3 November 2006
Definition
In this article, we are primairly interested in Native XML Databases, “Databases that store XML in "native" form, generally as some variant of the DOM mapped to an underlying data store. This includes the category formerly known as persistent DOM (PDOM) implementations.For data- and document-centric applications.”(R. Bourret, retrieved 17:59, 3 November 2006 (MET))
When do we need an XML database
Ronald Bourret (2006) summarizes the major different XML and databases scenarios:
(R. Bourret, retrieved 17:59, 3 November 2006 (MET))
Standards
- XQuery 1.0: An XML Query Language (the central document). XQuery can only query (not update).
- There are some other parts, e.g. XML Query Use Cases and XML Query Requirements and XML Query Data Model (W3C Working Draft). XQuery is a full programming language and comes with 2 syntaxes: one humain readable and on in XML ;)
- xqupdate - XQuery Update Facility. This will replace Xupdate (a very informal "standard")
- Xpath 2.0 is used both by XSLT 2.0 and XQuery. XQuery is an extension of XPath 2.0 and both XSLT 2.0 and XQuery 2.0 share the same data model.
- Xupdate can be used to update some XML databases (not updated since 2000). Xupdate looks a lot like XSLT.
Software
- Xindice is a native XML database. Supports XPath queries and XML:DBXUpdate. Java and has a XML-RPC API plugin. It has grown out from dbXML is a native XML database (JDK 1.3, LGPL licence). See also the Xindice Wiki at Apache for more information, e.g. a pointer to XIndicePHPAdmin. There exist other PHP libraries, but most projects seem to be inactive. [This project seems to stall since sept 2004, see dbXML or eXist)
- dbXML, GPL license. dbXML is a Native XML Database (NXD). NXDs are databases that store XML using an internalized format for faster overall processing. dbXML was developed using the Java 2 Standard Edition version 1.4.
- eXist XML database and retrieval engine, an alternatives to popular Xindice. [1.0b2 in 6/2005, tested @Tecfa but in in production - faster (for lots of small documents) than Xindice, more other features too that I like: XQuery, XUpdate, XML:DB API, xml-rpc support, REST support, WebDav, PHP API (needs dowloading from CVS), good Cocoon Integration ]. A side note for qualitative analysis people: seed XML DBs as Research Tools (by darcusblog)
- DB2XML: A tool for transforming relational databases into XML documents As Servlet or standalone. Xindice is a fork of this (don't know if db2xml development continues).
Discussion
DSchneider believes that native XML databases eXist "will take off" in our field as soon as there are sufficient PHP APIs. eXist is both a server but there is also a portal written in Java (which makes this technology not very accessible to the "bricoleur" world of education). The advantage of an XML-database is that you can just "stick in" XML contents and then retrieve them with XQuery expressions. Adding new information structures may require rewriting of interfaces to XQuery to optimize retrieving, but otherwise flexibility comes at a much lower price....
See some discussion in the DITA article.