Berkeley DB

时间:2023-10-14 12:18  

Berkeley DB(BDB)是一个高效的嵌入式数据库和键-值数据库编程库,C语言、C++、Java、Perl、Python、Tcl以及其他很多语言都有其对应的API。Berkeley DB可以保存任意类型的键/值对(Key/Value Pair),而且可以为一个键保存多个数据。Berkeley DB支持让数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统,其中包括大多数类Unix操作系统、Windows操作系统以及实时操作系统。

源起

Berkeley DB的前身是伯克利加州大学为了移除受AT&T限制的代码,从BSD 4.3到4.4时所改写的软件。1996年,网景公司请求Berkeley DB的作者群改善函式库,以便在网景公司的LDAP服务器和网景浏览器中使用,Sleepycat Software公司便应运而生(2006年2月,甲骨文公司收购了Sleepycat Software)。

Berkeley DB以Sleepycat Public License发行(该许可协议为OSI及FSF所认可的条款),发行时包括了完整的代码、编译工具、测试包,并附带了帮助文档。由于代码以及工具程序质量良好,Berkeley DB常被其他开放源代码软件所使用。对于不想使用Sleepycat Public License的开发团体,甲骨文公司也提供了其他付费的许可方式。

Berkeley DB包含有与某些经典Unix数据库编程库兼容的接口,包括dbm、ndbm和hsearch。

主要版本

  • Berkeley DB:支持常见的操作系统,如大多数的类UNIX操作系统、Windows系统以及实时操作系统。对于一些对一些老的UNIX数据库(例如dbm与ndbm und hsearch),Berkeley DB还有对应的兼容接口。
  • Berkeley DB XML:是一个接口,通过它可以实现对XML数据存贮的支持。访问XML数据时,会使用相应的查询语句,如Xquery与Xpath。
  • Berkeley DB Java Edition:在Java平台上,Oracle提供一个纯Java程序编写的Berkeley DB,只需要操作系统支持Java虚拟机便可执行。

体系结构

Berkeley DB以拥有比Microsoft SQL Server和Oracle数据库等更简单的体系结构而著称。例如,它不支持网络访问—程序通过进程内的API访问数据库。

Berkeley DB不支持SQL或者其他的数据库查询语言,不支持表结构和数据列。

访问数据库的程序自主决定数据如何储存在记录里,Berkeley DB不对记录里的数据进行任何包装。记录和它的键都可以达到4G字节的长度。

尽管架构很简单,Berkeley DB却支持很多高级的数据库特性,比如ACID 数据库事务处理,细粒度锁,XA接口,热备份以及同步复制。

Berkeley DB与SQLite的集成

Berkeley DB 11g R2加入SQLite程序组件并开始支持SQL语言。

授权方式

2.0或以上版本的Berkeley DB使用双重授权;而2.0版本以下的则使用BSD许可协议,可自由作商业用途。

使用Berkeley DB的程序

Berkeley DB是一些轻量级目录访问协议服务器、数据库系统以及其他很多商业和开源应用的底层存储系统。下面是使用了Berkeley DB的知名软件的名单。

  • Subversion - 一种设计用来代替CVS的版本控制系统。
  • KDevelop - 一个自由软件,Linux和其他Unix类操作系统下的C/C++集成开发环境。
  • Sun Grid Engine - 一个开源cluster软件。
  • Movable Type - California编写的一个基于Six Apart的Blog系统。
  • Caravel CMS - 一个开源的内容管理系统,原为超过2000家的Mennonite Church组织设计。
  • OpenLDAP - 一个自由开源的轻量级目录访问协议的实现。
  • KLibido - 一个自由开源的新闻组阅读器,为二进制格式下载优化。
  • Citadel - 一个开源的群件平台,全部数据存储,包括信息库,都保存在Berkeley DB内。
  • Bogofilter - 一个开源spam过滤器,其单词表使用Berkeley DB保存。

参见

  • LevelDB - 由Google所研发的键/值对数据库编程库
  • Apache Derby - 由Apache软件基金会所研发的纯Java嵌入式数据库

 

本文版权遵从外房网免责声明,更多问题请发送邮件至:
sam@glofang.com

为您推荐:

12小时在线QQ客服
周一至周日 9:00-21:00

广告联系

邮箱:glofang@glofang.com