Berkely DB的几个基础概念

12年前
Database(数据库),类似关系数据库中表,Database包含记录,每条记录包含2个数据项:key(键)和data(数据),就像一个 包含2个字段的表。Data(有时也可以是key,这依赖于访问方法)可以是任意的复合数据类型,通过复合类型,可以很容易的将2列的表转换为n列的表, 其中n-1列由复合data提供。通常,一个Database被设计用来存储一种类型的数据(就像关系数据库中的一个表被设计用来存储一种类型的数据), 因为大多数应用程序需要管理多种类型的数据,因此一个DB应用程序需要多个Database来管理多种类型的数据。

 

Environment(环境)是DB提供的一种机制能够有效的管理多个数据库。通过Environment访问Database提供了直接访问Database所不能提供的如下特性:

多个Database存储在一个物理文件中

多线程和多进程支持

事务支持

高可用(HA)支持

日志子系统

 

Access Method(访问方法)是关于记录的组织形式,一个Database需要指定一种Access Method(BTree、Hash、Queue、Recno),不像关系型数据库那样,数据的组织形式对用户不可见。访问方法只有在数据库被创建的时候 才能设置。

BTree

数据存储在有序平衡的B+树型结构中。BTree记录的Key和Data允许是任意的复合类型,包括简单类型,如integer和string或者复合类型,如structure。BTree可选择地支持Key值相同的重复记录。

Hash

数据存储在可扩展的线性hash表中。像Btree一样,记录的Key和Data支持复合类型,并可选地支持重复记录。

Queue

数据以定长记录的方式存储在队列中。每条记录使用逻辑序号作为Key。该访问方法为快速插入队尾而设计,并从对头删除或者返回记录。与其他访问方法不同的,Queue提供记录级别的锁,这对于需要并发访问队列的应用提供了性能上的改进。

Recno

数据存储为定长或者变长的记录。像Queue一样,使用逻辑记录序号作为记录的Key。

 

获取DB

http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html