| 工 控 机 | 现场总线 | 组态软件 | 数采监测 | 控制系统 | P  L  C | 变 频 器 | 传 感 器 | 仪器仪表
| 嵌 入 式 | 单 片 机 | 执行机构 | 电力电子 | 低压电器 | 电   源 | 驱动传动 | 接口隔离 | 数控设备
| 网络线缆 | 环保设备 | 智能建筑 | 汽车电子 | 管控一体 | 液压气动| 本质安全 | 工控模块 | 电子元件
| SCADA/RTUH  M  I  |  GPS/GIS | IC产品 | 包装设备 | GPRS/CDMA      搜索|企业登陆
首页 | 厂商 | 产品 | 快讯 | 人物视点 | 应用 | 资源库 | 展会 | 核心期刊 | 供求 | 名师英才 | 人才 | 论坛 | 人才招聘
 
  个人用户企业用户
资源是您发展的基石
◇中国航天研究机构
◇中国航天科技集团
◇中国航空研究机构
◇中国航天科工集团
◇中国船舶研究机构
更多客户信息>>>
 
一套开放源码的嵌入式数据库Berkeley DB
 时间:2007-12-4  来源:赛迪网
 页面功能 【字体: 】【评论】【查看对此文的评论

由美国Sleepycat Software公司开发的Berkeley DB是一套开放源码的嵌入式数据库。

Berkeley DB为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。它为数据的存取和管理提供了一组简洁的函数调用API接口。


它是一个经典的C-library模式的toolkit,为程序员提供广泛丰富的函数集,是为应用程序开发者提供工业级强度的数据库服务而设计的。其主要特点如下:

嵌入式(Embedded):它直接链接到应用程序中,与应用程序运行于同样的地址空间中,因此,无论是在网络上不同计算机之间还是在同一台计算机的不同进程之间,数据库操作并不要求进程间通讯。

Berkeley DB为多种编程语言提供了API接口,其中包括C、C++、Java、Perl、Tcl、Python和PHP,所有的数据库操作

都在程序库内部发生。多个进程,或者同一进程的多个线程可同时使用数据库,有如各自单独使用,底层的服务如加锁、

事务日志、共享缓冲区管理、内存管理等等都由程序库透明地执行。

轻便灵活(Portable):它可以运行于几乎所有的UNIX和Linux系统及其变种系统、Windows操作系统以及多种嵌入式实时操作系统之下。它在32位和64位系统上均可运行,已经被好多高端的因特网服务器、台式机、掌上电脑、机顶盒、网络

交换机以及其他一些应用领域所采用。一旦Berkeley DB被链接到应用程序中,终端用户一般根本感觉不到有一个数据库系统存在。

可伸缩(Scalable):这一点表现在很多方面。Database library本身是很精简的(少于300KB的文本空间),但它能够管理规模高达256TB的数据库。它支持高并发度,成千上万个用户可同时操纵同一个数据库。Berkeley DB能以足够小的空间占用量运行于有严格约束的嵌入式系统,也可以在高端服务器上耗用若干GB的内存和若干TB的磁盘空间。

Berkeley DB在嵌入式应用中比关系数据库和面向对象数据库要好,有以下两点原因:

(1)因为数据库程序库同应用程序在相同的地址空间中运行,所以数据库操作不需要进程间的通讯。在一台机器的不同进程间或在网络中不同机器间进行进程通讯所花费的开销,要远远大于函数调用的开销;

(2)因为Berkeley DB对所有操作都使用一组API接口,因此不需要对某种查询语言进行解析,也不用生成执行计划,

大大提高了运行效.

BerkeleyDB系统结构

Berkeley DB由五个主要的子系统构成.包括: 存取管理子系统、内存池管理子系统、事务子系统、锁子系统以及日志子系统。

其中存取管理子系统作为Berkeley DB数据库进程包内部核心组件,而其他子系统都存在于Berkeley DB数据库进程包的外部。

每个子系统支持不同的应用级别。

1.数据存取子系统

数据存取(Access Methods)子系统为创建和访问数据库文件提供了多种支持。Berkeley DB提供了以下四种文件存储方法:

哈希文件、B树、定长记录(队列)和变长记录(基于记录号的简单存储方式),应用程序可以从中选择最适合的文件组织结构。

程序员创建表时可以使用任意一种结构,并且可以在同一个应用程序中对不同存储类型的文件进行混合操作。

在没有事务管理的情况下,该子系统中的模块可单独使用,为应用程序提供快速高效的数据存取服务。

数据存取子系统适用于不需事务只需快速格式文件访问的应用。

2.内存池管理子系统

内存池(Memory pool)子系统对Berkeley DB所使用的共享缓冲区进行有效的管理。它允许同时访问数据库的多个进程或者

进程的多个线程共享一个高速缓存,负责将修改后的页写回文件和为新调入的页分配内存空间。

它也可以独立于Berkeley DB系统之外,单独被应用程序使用,为其自己的文件和页分配内存空间。

内存池管理子系统适用于需要灵活的、面向页的、缓冲的共享文件访问的应用。

3.事务子系统

事务(Transaction)子系统为Berkeley DB提供事务管理功能。它允许把一组对数据库的修改看作一个原子单位,

这组操作要么全做,要么全不做。在默认的情况下,系统将提供严格的ACID事务属性,但是应用程序可以选择不使用系统所作的

隔离保证。该子系统使用两段锁技术和先写日志策略来保证数据库数据的正确性和一致性。

它也可以被应用程序单独使用来对其自身的数据更新进行事务保护。事务子系统适用于需要事务保证数据的修改的应用。

4.锁子系统

锁(Locking)子系统为Berkeley DB提供锁机制,为系统提供多用户读取和单用户修改同一对象的共享控制。

数据存取子系统可利用该子系统获得对页或记录的读写权限;事务子系统利用锁机制来实现多个事务的并发控制。

该子系统也可被应用程序单独采用。锁子系统适用于一个灵活的、快速的、可设置的锁管理器。

5.日志


关于我们 | 友情链接 | 意见反馈 | 合作媒体 | 网站地图
京ICP证040996号  中国自控网 版权所有  站内内容未经中国自控网许可不得转载
电 话:010-62192616/62132436  传 真:010-62192616  地址:北京海淀区皂君庙14号鑫雅苑6号楼601室  邮编:100081
E-mail:manager@autocontrol.com.cn
广告联系 >> [ 刘先生:010-62130875 ]