Berkeley DB

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嵌入式數據庫

參考資料

外部連結 
  Berkeley DB官方網頁 

開源資料庫管理系統
跨平台軟體