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使用上的区别
- a) 对于用户和开发人员来说,这两个产品在使用接口上是没有区别的。它们在SQL语法、API、命令行交互、PRAGAMAs 等方面都是一致的。在性能方面,由于SQLite提供的是数据库级别的锁,而Berkeley DB SQL是页(Page)级别的锁,因此后者在绝大多数情况下能提供更高的效率 (如Insert, Update, Delete, 并发操作等)。但是,由于BDBSQL提供的细粒度锁的机制,它又会带来一些额外的开销,一些极端的测试用例下会比SQLite慢上少许(但不明显)。
- b) 对于已有的SQLite应用程序和工具而已,由于这两者在调用接口都是一致的,因而都可以无缝支持。
- 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]