dbXML 2.0 - An Introduction
dbXML is an XML database that is written in Java. It is a native XML database that is used to store XML in a format that helps in faster processing and flexibility in representation. XML that is stored in the dbXML can also be indexed to improve the performance of the queries. The database was also created with the help of writers from 123helpme.org.
Java 1.4.2 or higher is needed for using dbXML since it uses memory mapped I/O and socket overlapping I/O of Java. The development of dbXML was started in 1999. This XML database is released under the terms of the GNU General Public License (GPL).
Between dbXML versions 1.0 and 2.0 the database has undergone a lot of changes. We can say that the database was completely rewritten between these two versions. Some of the new features or enhanced features of the version 2.0 of dbXML are discussed here. The features between 1.0 and 2.0 have been refined and enhanced and the engine has become faster and robust. The dbXML has been dramatically improved in terms of overall usability. As for as the dbXML architecture is concerned, you have to know some of the terms and functionalities that pertain to the architecture. The technical terms that are to be known are Collections, Indexes, Query Resolvers, Extensions, and Triggers.
The documents that are managed in the dbXML are managed in collections. In collections the documents can be arranged in a fashion similar to the directory structure that is used to manage files in an operating system. A collection can be related to multiple indexes, extensions, triggers, and other collections. A collection in dbXML can store either XML documents or records (binary streams) and not both at the same time. It is not advised to store more than 500 kB of binary streams in dbXML.
Indexes in dbXML help to retrieve the documents in a collection faster depending on the values stored in the documents. Indexes help to improve the performance of the queries in dbXML. A collection in dbXML can have multiple indexes associated with it. Queries help to retrieve documents that are needed for processing based on some values in the documents. dbXML has a query resolving systems which registers the query resolvers with the entire database. Collections and Indexes are of much use in queries. The reason for using collections and indexes is for efficient querying of the XML database. The collections and documents with a collection can be queried.
There are many new functionalities and features introduced in the latest version of the dbXML. Some of the new features are Journaling transactions, three types of security managers, web services, improved command line processing, easy to use GUI Administrator, new database access APIs, and improved querying capabilities.
There are three types of security managers that are used in dbXML namely, NoSecurityManager, SimpleSecurityManager, and DefaultSecurityManager. NoSecurityManager provides no security and allows any user to access the database. SimpleSecurityManager uses a single username and password for the entire database which is found in the system.xml configuration file. DefaultSecurityManager is the default security manager that is used for database access. This uses the users and roles that are defined in the systems collections of the database.
dbXML 1.0 used CORBA for client/server communications. Now dbXML 2.0 no more uses CORBA, but uses Web Services. This version uses a web services hub called Labrador for client/server communications. The command line mode of processing is improved in the dbXML 2.0. this new version uses a “shell-like” command line to interactively use commands and provides access to the help feature. In the earlier versions the batch processing are slowed down in command line since the JVM is called for each command. dbXML 2.0 includes an easy to use GUI Administrator that can be used to perform all the commands easily instead of command line invocation. With the help of this GUI Administrator the users need not remember the command line syntax to perform some action on the database.
The earlier version of dbXML used XML:DB APIs for accessing and operating multiple vendors’ XML databases. The dbXML 2.0 also provides support the XML:DB APIs while providing a set of new APIs that are preferred for accessing dbXML data stores. There are four interfaces that are used to access databases. They are dbXMLClient, CollectionClient, ContentClient and ResultSetClient. The dbXMLClient is used as an entry point to the database. The CollectionClient is used to interact with the Collections in the database. CollectionClient has several methods that are used for querying the database and also to manage documents, indexes, triggers and extensions. These methods found in the CollectionClient are categorized and grouped based on the functionalities so that it is easy to locate by a developer. The ContentClient is used to a single document or a binary stream and the ResultSetClient is used to access the results of a query.
Four query languages are supported in dbXML namely XPath, XSLT, XUpdate and FullText. XPath is used for navigation and is a path syntax. XSLT is a transformation language that is used to convert XML in to other formats for presentation. XSLT queries can be executed against a single document, or collections, or a the results of an XPath query. XUpdate is used to modify the values found in a document and FullText is used to search for words in a document. The results of a FullText search can also be filtered using XPath.
The dbXML source code is also available in the web. A person interested in only development can download a binary version of the product at http://www.dbxml.com/product.html. Then install the software and start developing applications using dbXML.
For information on how to program using dbXML you can get information at http://www.dbxml.com/docs/programmer.html.
| All About Different Types of XML Editors | Generating XML Document Using JSP | How to Retrieve an Email Message Using Java Mail API | How to Send an Email Message Using Java Mail API | Transforming XML Data with XSLT | Understanding Basic Components of a JMS Program | Understanding Basic Technology of ebXML | Understanding Deployment Descriptor in Reference with Servlets | Understanding eXtensible Access Control Markup Language (XACML) | Understanding the Design Goals of XML | Understanding XML Common Biometric Format |