`

db Oracle Berkeley DB

阅读更多

http://bike.baidu.com/view/1281930.html?fromTaglist

产品用前分析

http://www.oracle.com/lang/cn/database/berkeley-db/index.html

为什么选择Oracle Berkeley DB?

Oracle Berkeley DB是一系列开源的嵌入式数据库,使开发人员能够将一个快速、可伸缩、具有工业级别的可靠性和可用性的事务处理数据库引擎结合进他们的应用程序中。选用Oracle Berkeley DB可获得:

  • 极高的性能 ——消除了SQL和进程间通信的开销
  • 零管理 ——完全嵌入到应用程序中,并且对最终用户是不可见的
  • 低总体拥有成本 ——嵌入式能够降低实施成本、许可费和硬件成本以及持续的管理成本
  • 高度的灵活性和控制能力 ——开发人员可以对Berkeley DB的多个方面进行配置,对其进行优化,以用于特定的应用程序

在嵌入式数据库方面处于领先地位

产品许可协议

http://www.oracle.com/technology/software/products/berkeley-db/htdocs/oslicense.html

 · Berkeley DB 产品系列
 · Berkeley DB 许可信息
 · Berkeley DB 开发源代码许可
 · Berkeley DB Java 版开放源代码许可
 ·

Berkeley DB XML 开放源代码许可

产品下载

http://www.oracle.com/technology/global/cn/software/products/berkeley-db/index.html

Oracle Berkeley DB 下载
最新生产版

Berkeley DB 4.7.25                                 早期版本
  需要日志文件格式升级。更改日志 — 补丁 (4 )
  下载
  下载 Berkeley DB 4.7.25.zip ,采用 AES 加密 (16M)
  下载 Berkeley DB 4.7.25.msi Windows 安装程序 ,采用 AES 加密 (18M)
  下载 Berkeley DB 4.7.25NC.tar.gz ,无加密 (13M)
  下载 Berkeley DB 4.7.25.NC.zip ,无加密 (16M)

Berkeley DB Java 版 3.3.82           早期版本
  更改日志版本说明
  下载
  下载 Berkeley DB Java 版 3.3.82.zip (13M)

Berkeley DB XML 2.4.16 早期版本
  更改日志 — 补丁 (1 )
  下载
  下载 Berkeley DB XML 2.4.16.zip (48M)
  下载 Berkeley DB XML 2.4.16.msi Windows 安装程序 (26M)

Berkeley DB

   Berkeley DB (DB) 是 一个高性能的,嵌入数据库编程库,和C语言,C++,Java,Perl,Python,PHP,Tcl以及其他很多语言都有绑定。Berkeley DB可以保存任意类型的键/值对,而且可以为一个键保存多个数据。Berkeley DB可以支持数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统包括大多数Unix类操作系统和Windows操作系统以及 实时操作系统。
  2.0版本或以上的Berkeley DB由Sleepycat Software公司开发,并使用基于自由软件许可协议/私有许可协议的双重授权方式提供[1],附有源代码。开发者如果想把Berkeley DB嵌入在私有软件内需要得到Sleepycat公司的许可,若将软件同样遵循GPL发布,则不需许可即可使用。而2.0版本以下的则使用BSD授权,可 自由作商业用途。
  Berkeley DB最初开发的目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的 ndbm,GNU项目的gdbm),Berkeley DB的第一个发行版在1991年出现,当时还包含了B+树数据访问算法。在1992年,BSD UNIX第4.4发行版中包含了Berkeley DB1.85版。基本上认为这是Berkeley DB的第一个正式版。在1996年中期,Sleepycat软件公司成立,提供对Berkeley DB的商业支持。在这以后,Berkeley DB得到了广泛的应用,成为一款独树一帜的嵌入式数据库系统。2006年Sleepycat公司被Oracle 公司收购,Berkeley DB成为Oracle数据库家族的一员,Sleepycat原有开发者继续在Oracle开发Berkeley DB,Oracle继续原来的授权方式并且加大了对Berkeley DB的开发力度,继续提升了Berkeley DB在软件行业的声誉。Berkeley DB的当前最新发行版本是4.7.25。
  值得注意的是DB是嵌入式数据库系统,而不是常见的关系/对象型数据库,对SQL语言不支持,也不提供数据库常见的高级功能,如存储过程,触发器等。
  Berkeley DB的体系结构
  Berkeley DB以拥有比Microsoft SQL Server和Oracle等数据库系统而言更简单的体系结构而著称。例如,它不支持网络访问—程序通过进程内的API访问数据库。 他不支持SQL或者其他的数据库查询语言,不支持表结构和数据列。 访问数据库的程序自主决定数据如何储存在记录里,Berkeley DB不对记录里的数据进行任何包装,每个记录有且只有两部分:键、值,所以在Berkeley DB的背景下通常用key/data pair指代一个记录。记录和它的键都可以达到4G字节的长度。
  尽管架构很简单,Berkeley DB却支持很多高级的数据库特性,比如ACID 数据库事务处理,细粒度锁,XA接口,热备份以及同步复制。
  Berkeley DB包含有与某些经典Unix数据库编程库兼容的接口,包括:dbm,ndbm和hsearch。
  Berkeley DB的核心数据结构
  数据库环境句柄DB_ENV: 每个DB_ENV相当于一个数据库,它包含了数据库全局信息,比如缓冲区大小、以及对事务、日志、锁等子系统的全局配置信息。
  数据库句柄结构DB: 每个DB相当于关系数据库的一个表,其中存储了很多 key/data pair。DB句柄代表了一个包含了若干描述数据库表属性的参数,如数据库访问方法类型、逻辑页面大小、数据库名称等;同时,DB结构中包含了大量的数据 库处理函数指针,大多数形式为 (*dosomething)(DB *, arg1, arg2, …)。其中最重要的有open,close,put,get等函数。
  数据库记录结构DBT :DB中的记录由关键字和数据构成,关键字和数据都用结构DBT表示。实际上完全可以把关键字看成特殊的数据。结构中最重要的两个字段是 void * data和u_int32_t size,分别对应数据本身和数据的长度。
  数据库游标结构DBC:游标(cursor)是数据库应用中常见概念,其本质上就是一个关于特定记录的遍历器。注意到DB支持多重记录(duplicate records),即多条记录有相同关键字,在对多重记录的处理中,使用游标是最容易的方式。
  数据库环境句柄结构DB_ENV:环境在DB中属于高级特性,本质上看,环境是多个数据库的包装器。当一个或多个数据库在环境中打开后,环境可以为这些数据库提供多种子系统服务,例如多线/进程处理支持、事务处理支持、高性能支持、日志恢复支持等。
  DB中核心数据结构在使用前都要初始化,随后可以调用结构中的函数(指针)完成各种操作,最后必须关闭数据结构。从设计思想的层面上看,这种设计方法是利用面向过程语言实现面对对象编程的一个典范。
  Berkeley DB数据访问算法
  在数据库领域中,数据访问算法对应了数据在硬盘上的存储格式和操作方法。在编写应用程序时,选 择合适的算法可能会在运算速度上提高1个甚至多个数量级。大多数数据库都选用B+树算法,DB也不例外,同时还支持HASH算法、Recno算法和 Queue算法。接下来,我们将讨论这些算法的特点以及如何根据需要存储数据的特点进行选择。
  B+树算法
  B+树是一个平衡树,关键字有序存储,并且其结构能随数据的插入和删除进行动态调整。为了代码的简单,DB没有实现对关键字的前缀码压缩。B+树支持对数据查询、插入、删除的常数级速度。关键字可以为任意的数据结构.
  HASH算法
  DB中实际使用的是扩展线性HASH算法(extended linear hashing),可以根据HASH表的增长进行适当的调整。关键字可以为任意的数据结构。
  要求每一个记录都有一个逻辑纪录号,逻辑纪录号由算法本身生成。实际上,这和关系型数据库中逻 辑主键通常定义为int AUTO型是同一个概念。Recho建立在B+树算法之上,提供了一个存储有序数据的接口。记录的长度可以为定长或不定长。 和Recno方式接近, 只不过记录的长度为定长。数据以定长记录方式存储在队列中,插入操作把记录插入到队列的尾部,相比之下插入速度是最快的。
  对算法的选择首先要看关键字的类型,如果为复杂类型,则只能选择B+树或HASH算法,如果关 键字为逻辑记录号,则应该选择Recno或Queue算法。当工作集关键字有序时,B+树算法比较合适;如果工作集比较大且基本上关键字为随机分布时,选 择HASH算法。Queue算法只能存储定长的记录,在高的并发处理情况下,Queue算法效率较高;如果是其它情况,则选择Recno算法,Recno 算法把数据存储为平面文件格式。
  Berkeley DB的资源链接:
  官方主页:http://www.oracle.com/database/berkeley-db/db/index.html
  产品下载:http://www.oracle.com/technology/software/products/berkeley-db/index.html
  官方开发者文档中心:http://www.oracle.com/technology/documentation/berkeley-db/db/index.html
  产品技术信息: http://www.oracle.com/technology/products/berkeley-db/pdf/berkeley-db-family-datasheet.pdf
  http://www.oracle.com/database/docs/berkeley-db-datasheet.pdf
  http://www.oracle.com/database/docs/Berkeley-DB-v-Relational.pdf
  官方主页上有很多有趣的成功案例的白皮书和技术文档,值得大家学习

http://www.oracle.com/lang/cn/database/berkeley-db/index.html

oracle联系号码

http://www.oracle.com/global/cn/corporate/contact_en.html

 

 

http://www.berkeleydb.net/

http://www.oracle.com/database/berkeley-db/index.html

 

Berkeley DB 中国讨论区入口


Berkeley DB 在线手册
Berkeley DB JE 在线手册
Berkeley DB XML 在线手册

Berkeley DB 4.5.20 在线手册
Berkeley DB JE 3.2.21 在线手册
Berkeley DB XML 2.3.10 在线手册

Berkeley DB Download


社区公告栏
业界新闻与评论

Berkeley DB English Board
Berkeley DB Reference Guide 中文翻译计划
Berkeley DB新手区
Berkeley DB高级区
Berkeley DB和嵌入式操作系统

 

 

http://www.ibm.com/developerworks/cn/linux/l-embdb/index.html

 

 

http://topoint.com.cn/html/article/2008/07/212999.html

 

 

 

  http://www.oracle.com/database/berkeley-db/

  相关链接

  信息资源:
  Oracle Berkeley DB:
  http://www.oracle.com/database/berkeley-db/index.html
  面向SQL开发人员的Oracle Berkeley DB向导
  http://tinyurl.com/2cy4xb

  网络讲座
  探寻Berkeley DB 系列产品线 – 架构:
  http://tinyurl.com/6eblgo

  播客:
  Oracle Berkeley DB秘史 – 作者:Margo Seltzer
  http://feeds.feedburner.com/~r/OTN_TechCasts/~3/149348739/5813671.mp3

  甲骨文杂志文章:
  嵌入式的Java Persistence:
  http://www.oracle.com/technology/oramag/oracle/07-mar/o27berkeleydb.html
  嵌入开源
  http://www.oracle.com/technology/oramag/oracle/07-jan/o17opensource.html

  客户成功案例
  亚马逊网站利用高性能缓存提供优异的客户体验
  http://tinyurl.com/3shc7p
  Google利用高可用性数据库提高客户服务水平:
  http://tinyurl.com/6es246
  ip.access 嵌入新一代内置移动访问解决方案以提高服务质量,降低成本:
  http://tinyurl.com/46grx7

  论坛:
  Berkeley DB:  http://forums.oracle.com/forums/forum.jspa forumID=271
  Berkeley DB 高可用性: http://forums.oracle.com/forums/forum.jspa forumID=272
  Berkeley DB XML:  http://forums.oracle.com/forums/forum.jspa forumID=274
  Berkeley DB Java 版: http://forums.oracle.com/forums/forum.jspa forumID=273

 

http://www.maycode.com/index.php/hotspot/27-clanguage/1003-memcache.html

DBM是文件型数据库,文件中包含一系列由key-value对组成的记录,key和value都是变长的,二进制的数据以及字符串都可以作为key或value。这些记录以hash表或者B+树的方式组织,并没有table活数据类型的概念。

如果以hash方式存储数据,那么key是唯一的,你可以通过接口保存key-value对,或者根据key删除或者获取key对应的value,同时可以遍历所有的key-value,但是没有排序功能。这些方法与其他的同类DBM(NDBM,GDBM)都是相同的。

如果以B+树的方式保存数据,那么key是可以重复的,同样支持保存,获取,删除功能。另外在这种方式下,记录可以根据一定的排序规则排序,并且可以以升序或者降序的方式访问数据。B+熟方式支持事物。

QDBM是C的产品,目前有C, C++, Java, Perl, and Ruby的API接口。

目前同类的产品包括:

NDBM : New DBM written by BSD
SDBM : Substitute DBM written by Ozan S. Yigit
GDBM : GNU Database Manager written by Philip A. Nelson et al
TDB : Trivial Database written by Andrew Tridgell et al
TinyCDB : Constant Database written by Michael Tokarev
Berkeley DB : Berkeley DB written by Sleepycat Software

目前QDBM是相对速度快的。

 

end

分享到:
评论

相关推荐

    SQL 开发人员 Oracle Berkeley DB 指南

    《SQL开发人员Oracle Berkeley DB指南》 Oracle Berkeley DB是一个开源的嵌入式数据库引擎,它提供了高效、可靠的本地持久性存储,无需独立的数据库管理系统。这个数据库引擎特别适合那些需要固定查询模式并且对...

    Berkeley DB Java 版 4.0.92

    Oracle Berkeley DB Java 版是一个开源的、可嵌入的事务存储引擎,是完全用 Java 编写的。与 Oracle Berkeley DB 类似,Oracle Berkeley DB Java 版在应用程序的地址空间中执行,没有客户端/服务器通信的开销,从而...

    BerkerleyDb-18.1.40.tar.gz

    BerkeleyDB(简称BDB)是由Oracle公司开发的一款开源、轻量级、嵌入式数据库系统。它以其高效、灵活和可靠的特点,广泛应用于各种软件项目,特别是在分布式系统、网络服务以及需要快速数据存储的应用中。在本文中,...

    Berkeley DB4.8以上各版本

    Berkeley DB是一款由Oracle公司开发的嵌入式数据库系统,被广泛应用于许多软件项目中,尤其是在需要快速、轻量级数据存储解决方案的场景下。它提供了键值对存储模式,适用于构建高性能的数据缓存和数据库应用程序。...

    Berkeley DB数据库最新版

    Berkeley DB(简称BDB)是一种高性能、轻量级的嵌入式数据库系统,由Oracle公司开发并维护。它最初在伯克利大学诞生,因此得名“Berkeley DB”。这款数据库系统广泛应用于需要快速、可靠数据存储的应用中,尤其在...

    libdb5:根据Berkeley数据库许可获得许可的Oracle Berkeley DB的最新版本

    该存储库基于Oracle Berkeley DB 11g第2版,库版本11.2。(5.3.28)-开源版本Berkeley DB的最新版本,该版本已获得Berkeley数据库许可(也称为Sleepycat软件产品许可)的许可。 从下一个版本12.1。(6.0.20)开始,...

    Berkeley DB Java Edition 5.0.73

    Berkeley DB Java Edition(简称BDB JE)是一款由Oracle公司开发的高性能、轻量级的NoSQL数据库系统。它以其高效能、可扩展性和可靠性在处理大规模数据存储时受到广泛欢迎,尤其是在Google这样的大型互联网公司中,...

    Berkeley DB 资料

    Berkeley DB 批量插入更新与删除用法示例 Berkeley 函数接口 Berkeley DB 由浅入深 SQL 开发人员 Oracle Berkeley DB 指南 Berkeley DB参考手册

    BerkeleyDB测试程序

    BerkeleyDB是一款轻量级、高性能、嵌入式的数据库系统,由Oracle公司开发。它提供了一种键值对存储模型,适用于需要快速存取大量数据的应用场景,尤其在分布式系统、嵌入式系统以及对性能有高要求的应用中表现优秀。...

    Berkeley DB Java Edition

    **Berkeley DB Java Edition**,简称BDBJE,是由Oracle公司开发的一款高度可移植的、基于文件系统的数据存储解决方案,特别适用于需要高效、可靠且无服务器的数据管理的应用场景。这款数据库系统采用B+树作为其核心...

    BerkeleyDB-Core-Cxx-GSG.rar_Berkeley DB_berkeley Db cxx

    对于初次接触Berkeley DB的开发者,"BerkeleyDB-Core-Cxx-GSG.pdf"这份文档是一个很好的起点。它详尽地介绍了如何在C++环境中配置、初始化Berkeley DB环境,以及如何使用C++接口进行数据操作。同时,它也涵盖了错误...

    BerkeleyDB-JE je-6.0.11

    Oracle BerkeleyDB-JE je-6.0.11

    Berkeley DB C++编程入门教

    在“BerkeleyDB概念”部分,文档会介绍Berkeley DB的基本概念,如BTree和Hash数据库的访问方式选择,以及Queue和Recno之间的选择。 接下来,教程会讨论数据库的限制与可移植性、环境设置、异常处理和错误返回。然后...

    Berkeley DB

    **Berkeley DB** 是一个强大的、轻量级的嵌入式数据库系统,由Oracle公司开发。这个数据库系统设计用于在本地应用程序中存储和检索大量数据,尤其适合那些对性能、可扩展性和可靠性有高要求的应用。它不依赖于外部...

    Berkeley DB 4.8.30

    3. **编译**:进入解压后的目录,执行`./configure --prefix=/usr/local/BerkeleyDB.4.8`进行配置,指定安装路径,然后使用`make`进行编译,最后用`sudo make install`安装。 4. **配置Open LDAP**:在Open LDAP的...

    Berkeley DB 5.3.21.tar

    Berkeley DB 5.3.21.tar,你也可以去http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html下载最新版

    java berkeley-db demo

    Berkeley DB Berkeley DB(BDB)是一个高效的嵌入式数据库编程库,C语言、C++、Java、Perl、Python、...#oracle 介绍关于berkeleydb http://www.oracle.com/technetwork/cn/database/berkeleydb/index-085507-zhs.html

    BerkeleyDB-0.26

    **BerkeleyDB** 是一款由 Oracle 公司开发的开源、高性能、无模式的键值对存储数据库系统。它在嵌入式环境和轻量级应用程序中被广泛使用,尤其适用于那些需要快速数据访问和简单数据管理的应用。BerkeleyDB 的设计...

    berkeley db installation

    在IT领域,Berkeley DB(BDB)是一款由Oracle公司维护的高性能嵌入式数据库系统,它以其高效、可靠和灵活的特点在众多应用程序中得到了广泛的应用。Berkeley DB支持多种数据模型,包括键值对存储、关系型数据库以及B...

Global site tag (gtag.js) - Google Analytics