嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx
- 文档编号:29322151
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:50
- 大小:24.22KB
嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx
《嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx》由会员分享,可在线阅读,更多相关《嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx(50页珍藏版)》请在冰豆网上搜索。
嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁
嵌入式数据库典型技术SQLite和BerkeleyDB的研究
首都师范大学
万玛宁关永韩相军
Wan,ManingGuan,YongHan,Xiangjun
邮局订阅号
!
82-946360元/年
技
术
创
新
上更类似关系型数据库的产品使用
!
非常方便
"
这也就
使得那些曾经有过
"#
机数据库经验的人
#
对
$%&’()
的学习变得易如反掌
"
表
*$%&’()
与
+),-).)/0+
的异同
此外
$$%&’()
也有
1"2
的概念
$
而且极其易于使
用
!
只需要三个用来执行
$%&
和获得数据的函数
%
它
还是可以扩展的
!
允许程序员自定义函数
$
然后以
34..!
543-
的形式集合进去
""
语言
1"2
是脚本接口的基础
!
如已经发布的
673.
接口
8"
开放源码团体已经扩展了众
多的客户接口
&
适配器
&
驱动等
9
这就使得其他语言对
$%&’()
的使用也成为可能
"
+),-).)/0+
不是关系型的数据库
$
不能应用标准
的
$%&
语句对数据库操作
$
对它的操作要调用专用的
1"2
实现
"
这些
1"2
提供了查询
&
插入
&
删除等功能
"
使
用
+),-).)/0+
提供的函数来进行数据库的访问和管
理并不复杂
"
在大多数场合下
$
只需按照统一的接口
标准进行调用就可以完成最基本的操作
"
:
&
存储方式及模式
$%&’()
只提供了
+(,))
存储数据的模式
"
对二进
制数据
$$%&’()
不能直接保存
’
但可以先将二进制的数
据转换成
1$;22
编码
$
然后再保存
"+4<)=>
编码机制
是最常见的把二进制数据转换成
1$;22
编码的手段
"
在
$%&’()
的
;
语言代码
)?
3@A)B3
中
$
提供了
+4<)=>
编码的功能
"
+),-).)/0+
对任何存入的数据都是按原样直接
存储到数据文件中去
$
无论其是二进制数据还是
1$;22
或
C?
’3@A)
等编码的文本
"+),-).)/0+
提供了
四种存储数据的模式
!
+(,))&D4 和 G)3? @" 在 打开数据库的时候 $ 要指定一种存储模式 " 对于以上各种存储模式的具体定义 & 优缺点 & 及 适用范围 $ 由于篇幅有限 $ 在此就不过多叙述 $ 如有需 要可参阅相关资料 " H& 数据类型 $%&’() 最大的特点在于其数据类型为无数据类型 6(/I).)< )<<8" 这意味着可以保存任何类型的数据到所 想要保存的任何表的任何列中 $ 无论这列声明的数据 类型是什么 " 虽然在生成表结构的时候 $ 要声明每个 域的数据类型 $ 但 $%&’() 并不做任何检查 " 开发人员 要靠自己的程序来控制输入与读出数据的类型 " 这里 有一个例外 $ 就是当主键为整型值时 $ 如果要插入一 个非整型值时会产生异常 " 虽然 $$%&’() 允许忽略数据类型 $ 但是 $ 仍然建议 在 ;,)4()745.) 语句中指定数据类型 $ 因为数据类型 有利于增强程序的可读性 " 另外 $ 虽然在插入或读出 数据的时候是不区分类型的 $ 但在比较的时候 $ 不同 数据类型是有区别的 " 在 +),-).)/0+ 中关键字 6-)/8 和数据 6A4(48 是用来 进行数据库管理的基础 $ 由这两者构成的 -)/JA4(4 对 $ 组成了数据库中的一个基本结构单元 " 通过使用这种 方式 $ 用 1"2 函数访问数据库时 $ 只需提供关键字就 能够访问到相应的数据 " 关键字和数据在 +),-).)/0+ 中都是用一个名为 0+7 的简单结构来表示的 $ 它的作 用主要是保存相应的内存地址及其长度 " ! 应 用 $%&’() 嵌入式数据库提供了以源码发布的方式 9 要在众多的硬件平台进行移植 9 可以根据不同平台对 源码进行交叉编译来实现 " 编译主要有以下几个步骤 K *& 到 E((IKJJLLLB 的 3O< 中下载最新的源 代码包 9 解压后将生成 目录 9 另外新建并转到一 个与 目录平行的同级目录 9 如 P4-) 目录 " Q& 用 ()3E@R"17D) 命令查看 "17D 中是否已经包 含交叉编译工具 4,PS.’? FTSN33% U& 为了在 1GVS&’? FT 下能正常运行 需要 对 (BE 作一定的修改 9 以确保 5(,))6# 树 8 有正确的变量大小 9 如 (I(,) 和 (3E4,)% 不同体系结构 的 &’? FT9 如 WX= 和 1GV9 会有些差别 % 对于 1GVS &’? FT 可以找到如下部分 K Y’Z? A)Z2[7"7G\7]"^ Y’Z$%&27^\"7G\$_‘‘> YA)Z’? )2[7"7G\7]"^’? ( Y).<) YA)Z’? )2[7"7G\7]"^.@? N.@? N Y)? A’Z 在上面的代码前加上一句 YA)Z’? )$%&27^\"7G\$_> 这样后面的 ((/I)A)Z2[7"7G\7]"^I(,a) 就是定 义的 (’? () 类型 $ 而不是 (.@? N.@? N)% >& 使用 3@? Z’NF,) 进行一些配置 % 修改 目录 下的 3@? Z’NF,)9 让 3@? Z’NF,) 不去检查交叉编译环境 % 由 于篇幅有限不再详述 % b& 修改 V4-)Z’.) 文件 % 将代码行 +;;‘4,PS.’? FTS N33SNSc: 改成 +;;‘N33SNSc: % 另外 9 一般是以静态链 接的形式将 放到 1GVS&’? FT 的硬件板上运行 的 9 所以继续修改 V4-)Z’.)9 找到标记为 6 见第 : d: 页 8 SQLiteBerkeleyDB SQL _ __ ____ ____ __ ___ _ ! "#$ %& ’()* C_ + -.ASCII/ Btree 01 2ARM/Linux3 SPARC/Solaris45 6789 : ; < => : ( C? Java_ + @A__ Btree? Hash? QueueBRecno + UNIX/POSIXsystems? Win32CDE__ WinCE? VxWorksF : GH I >J : ’ 嵌入式数据库应用 * 变频器与软启动器应用200例 +eU中文核心期刊 ! 微计算机信息 " (嵌入式与SOC)2006年第22卷第1-2期 360元/年邮局订阅号 # 82-946! ! ! 的一种强有力的嵌入式关系数据库 管理体制 $ 虽然功能较 ! "#$"%"&’! 稍显逊色 % 但它简单易学 & 速度较 快 % 同时提供了丰富的数据库接口 % 提供了对 ()*+, 的大多数支持 # 支 持多表和索引 & 事务 & 视图 & 触发和 一系列的用户接口及驱动 $ ()*-." 的体系结构大体上可以 分成八个主要的子系统 % 如图 / 所 示 $ 对数据库进行的各种操作都是 按照此顺序 % 逐一执行的 $ 顶层是标 记处理器 ’.0$"1-2"( 和分析器 ’34#5! "#($()*-." 有自己高度优化的代码 生成器 % 可以快速 & 高效地生产出代 码 $ 底部是经过优化的 ! 树 % 这样 有助于运行在可调整的页面缓冲上 时 % 对磁盘的查找降低到最小 $ 再往 下是页面高速缓存 % 它作用在 6( 的抽象层之上 % 这样的体系结构使数据库的可移植性 变为可能 $ 该体系结构的核心是虚拟数据库引擎 ’7’89($ 7: 89 完成与数据操作相关的全部任务 % 并且是客户 和存储之间信息交换的中间单元 $ 从各个角度分析 % 它都是 ()*-." 的核心 $ 当 ()* 语句被分析后 %7: 89 便开始工作 $ 代码生成器将分析树翻译成一个袖珍程 序 % 随后这些袖珍程序又被组合成 7: 89 的虚拟机器 语言表示的一系列指令 $ 如此反复 %7: 89 执行每条指 令 % 最终完成 ()* 语句指定的查询要求 $ ()*-." 有以下特性 # 支持 ;<=: 事务 & 零配置 & 无 需安装和管理配置 & 存储在单一磁盘文件中的一个完 整的数据库 & 数据库文件可以在不同字节顺序的机器 间自由共享 & 支持数据库大小至 >8& 足够小 & 全部源 码大致 ? 万行 < 代码 %,@AB8& 比目前流行的大多数据 库运行速度快 % 提供了对事务功能和并发处理的支 持 & 应用 >#4154C.-01 既保证了数据的完整性 % 也会提 高运行速度 % 因为多条语句一起提交给数据库的速度 会比逐一提交的方式更快 & 独立 & 没有额外依赖 $ ! "#$%#’(" 8"#$"%"&’8 是由 5%""3&C4.50D.E4#" 开发的轻量 级嵌入式数据库 % 它不仅适用于嵌入式系统 % 而且可 以直接连接到应用程序内部 % 和应用程序运行在同一 地址空间 $ 传统的数据库一般作为独立服务器工作 % 而 8"#$"%"&’8 是软件开发库 % 开发者将它嵌入到应 用程序中 % 应用程序本身就是一个服务器 % 而只是利 用嵌入式数据库开发来实现定制的数据库逻辑 % 避免 了与应用服务器进程间通信的开销 % 因此 8"#$"%"& ’8 具有较高的运行效率 % 适用于资源受限的嵌入式 系统 $ 一般而言 %8"#$"%"&’8 数据库系统可以大致分为 五个子系统 % 如图 所示 $ /& 存取管理子系统 ’;CC"55F".G0H5( 该子系统为创建和访问数据库文件提供基本的 支持 $ 在没有事务管理的情况下 % 该子系统中的模块 可单独使用 % 为应用程序提供快速高效的数据存取服 务 $ & 内存池管理子系统 ’F"I0#&J00%( 该子系统就是 8"#$"%"&: 8 所使用的通用共享内 存缓冲区 % 该子系统可以被应用程序单独使用 $ ? & 事务子系统 ’>#4154C.-01( 该子系统为 8"#$"$"&: 8 提供事务管理功能 % 保 证操作的原则性 & 一致性和孤立性 $ 事务子系统适用 于对需要事务保证的数据进行修改的场合 $ K& 锁子系统 ’*0C$-1L( 该子系统提供进程之间以及进程内部的并发管 理机制 % 为系统提供多用户读取和单用户修改同一对 象的共享控制 $ 该子系统可以被应用程序单独使用 $ @& 日志子系统 ’*0LL-1L( 该子系统采用的是先写日志的策略 % 支持事务子 系统进行数据恢复 % 保证数据一致性 $ )*+,-.#与 "#$%#’("的 异同 通过上面的一些介绍 % 也许会对 ()*-." 和 ! "#$"! %"&: ! 有了一定的了解 $ 从目前的趋势看 % 这两款嵌 入式数据库有着旺盛的生命力 % 较好的应用领域及发 展空间 $ 笔者翻阅了大量的资料 % 从各个角度 % 对它们 的异同进行了多方面 % 多层次的比较 % 如表 / 所示 $ 通过此表我们可以较为直观地看到 %()*-." 和 ! "#$"%"&: ! 在数据库类型 & 开发语言 & 存储方式 & 模式 等方面有着较大的差异 $ 下面笔者就对其中某些重要 方面进行相对详细的论述 # /& 数据库类型 ()*-." 基于关系数据库模式 % 支持绝大多数标准 的 ()*+, 语句 M 在很大程度上实现了 ;N(=()*+, 标 准 % 特别是支持视图 & 触发器 & 事务 % 支持嵌套 ()*$ 它 通过 ()* 编译器 O()*P0I3%-"#Q 来实现 ()* 语言对数 据库进行操作 % 采用单文件存放数据库 $ 在操作语句 _ B-___ ____ ____ __SQLite_! ______________ ! 现场总线技术应用200例 " 嵌入式数据库应用 +,邮局订阅号 ! 82-946360元/年 技 术 创 新中文核心期刊 ! 微计算机信息 " (嵌入式与SOC)2006年第22卷第1-2期 360元/年邮局订阅号 # 82-946! ! ! 《 ! "# 技术应用 $%% 例》 对测量的原始温度信号进行第一次估值滤波 $ 滤 波器为 ! "#$ 得到的滤波结果如图三所示 % 对滤波后的数据 再次滤波 $ 滤波器仍然为 %"&$ 得到的滤波结果如图四所示 % 由式 &""’ 可知 $ 优效估计 ! ! " 的均方误差是测量噪 声 # " 的均方误差的 "’$ 倍 % 所以 $! ! " 中噪声的功率是 # " 功率的 "’$ 倍 % 对比图二和图三可以发现 $ 经过第一 次估值滤波后的信号中的噪声大为减少 ( 在对比图三 和图四 $ 可以发现 $ 由于第二次滤波的缘故 $ 图四中的 噪声进一步减少 % ! 小 结 本文用最大似然估计理论证明了 $ 使用一种低通 估值滤波器 $ 可以有效地减小信号中的噪声干扰 $ 提 高信号的信噪比 % 然而 $ 信号性能的提高 $ 需要较高的 采样频率 % 参考文献 (") 张贤达 * 著 $ 现代信号处理 $ 清华大学出版社 $+,,+ 年 ", 月第 + 版 (+) 王丽明 $ 何海江 - 在 -./0 中激活基于 123 的 241 数据存取定制接口 )5*& 微计算机信息 $+,,6*’#$()*’ 作者简介 # 柳贵东 &"7&6+’$ 男 $ 河北省石家庄市人 $ 中国科学院自动化研究所博士研究生 $ 研究方向 # 控 制理论与控制工程 %89: ;<=<;>? >;@AB? "7&6CD;B: -EA9-EB- &"###$# 北京中国科学院自动化研究所复杂系统与 智能科学实验室 ’ 柳贵东郁文生 %&’()*’+)*,)-.)/01234,5+2/5’6786+2119: 26;2 4;926;2<865+9+=+2)->=+)/’+9)6<.? 96252>;’72/,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 数据库 典型 技术 SQLite BerkeleyDB 研究 万玛宁