### Berkeley DB Reference Guide: Berkeley DB XML |

### Introduction

Berkeley DB XML (DBXML) is a programmatic toolkit specifically designed to store and manage XML data in its native format. This document provides a product overview and technical reference for Berkeley DB XML, and illustrates the product's core features and functionality. Readers are assumed to have existing knowledge of XML, XPath, C++, and Berkeley DB.

Berkeley DB XML is built on top of Sleepycat Software's existing database product, Berkeley DB, which provides fast, reliable, scalable, and mission-critical database support. Application developers can choose the version of Berkeley DB that is most suitable for a particular application: Berkeley DB Data Store, Berkeley DB Concurrent Data Store, Berkeley DB Transactional Data Store, or Berkeley DB High Availability. Berkeley DB XML provides the following functionality:

Embedded
  Berkeley DB XML is provided as a library that is linked into the client application. This provides superior performance by eliminating communication among processes or systems.

Document Storage
  Within Berkeley DB XML, documents are stored in containers. A client application can operate on many containers at the same time, and can combine data from different containers. Client applications can also create and manage Berkeley DB databases. Berkeley DB databases and containers can be used together at the same time, with full support for Berkeley DB transactions and recovery services.

Native Storage
  Documents are returned to the client application exactly as they were stored. Extraneous white space is preserved, thereby ensuring that the document is unchanged upon retrieval from the database. This is also called round tripping.

Indexing
  Indexing strategies are defined at the container level, and a container may have multiple indices. This flexibility allows the client application to facilitate different query patterns, and to exploit the schema common to each container.

Query Processing
  The Query Processor uses a cost-based algorithm to select the most efficient plan for a given query. The algorithm considers available indices, data volume, disk IO, and the cost of computation when selecting a query plan.

Threading
  Berkeley DB XML is thread-safe, and allows the application developer to use the thread package most appropriate to the application. Berkeley DB XML supports multithreaded and multiprocess applications.

Standards
  Berkeley DB XML is implemented to conform to the W3C standards for XML, XML Namespaces, and XPath 1.0.

Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.