网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Linux > 嵌入式系统 > 文章  
开源嵌入式数据库Berkeley DB和SQLite的比较
文章来源: CE china 文章作者: 未知 发布时间: 2006-05-28   字体: [ ]  
 

2.3 Betkeley DBSQLite数据存储方式比较

 

Berkeley DB对任何存入的数据都是按原样直接存储到数据文件中去,无论其是二进制数据还是A S C I IUnicode等编码的文本。Berkeley DB提供了四种存储数据的模式:BtreeHashQueueRecno。在打开数据库的时候,要指定一种存储模式。比如,上例中open( )方法中的参数Db.DB_BTREE就是指定以Btree模式打开数据库。

 

SQLite只提供了Btree存储数据的模式。对二进制数据,SQLite不能直接保存,但可以先将二进制的数据转换成ASCII编码,然后再保存。Base64.编码机制是最常见的把二进制数据转换成ASCII编码的手段。在SQLiteC语言代码encode.c中,提供了Base64编码的功能。

 

Btree模式是以排序的二叉树的方式存储的,Hash是以线性哈希表的方式存储。Queue用逻辑记录号作为键值,以定长的数据为记录值。Recno方式也以逻辑记录号作为键值,但可以保存定长或变长的记录值。这里提到的逻辑记录号有两种,即可变的和固定的。可变逻辑记录号会根据数据记录的增加与删除作相应的变化。Queue模式下,逻辑记录号只能是固定方式。Recno模式则可通过配置来选择是采用哪种类型的记录号作为键值。Btree模式也可以通过设置,将可变的逻辑记录号作为键值。

 

这几种存储模式各有优缺点,当键值不想用逻辑记录号时,BtreeHash是必须的选择。Btree方式比较适合连续的顺序读取。比如,当键值是时间值,如果经常有从某一时间点开始连续读取后继的记录的操作,Btree是一种很好的选择。对随机的跳跃式读取,Hash模式则更为恰当。QueueRecno都以记录号为键值,但前者适合先进先出的读取方式。Recno则通常是存取变长文本记录的理想存储模式。

 

2.4  Berkeley DBS0Lite适用的系统

 

Berkeley DB为许多编程语言提供了实用的API接口,包括CC++Java、:PerlTclPythonPHP等。它适用平台UNIX/POSIX systemswin32以及嵌入式操作系统WinCEVxWorks等。

 

通过WrapperSQLite实现了与其它语言的连接。所谓Wrapper即对SQLite提供的接口进行封装,使其它语言可以访问,使用SQLiteSQLite本身提供CTcl的接口,世界各地的程序员还提供了各种语言的SQLite的接口封装, PythonC++Java.Net等几乎所有流行的语言基本都有。sQLite提供一个抽象的操作系统接口层,来保证其在POSIX Win32系统之间的兼容性。

 

2.5  其它方面

 

Berkeley DB没有数据库服务器的概念,使用简单的函数调用接口来完成所有的数据库操作,不使用SQL语言;接口简明实用,避免了对结构化查询语言进行解析和处理所需的开销,提高了执行速度;速度极快,可靠性高,但学习起来有一定难度。SQLite则简单易用,速度也很快,但功能却较Berkeley略有逊色,比如加密功能、二进制数据的处理等。

 

Berkeley DB虽然是开源的产品,但对某些条件下的商业性应用,却不是免费的,而且价格颇为昂贵。这些商业条件包括排除了开源的情况,不发放分布版本的情况等。SQLite是源代码完全的开放,可以免费用于任何用途,包括商业目的。

 

结语

 

随着人们对移动数据处理和管理需求的不断提高,与各种智能设备紧密结合的嵌入式数据库技术已经得到了学术界、工业界、民用部门等各方面的广泛重视。嵌入式数据库将会使得人们希望随时随地存取任意思数据信息的愿望成为现实,嵌入式数据库将无处不在。开源的嵌入式数据库Berkeley DBSQLite,内核微小,有能够充分适应硬件的能力,能很好地适应嵌入式系统的需要。在具体的嵌入式应用中可以根据具体情况选择应用。

 

--

原文链接: http://www.ednchina.com/Article/html/2006-05/2006528070408.htm

 
推荐文章
·嵌入式Linux平台的多协议路由器
·恰当选择嵌入式Linux环境下的GUI
·嵌入式Linux系统的MiniGUI研究和
·基于Linux的移动电话开发技术及
·嵌入式uClinux的内核结构和开发
·基于 GTK+ 和 X-window 的 GUI
·基于Qt/Embedded和Qtopia的GUI设
·开放源码嵌入式数据库 SQLite 简
·ucLinux下sqlite数据库移植全攻
·恰当选择嵌入式Linux环境下的GUI
·ARM的嵌入式Linux移植体验之操作
·ARM的嵌入式Linux移植体验之基本
·ARM的嵌入式Linux移植体验之应用
·ARM的嵌入式Linux移植体验之设备
 
 
共3页: 上一页 [1] [2] 3 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·ARM的嵌入式Linux移植体
·U-Boot简介
·基于Qt/Embedded的GUI移
·基于Qt/Embedded和Qtopi
·U-BOOT的启动流程及移植
·ARM的嵌入式Linux移植体
·几种Linux嵌入式开发环
·ARM的嵌入式Linux移植体
相关文章
·嵌入式数据库
·嵌入式系统的USB虚拟串
·嵌入式系统的人机界面原
·双内核嵌入式处理器及其
·Linux 2.6 内核的嵌入式
·YAFFS文件系统在嵌入式L
·ARM7系统中实现CF卡存储
·基于μClinux的SoPC应用
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统