Oracle Berkeley DB XML
Oracle Berkeley DB XML 是一个可嵌入的开源 XML 数据库,可基于 XQuery 访问存储在容器中的文档,并对其内容进行索引。Oracle Berkeley DB XML 构建于 Oracle Berkeley DB 之上,并继承了其丰富的特性和属性。与 Oracle Berkeley DB 一样,它通过应用程序运行,无需人为管理。Oracle Berkeley DB XML 在 Oracle Berkeley DB 之上新增了文档分析器、XML 索引器以及 XQuery 引擎,实现了最快速、最高效的数据检索。

由于以 Berkeley DB 作为底层存储引擎,因此 Berkeley DB XML 继承了完整的 ACID 事务处理、自动恢复、热备份、用于分布式事务的 XA、通过 AES 进行磁盘数据加密以及针对高可用性的复制。此外,Berkeley DB XML 中还可存储 XML 和非 XML 数据,这将有利于某些应用程序的运行。目前,除了该数据库外,市场上还没有任何一款 XML 数据库是基于此种成熟、经过实测的技术。
Berkeley DB XML 在 Berkeley DB 之上新增了文档分析器、XML 索引器以及 XQuery 引擎。XQuery 正快速成为访问 XML 数据的首选查询语言。Berkeley DB XML 支持 XQuery 1.0 和 XPath 2.0、XML 命名空间、模式验证、命名和跨容器操作以及文档流。XQuery 引擎使用完善的、基于成本的查询优化器,并支持带有嵌入式变量的预编译查询执行。在存储大型文档时,可将其保持原样,或分解为节点,从而实现更为高效的检索和部分文档更新。Berkeley DB XML 支持对 XML 节点、元素、属性以及元数据进行灵活索引,以实现最快速、高效的数据检索。
Berkeley DB XML 为需要存储和检索 XML 和非 XML 数据的应用程序提供快速、可靠以及可伸缩的持久性。
主要特性
XML 文档存储
Berkeley DB XML 构建在强健的 Berkeley DB 存储引擎之上,是一个快速、灵活的完全嵌入式 XML 数据库。Berkeley DB XML 实现了高效的 XML 文档存储、灵活的数据索引以及快速的 XQuery 或 XPath 访问。
- 构建在成熟的 Berkeley DB 引擎之上 — 继承了所有 Berkeley DB 特性,包括 ACID 事务处理/恢复和针对高可用性的复制
- 在同一事务中进行 XML 和非 XML 数据的本地存储和检索 — 无需映射或事务处理
- 灵活的存储控制 — 节点或整个文档
- 逻辑文档分组为容器
- 容器内的 XML 验证
- 按文档执行模式和方法验证
- 文档元数据支持
- XML 命名空间支持
- 通过将整个文档存储为物理单元来保留空白
XML 文档索引
随着 XML 数据量的增长,高效访问日渐重要。Berkeley DB XML 独特的动态索引系统优化了 XML 内容的检索。目标索引和静态的、基于成本的查询计划引擎共同为复杂的 XQuery 语句快速提供结果。
- 灵活的 XML 节点、元素、属性以及元数据索引
- 节点级索引改善了查询性能,对大型 XML 文档来说尤为如此
- 在运行时创建和删除复杂索引
- 针对特定热点的索引
- 特定于类型和存在的索引
- 交互式查询计划和索引优化
- 部分文档索引重建
XML 文档查询访问
XQuery 语言之于 XML 数据库正如 SQL 之于关系数据库。通过 XQuery,可以轻松地在语句中表达出复杂的关系、联接、条件和结果集,以在庞大的数据集上快速进行优化和执行。Berkeley DB XML 严格遵循 XQuery 标准,并提供了一种最为完整的实现。
- XQuery 1.0 和 XPath 2.0
- 在单个容器中或跨多个容器进行查询
- 跨容器和 XML 数据网络源进行查询
- 用于直接访问的永久文档标识符
- 通过基于成本的查询引擎优化查询
- 简化的路径表达式运算和谓词运算
- 包含变量的预编译查询,可实现更高效的重复执行
- 来自 URI、内存或文件的文档流
- XML 结果集中类似 DOM 的导航
XML 文档修改
Berkeley DB XML 提供了一个完全修改 API,可实现非常高效的更新。XML 文档修改还不是 XQuery 标准的一部分,但这些标准一旦通过批准,Berkeley DB XML 就会对其给予支持。
- XQuery Update 1.0
- 部分文档更新
- 事务内的原地文档修改
- 内容不同部分的并发修改
部署
Berkeley DB XML 非常灵活,易于部署并且易于集成。作为一组 C 和 C++ 库,它可与您的应用程序一同安装和配置。它与 Apache 相集成,可直接使用 C++ 和 Java 进行访问,或使用 PHP 从 web 页面进行访问,这使得其成为动态 web 系统(如流行的 LAMP 体系结构)的理想之选。Berkeley DB XML 的运行完全无需人为管理,因此所有的管理功能都是通过编程方式控制。它支持的编程语言和操作系统平台范围广泛。
- 编程管理 — 无需人为管理
- 命令行工具,用于加载、备份、转储以及与 XML 数据库交互
- 语言支持(C++、Java、Perl、Python、PHP、Tcl、Ruby 等等)
- 操作系统支持(Windows、Linux、BSD UNIX、Mac OS/X 和任何符合 POSIX 的操作系统)
- 适用于 Microsoft Windows 的安装程序
- Apache 集成
- 文档最大可达 256TB
- 包含源代码、测试套件
|