嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx

上传人:b****8 文档编号:29322151 上传时间:2023-07-22 格式:DOCX 页数:50 大小:24.22KB
下载 相关 举报
嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx_第1页
第1页 / 共50页
嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx_第2页
第2页 / 共50页
嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx_第3页
第3页 / 共50页
嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx_第4页
第4页 / 共50页
嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx

《嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx》由会员分享,可在线阅读,更多相关《嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx(50页珍藏版)》请在冰豆网上搜索。

嵌入式数据库典型技术SQLite和BerkeleyDB的研究万玛宁.docx

嵌入式数据库典型技术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/,

)-4;926;25<"###$#@&9=

B=

26:

%

投稿日期

=+,,6-#-+#$%

修稿日期

=+,,6-&-#$

%

接第

7F

$DG<;H8=

的代码段

*

将其中的

<;IDG<;H8-<:

改成

-

<;ID’<;IDG<;H8-:

%

做完上述修改

*

9:

J8

生成

DG<;H8,<;I)

DG<;H8-:

<;IDG<;H8-DA%

为了减小执行文件大小可以用

DHK;L

处理

*

去掉其中的调试信息

%

#,

MN3

板上运行

DG<;H8%

DG<;H8

拷贝到

MN3

板上

*

方法很多

*

需要根据具体的情况来选择

%

OHL,

E9P@OHL,Q?

8H

%

DG<;H8

下载到

MN3

板的

’H9L

目录

*

因为此目录是可写的

%

修改权限并运行

=

ER9A@SQTDG<;H8

-’DG<;H8H8DH-DG<;H8

会出现

!

!

!

!

!

DG<;H8U

如果一切正常

$

现在

DG<;H8

已经在

MN3PV;B>T

跑了起来

$

然后就可以基于此进行下一步的应用开发

%

D结

嵌入式数据库

WXV;H8

Y8KJ8<8Z[Y$

在体积上

功能上

运行速度及难易程度都存在着或多或少的异

%

但它们都有能够充分适应硬件的能力

$

能很好地

适应嵌入式系统的需要

%

就笔者来看

$WXV;H8

功能虽不

Y8KJ8<8Z[Y

强大

*

但它的设计思想是小型

快速和

最小化的管理

%

这就使得

WXV;H8

在大小和功能之间找

到了一个理想的平衡点

*

而且完全的开源代码使其可

以称得上是理想的

-

嵌入式数据库

.%

当然在具体的嵌

入式应用中可以根据具体情况选择应用

%

参考文献

=

(")RHHL=’’QQQ-DG<;H8-AK?

$WXV;H8

的官方主页

(+)

解季萍

-

基于中间件的远程教育教学资源数据库系统模型研究

)5*&

计算机信息

$+,,6*\=+++P++\

作者简介

=

万玛宁

$

$"7]"

7

月生

$

籍贯北京

$

$

首都师范大学信息工程学院计算机应用技术专业

硕士研究生

%

研究方向

#

嵌入式技术与应用

%

邮箱

#

Q:

B9:

B;B?

CD;B:

-EA9-

关永

$

$"7##

年生

$

内蒙古人

$

首都师范大学信息工程学院

$

副教授

%

研究方向

#

数字

信号处理

嵌入式系统

%

邮箱

#?

TZ"#7CD;B:

-EA9-

韩相

$

$"7&F

年生

$

汉族

$

河南人

$

首都师范大学信息工

程学院

$

硕士研究生

$

研究方向为嵌入式系统

%/9:

;<=

T;:

B?

^>BR:

BCD;B:

-EA9

>=+?

)*96+*)7=;+9)6E_:

B3:

B;B?

$O89:

<8$IAKB;B

"7]"$.:

H;‘84<:

E8#Y8;^;B?

$HR8a:

BB:

H;AB:

<;HZ$4ADH)

?

K:

@>:

H8AO3:

DH8KAO/B?

;B88K;B?

$1:

L;H:

<.AK9:

‘8KD;HZ-3:

^AK;B89I8@@8@H8ERBA

Z:

B@:

LL<;E:

H;AB-

/9:

;<#Q:

B9:

B;B?

CD;B:

-EA9cd>:

BeAB?

$9:

<8$IAKB;B

"7##$HR83:

BB:

H;AB:

<;HZ$.:

H;‘84<:

E8#.8;98B?

?

>$:

D)

DAE;:

H8LKAO8DDAK-N8D8:

KERf;8<@#89I8@@8@DZDH89-/)

9:

;<#?

TZ"#7CD;B:

-EA9-a:

Bg;:

B?

^>B$9:

<8$IAKB;B

"7&F$HR8a:

BB:

H;AB:

<;HZ$.:

H;‘84<:

E8#a8B:

B$4ADH)

?

K:

@>:

H8AO3:

DH8KAO/B?

;B88K;B?

-3:

^AK;B89I8@@8@

DZDH89$/9:

;<#R:

BT^-EA9(

%"###FG

首都师范大学

H

万玛宁关永韩相军

通讯地址

#

&"###FG

北京首都师范大学信息工程学院

万玛宁

%.)112:

2)-86-)*/’+9)6I6:

9622*96:

<.’09+’1J)*!

/’1K69L2*59+,

<"###FGHC’6O’696:

%

投稿日期

=+,,6-#-F,$%

修稿日期

=+,,6-&-"F$

%

接第

++,

$

PFF##QR

江西南昌南昌大学机电工程学院

H

叶建雄

张华谭曼华魏晖

%5;?

))1)-O2;?

’69;’1’67I12;+*)69;I6:

9622*96:

<

J’6;?

’6:

K69L2*59+,

’6:

FF##QR<.?

96’HB2<

S9’639)6:

T?

’6:

=’C29

通讯地址

E&FF##QR

江西南昌市上海路住宅小区

!

Q"#

周九兰转叶建雄

%

投稿日期

=+,,6-#-+#$%

修稿日期

电子设计

+&+

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1