Oracle Berkeley DB 11g release2-3月底发布

  Oracle Berkeley DB 11g release2即将在3月底发布,关注Oracle Berkeley DB的朋友不要错过这个最新发布的Oracle Berkeley DB 11g release2。笔者对于Oracle Berkeley DB了解并不多,是一次偶然的机会听了一场Oracle的技术研讨会,其间主要讨论的就是Oracle Berkeley DB产品。现在看起来Oracle Berkeley DB 11g release2貌似于Oracle主大产品Oracle Database发布了同步版本的产品,看来Oracle对嵌入式数据库的市场兴趣也十分浓厚啊。

  Oracle Berkeley DB日前发布通告,将于2010年3月底正式发布最新版本Oracle Berkeley DB 11g release 2。除了对原有Oracle Berkeley DB的功能进行了一定的改进和增强(比如提升了数据压缩功能、性能优化、C/C++中系统资源自动管理功能等等),本次发布的版本中最引人瞩目的变化是引入了对SQL92的支持,这一新增的接口称为Oracle Berkeley DB SQL,简称BDBSQL。这是自Berkeley DB诞生20多年来第一次支持SQL接口。这无论是对开源社区,还是对嵌入式数据库行业来说,都将是一件喜事。

Oracle Berkeley DB SQL接口简介

  从Oracle Berkeley DB (简称BDB)诞生以来,它一直扮演着一个嵌入式、提供API调用的、高性能、非关系型的数据库引擎的角色, 提供了基于键/值对(key /value pair)形式的并发和事务操作的API给C/C++/Java/C#/PHP等编程语言调用。由于BDB灵活高效的特点,它特别适合一些大数据量的、或者任务密集型的、或者硬件资源受限而性能要求高的嵌入式、跨平台等等的应用需求,并被广泛应用于存储、金 融、互联网、电子商务、汽车、消费电子、航空及国防等领域。

  但在很多场合中,用户渴望有一个即时高效、并发的,支持SQL的、本地化嵌入式数据库。如在 “edge”(如消费电子)或者一些大型的企业应用(如ERP)中。因此,Oracle Berkeley DB 从11g release 2开始,在保留原有基于key/value操作的API的同时,新增加了BDBSQL接口,实现了对SQL的支持。

  BDBSQL接口是一个1M大小的C语言类库,实现了一个高效并发的嵌入式数据库。它支持in-memory cache选项,某些场合可作为内存数据库的一个替代方案。它支持C/C++/Java/PHP等语言接口和通过JDBC/ODBC等驱动程序访问,可以运行于Unix/POSIX、Windows家族、VxWorks、QNX、Android等平台。

  和SQLite一样,BDBSQL支持SQL92标准,并完全兼容SQLite(著名的嵌入式开源关系数据库)原有的编程接口。以往运行在SQLite上的程序和应用都可以无缝的、方便的迁移到 Oracle Berkeley DB这个更加强大的引擎。并且,Oracle Berkeley DB和SQLite还将进行长期的官方层面的合作,保证了Oracle Berkeley DB的SQL接口和SQLite保持一致,免除了用户的后顾之忧。此外,Berkeley DB SQL完美支持很多第三方的SQLite工具,如JDBC,ODBC,FireFox 3及其SQLite Manager 插件等。

  Oracle Berkeley DB 11g release 2在主流平台经过了严格的、多重的测试和认证(每个平台涵盖以十万计测试案例),测试平台包括Solaris、*nix、Windows系列(XP, 7, Mobile)、Android 2.0(及以上)、VxWorks等等。此外,新版本还提供了大量工具和资料帮助用户熟悉这套最新接口,包括SQLite到Oracle Berkeley DB数据迁移指南、JDBC/ODBC使用指南、数据库使用手册及调优向导、数据管理员手册、测试集、代码示例等完 善的资料,进一步帮助用户熟悉和使用新版本。

Berkeley DB SQL和SQLite使用上的区别

  1. a) 对于用户和开发人员来说,这两个产品在使用接口上是没有区别的。它们在SQL语法、API、命令行交互、PRAGAMAs 等方面都是一致的。在性能方面,由于SQLite提供的是数据库级别的锁,而Berkeley DB SQL是页(Page)级别的锁,因此后者在绝大多数情况下能提供更高的效率 (如Insert, Update, Delete, 并发操作等)。但是,由于BDBSQL提供的细粒度锁的机制,它又会带来一些额外的开销,一些极端的测试用例下会比SQLite慢上少许(但不明显)。
  2. b) 对于已有的SQLite应用程序和工具而已,由于这两者在调用接口都是一致的,因而都可以无缝支持。
  3. c) 对于DBA人员来说,除了可以继续使用SQLite原来的管理工具,还可以使用BDB提供的 db_hotbackup、db_stat、db_archive等一系列命令行工具来备份,监控,升级等。

  最后,需要强调的是,BDBSQL是作为对BDB已有功能的一个补充而不是替代。它只是本次BDB发布产品的一个新特 性,并且将会像Hash、Queue、集群等功能一样持续下去。它的出现在一定程度上更丰富了BDB的应用场景。用户可以根据自己的需 要,选择适合的BDB接口:

  当用户需要非常高的性能,管理非关系型数据,或者以Queue、Hash等方式来组织和访问数据的时候,可以继续选择 Oracle Berkeley DB的既有key/value API。如大型企业系统中单点登录、消息队列、工作流等模块,如管理XML、声音、照片、视频等场合,如SOA中的BAM模块、业务规则引擎,如云计算或 者云存储节点上,等等。
而在用户需要一个本地持久化的支持SQL的嵌入式数据库时,BDBSQL将成为优先的选择。比如,手机的通讯录、个人web站点、桌面端 的应用(如股票软件、浏览器客户端的缓存和存储)及开发工具(如IDE)、中小企业的数据库系统、企业实时系统的一些缓存模块、小型的关系型内存数据库等 等。

  正式版本的Oracle Berkeley DB 11g release 2将于2010年3月底发布。Oracle Berkeley DB整个产品家族继续以开源形式发布,并对开源社区提供支持。
摘自:cnbeta
[ad#468-60]