Berkely DB的几个基础概念
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