Oracle Berkeley DB XML

Oracle Berkeley DB XML is an XML database with support for XQuery designed to store and index XML content for fast, scalable and predictable access. It is a C, C++ library that links into your application. Berkeley DB XML provides transactional access, automatic recovery, content compression, on-disk data encryption with AES, fail-over to a hot standby, and replication for high availability. Store, index and query key/value meta-data related to the XML documents as well. Berkeley DB XML provides fast, reliable and scalable persistence for applications that need to manage XML content.

Berkeley DB XML supports XQuery 1.0 and XPath 2.0, XML Namespaces, schema validation, naming and cross-container operations and document streaming. The XQuery engine uses a sophisticated cost-based query optimizer and supports pre-compiled query execution with embedded variables. Large documents can be stored intact or broken up into nodes, enabling more efficient retrieval and partial document updates. Berkeley DB XML supports flexible indexing of XML nodes, elements, attributes and meta-data to enable the fastest, most efficient retrieval of data.

XML Document Storage
  • Fast, scalable, transactional storage
  • Flexible storage control - nodes or whole document
  • Group content into containers
  • Schema and method validation, per-document
  • Key/value meta-data support
  • XML namespace support
  • XQuery debugging support
  • White space preservation when whole document storage is used
XML Document Indexing

Berkeley DB XML's unique dynamic indexing system enables optimized retrieval of XML content. XQuery statements are optimized based on statistical, cost-based query planning engine combine to deliver results quickly even when processing complex XQuery statements across large datasets.

  • Flexible indexing of XML nodes, elements, attributes and meta-data
  • Node level indexes which improve query performance, especially for large XML documents
  • Complex index creation and removal at runtime
  • Indexes targeted at specific hot spots
  • Type and existence-specific indexes
  • Interactive query planning and index optimization
  • Partial document re-indexing
XML Document Query Access

The XQuery language brings to XML databases what SQL brings to relational databases. With XQuery it is easy to express complex relationships, joins, conditions and result sets in statements that can be optimized and executed quickly over huge data sets. Berkeley DB XML closely tracks the XQuery and related XML standards.

  • XQuery 1.0 and XPath 2.0
  • Queries within a single container or across many
  • Queries across containers and network sources of XML data
  • Permanent document identifiers for direct access
  • Query optimization via cost-based query engine
  • Streamlined path expression evaluation and predicate evaluation
  • Pre-compiled queries containing variables for even more efficient repeated execution
  • Document streaming from URI, memory or file
  • DOM-like navigation of XML result sets
XML Document Modification

Berkeley DB XML provides a full modification API allowing for very efficient updates. XML document modification is not yet part of the XQuery standard, but as the standards are approved, Berkeley DB XML will support them.

  • XQuery Update 1.0
  • Partial document updates
  • In-place document modification within transactions
  • Concurrent modification of different sections of content

Berkeley DB XML is very flexible, easy to deploy and easy to integrate. As a set of C and C++ libraries, it can be installed and configured along with your application. It was designed to operate without the need for administrative oversight, no DBA required, all administrative functions are controlled programmatically. It supports a wide variety of programming languages and operating system platforms.

  • Programmatic administration and management - zero human administration
  • Command line tools to load, backup, dump and interact with the XML databases
  • Language support (C++, Java, Perl, Python, PHP, Tcl, Ruby, etc.)
  • Operating system support (Windows, Linux, BSD UNIX, Mac OS/X and any POSIX-compliant operating system)
  • Installer for Microsoft Windows
  • Apache integration
  • Documents up to 256TB
  • Source code, test suite included
Product Information
 Data sheet: Oracle Berkeley DB XML (PDF)
 White paper: Anatomy of an XML Database

Technical Resources
 Documentation: Berkeley DB XML
 FAQ: Berkeley DB XML
 Article: Native XML storage with Berkeley DB XML - part one, a blog post by Zeth (August, 2008)
 Article: XQuery, libferris, and Virtual Filesystems, O'Reilly (July 2007)
 Article: An embedded XML Database: Oracle Berkeley DB XML, RegDeveloper (July 2007)
 Article: Under the Hood: Oracle Berkeley DB XML, (May 2007)
 Article: Scaling up with XQuery, (June 2006)
 Article: Java Programming with Berkeley DB XML, LinuxWorld Magazine (December 2005)
 Article: Intro to Berkeley DB XML: Basic concepts, shell commands, and beyond, SYS-CON (October 2005)
 Article: Use a Native XML Database for Your XML Data, XML Journal (May 2005)
 Article: XML Databases Evolve, InfoWorld (May 2005)
 Article: Massive Data Aggregation with Perl, (April 2005)
 Presentation: Use an Embedded XML Database for Your XML Data, Open Source Database Conference 2005 (PDF)
 Presentation: Building Berkeley DB XML from Open Source Components, O'Reilly European Open Source Convention (PDF)
 Presentation: An Overview of Berkeley DB XML, O'Reilly Open Source Convention 2005 (PDF)
 Presentation: Building PHP Applications with Berkeley DB XML, O'Reilly Open Source Convention 2005 (PDF)
 Discussion forum: Berkeley DB XML

3rd Party Product Integration
 <oXygen/> XML Editor with support for debugging XQuery in Berkeley DB XML
 JasperSoft Oracle Berkeley DB XML plug-in on JasperForge with support for using BDB XML as a data source within JasperReports, iReport and JasperServer