【ACCESS精品源码栏目提醒】:网学会员在ACCESS精品源码频道为大家收集整理了“嵌入式数据库Berkeley DB的原理与应用 - 其它资料“提供大家参考,希望对大家有所帮助!
第5卷第2期2005年1月 科学技术与工程 V01.5 No.2 January 2005 1671—1815(2005)02—0086 05 Science Technology and Engineering ⑥ 2005 Sci.Tech.Engng. 嵌人式数据库Berkeley DB的原理与应用 刘巍巍1’2 徐成2 李仁发2 (湖南大学软件学院1,湖南省嵌入式计算及系统重点实验室2,长沙410082)摘要 随着嵌入式技术的发展,在嵌入式系统中越来越多地用到了数据库。
首先介绍了嵌入式数据库的基本特点,进而详细介绍了一个简洁实用的嵌入式数据库——Berkeley DB,包括Berkeley DB的基本概念、技术特点、系统结构以及基本的函数调用。
关键词 嵌入式数据库 Berkeley DB 嵌入系统 中图法分类号TP392; 文献标识码A 嵌入式技术正在提供人们越来越多有趣而新颖 1.2可管理性,健壮性和安全性的服务,在许多的嵌入式系统开发中都要用到数据 在嵌入式设备中,数据库的管理对用户来说是库,比如电信交换机、消费类电子、办公自动化设备 透明的,这就要求嵌入式数据库能够自动完成启动等高科技产品。
Berkeley DB是由sleepycat so{t— 初始化、日志管理、数据压缩、备份、数据恢复等功ware开发的轻量级嵌入式数据库,它是世界上应用 能;而且嵌入式设备经常有不可预料的硬复位,这就最广泛的嵌入式数据库之一,有超过两百万台设备 需要数据库有高度的健壮性。
采用了这个数据库。
它在国内的应用也越来越多, 1.3移植性但目前国内介绍Berkley DB的文章很少,本文较详 嵌入式系统的平台种类繁多,因此嵌入式数据细地介绍了Berkeley DB的特点,基本原理和应用 库应有一定的可移植性,以适用于不同的软硬件平方法。
Berkeley DB以源代码的形式发放,可以免 台。
费下载并可自由应用于其它开放源代码的项目。
下 2 Berkeley DB的技术特性载地址为www.sleepyeat.eom,当前最新版本是4.2.52。
Berkeley DB是一个非常适用于嵌入式应用领 域的数据库,能运行在大部分的Unix&Linux系1嵌入式数据库的特点 统,win32系统以及多种嵌入式操作系统上,在32 嵌入式系统在时间和空间上的资源非常紧凑, 位机和64位机上均能运行,它主要有以下特性。
而大量数据的管理需要消耗系统大量的时间或空间 (1)Berkeley DB是一个轻量级嵌入式数据库,资源。
因此嵌入式数据库和传统数据库相比较,有 这里的“嵌入式”不仅是指它适用于在嵌入式系统中相同的地方,更有其自身的特点,主要表现在以下几 应用,而且是指Berkeley DB直接连接到应用程序方面。
内部,和应用程序运行在同一地址空间。
传统数据1.1占用系统资源少 库一般作为独立服务器工作,而Berkeley DB是软 具体来说就是占用尽量少的ROM、RAM空间 件开发库,开发者将它嵌入到自己的应用程序中,应和cpu资源,可以说这是嵌入式数据库最突出的一 用程序本身就是一个服务器,而只是利用嵌入式数个特点,这也是由嵌入式系统资源受限制所决定的。
据库开发来实现定制的数据库逻辑,避免了与应用 服务器之间的进程问通信(IPC)开销,因此Berke— ley DB具有较高的运行效率,适用于资源受限的嵌 2004年8月24日收到 入式系统。
第一作者简介:刘巍巍:(1978一),男,硕士,主要研究方向:嵌入 (2)Berkeley DB不提供SQL查询层,而是使用 式系统、嵌入式数据库。
API来操作,避免了对SQL语句的分析和优化所带 万 方数据 2期 刘巍巍,等:嵌入式数据库Berkeley DB的原理与应用来的系统资源消耗。
某些传统数据库也提供API, 数嵌入式设备的要求。
但这种API是在比较占用资源的SQL接口层之上 3 Berkeley DB的系统结构实现的,而Berkeley DB提供的C语言API是真正的本地函数接口,直接对数据库进行操作,简洁高 整个Berkeley DB系统分为以下五个子系统。
效。
3.1存取管理子系统(Access Methods) (3)Berkely DB不是关系型数据库,它甚至没 该子系统为创建和访问数据库文件提供基本的有特定的数据组织模型,并不“认识”存储在其中的 支持。
Berkeley DB提供了以下四种存储/访问方数据,应用程序无需把自己的数据类型转换成数据 式:动态哈希表、B树、定长记录(队列)和基于记录库所支持的类型。
Berkeley DB所管理数据的逻辑 号的存储方式,应用程序可以从中选择最适合自己组织单位是若干个独立的或有一定关系的数据库 的存储组织结构,并且可以在同一个应用程序中对(database),每个数据库由若干记录组成,这些记录 不同存储类型的文件进行混合操作。
全都被表示成(key,data)对的形式,以可变长的字 动态哈希表适合于关键词完全确定,且数据量节串来存储。
记录也可存储图像、音频等大文件,这 比较大的应用场合,这种方式不支持用近似的关键些大文件被数据库按页面大小分成许多块存储,当 词来操作数据库;B树适用于有规则的查询,比如给需要的时候数据库将它们重新组装。
出关键词的起止范围,查询这个范围内的关键词对 (4)嵌入式开发平台的存储机制多种多样,没有 应的记录,采用该存储方式时关键词在磁盘上是连统一标准。
Berkeley DB很好地解决了这个问题, 续存放的,以减少磁盘访问操作;当无法为需要存储它不直接管理物理存储设备,无需为日志和数据库 的数据归纳出对应的关键词时,可采用基于记录号文件预先分配磁盘空间,而是通过文件系统来访问 的存储方式,数据库将每条记录所对应的记录号做存储器,所有的日志和数据库文件都是本地文件,如 为该记录的关键词,记录号是自动生成的;当需要按有需要,本机上的任何其他应用程序都可以直接访 创建记录的次序来处理记录时,则可采用定长记录问这些文件,为开发者提供方便。
(队列)的存储方式,先创建的记录先处理。
(5)Berkeley DB虽然是轻量级的嵌入式数据 在没有事务管理的情况下,该子系统中的模块库,同样提供了可靠的数据保护和恢复功能,它采用 可单独使用,为应用程序提供快速高效的数据存取两段锁技术和先写日志策略来保证数据的一致性和 服务。
可靠性,结合数据库日志文件能够从灾难性的错误 3.2内存池管理子系统(Memory P001)中恢复数据。
通过配置可以让Berkeley DB在初始 该子系统实际上就是Berkeley DB所使用的通化时自动恢复数据,这点对于经常意外重启动的嵌 用共享内存缓冲区,这块共享缓冲区允许不同的进入式设备很有用,能够无需用户的干预而自动保证 程以及进程内的不同线程共享数据库的访问入口,数据库系统长期稳定地运行。
负责将修改后的页写回文件和为新调人的页分配内 (6)传统的大型数据库强调的是数据的吞吐量, 存空间。
内存池管理子系统适用于灵活的、基于页
上一篇:
数据库安装部署规范
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a