|
Open Source (or free) XML databases |
|
|
|
Currently there are about 20 different native XML databases on the market. Below, there is a description of seven open source (or at least free) native XML DBs. There are always links going to further informations.
dbXML 2.0 Xindice Berkeley DB XML Ozone eXist Viper SQL 2005 Server Express
(texts sometimes taken from the web sites of the products)
dbXML 2.0
The dbXML is a Native XML Database written in Java. It is capable of storing and indexing collections of XML documents in both native and mapped forms for highly efficient querying, transformation, and retrieval.
Version 1.0 of dbXML was given to the community (in 2001) and was the base for Apache Xindice. Version 2.0 was almost complete rewritten and implemented in several large commercial systems.
Collections in dbXML may have seeveral indexes, extensions, triggers and child collections. dbXML is not a multimedia database. Collections can either store XML documents or binary streams, but not both at the same time.
Four query languages are supported: XPath, XSLT, XUpadate and FullText (AND, OR, NOT, ...). But there is currently no support for XQuery. The server may also be extended to provide business logic in the form of scripts (Python, JavaScript), classes and triggers. Other features in this release include: Journaling transactions, XSLT transformations, Full text indexing and Full text querying, Pluggable security models and a JSP Tag Library.
XML:DB API is supported, but for the web services there is no SOAP (only REST). Extensions are Java classes that implement the extesnion interface and whose public methods are provided as web services.
There is an open source and a commercial license for dbXML. The 2.0 version is open source since 2003. The commercial version seems to be faster and more professional than the open source version.
A comfortable GUI is provided for managing the DB.
License: GPL
More information
Xindice
Apache Xindice 1.1 is a database designed from the ground up to store XML data or what is more commonly referred to as a native XML database. At the present time Xindice uses XPath for its query language and XUpdate for its update language. The XML:DB API for Java development is supported and it is possible to access Xindice from other languages using an available XML-RPC plugin.
Xindice does not support DOM and has proprietary format for storing files. It is not built for storing very large files. XQuery is not yet supported and the documentation needs work.
As mentioned in the dbXML section, Xindice is the continuation of the dbXML 1.0 core. It is very much a project still in development. There is still a lot to do in order to have a product that can be used for production. Nevertheless it should improve with time and become an aalternative on the open source market.
License: Apache License 2.0
Xindice vs.Berkeley DB XML
Berkeley DB XML
The Berkeley DB XML 2.0 is an embedded open source XML database built on top of the well known Berkeley DB which provides record storage and transaction management.
The DB is written in C++ but also provides APIs for C/C++, Java, Perl, Python, PHP and TCL. The whole DB is integrated into an application as a library. Berkeley DB XML does not provide it's own server. XML:DB API is supported, but there is no support for XUpdate (planned feature for future releases).
Berkeley DB XML is not very comfortable to install and maintain (no GUI). Nevertheless it is probably the most mature and robust open source XML database because of the underlying Berkeley DB. Berkeley DB and Berkeley DB XML can seamlessly work together to store XML and non-XML data with full support for transactions and recovery.
License: GPL
More information Xindice vs. Berkeley DB XML
Ozone
Ozone 1.2 is a fully featured, object-oriented database management system completely implemented in Java and distributed under an open source license. The ozone project aims to evolve a database system that allows developers to build pure object-oriented, pure Java database applications. Just program your Java objects and let them run in a transactional database environment.
XQuery and DOM as well as XSLT are supported. Ozone also provides an ODMG[http://www.odmg.org/] interface which helps to port applications to/from ozone. ozone does not depend on any back-end database or mapping technology to actually save objects. It contains its own clustered storage and cache system to handle persistent Java objects.http://www.odmg.org/
There is a Swing GUI for managing the DB.
License: GPL
eXist
eXist 1.0 is an open source native XML database featuring efficient, index-based XQuery processing, automatic indexing, extensions for full-text search and tight integration with existing XML development tools. It is written in Java. and supports all XML standards including XPath, XUpdate, XQuery, XInclude and XSLT.
The databases comes with it's own server and XQuery processor. This means that you can build applications only with Xquery and XSLt for aexample. XMLDB: API is provided as well support for DOM and SAX through this API.
It is very comfortable to manage with a browser GUI. The documentation is more is not always up to date and could be improved. But there is lot of information and examples on the homepage. eXist is probably the most flexible open source XML DB. A lot of third party tools are supported and it integrates well into a lot of existing frameworks.
The newest version supports crash recovery with an internal journalling log. Crash recovery is seen as the first step towards a fully transactional storage engine. Right now, transaction management is all internal, i.e. not visible to users. Also, only the core files for the persistent DOM and document management are protected by the journal.
eXist is a very promising product for the future. The first stable release 1.0 will appear in December 2005.
License: LGPL
Viper
Viper is the upcoming release of IBM's DB2 with native XML support. XML data can be accessed with either SQL or XQuery. The express edition will be probably be free, but with limitations.
License: Free, but not open source.
SQL 2005 Server Express Edition
This is a traditional SQL database with an XML layer. XML files are "natively" supported. The express version is a limited version of the SQL 2005 server edition. It integrates perfectly with Visual Studio 2005.
The database size is limited to 4 GB in the express version. It is, of course, not an oupen source product.
License: Free, but not open source. One must register for the right to redistribute SQL Server Express with applications. |
| |