XML has become the standard for document management and for data exchange between disparate applications and systems. This makes XML storage and management a key component within the SOA architecture stack. Patient records, configuration files, bank transfers, RSS/Atom feed content, scientific data, web pages, workflow messages, and countless other solutions use XML to encode data. Whether data-centric, as with RSS, or document-centric, as with content management systems, XML is clearly the de facto standard for semi-structured data encoding. XML is ubiquitous and is a core component within the data-centric technology stack and will continue to be for many years to come.
The variety of applications using XML is staggering in its diversity of data management requirements. At one end of the spectrum an XML messaging product needs low latency and high through put with minimal query processing overhead. Web service end points are often dealing with XML in the form of SOAP messages or structured data posted to a REST service. At the same time you might be building a searchable archive of the terabytes of drug trials data as part of your drug discovery infrastructure, data you plan to mine over and over using complex queries.
Information is only as useful as it is accessible, reliable, and manageable. Storing XML content as files on simple file-systems limits its value. Oracle Berkeley DB is designed to be flexible enough to support complex XML data management scenarios. It is a combination of the highly performant, concurrent and reliable Berkeley DB storage engine coupled with the XML parsing and XQuery processing features found in the XQilla library. Connecting those two layers is a statistical, cost-based query optimizer, which examines each XQuery against the available indexes and identifies the fastest available query plan. Berkeley DB stores XML content in a highly optimized format designed for fast queries and other operations.
Latest XQuery and XPath standards
Cost-based query optimizer
Store XML as whole documents
Store XML as nodes
External functions in multiple-languages
Easily represent XML as JSON
Uniqueness, Path, Node and Key indexes for equality, presence, or substring matches
Use re-compiled queries containing variable bindings