论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
SQLite有以下特性:支持ACID事务、零配置―无需安装和管理配置、存储在单一磁盘文件中的一个完整的数据库、数据库文件可以在不同字节顺序的机器间自由共享、支持数据库大小至2TB、足够小、全部源码大致3万行C代码,250KB、比目前流行的大多数据库运行速度快,提供了对事务功能和并发处理的支持、应用Transaction既保证了数据的完整性,也会提高运行速度,因为多条语句一起提交给数据库的速度会比逐一提交的方式更快、独立、没有额外依赖。
3 Berkeley DB
Berkeley DB是由sleepycat software开发的轻量级嵌入式数据库,它不仅适用于嵌入式系统,而且可以直接连接到应用程序内部,和应用程序运行在同一地址空间。传统的数据库一般作为独立服务器工作,而Berkeley DB是软件开发库,开发者将它嵌入到应用程序中,应用程序本身就是一个服务器,而只是利用嵌入式数据库开发来实现定制的数据库逻辑,避免了与应用服务器进程间通信的开销,因此Berkeley DB具有较高的运行效率,适用于资源受限的嵌入式系统。
一般而言,Berkeley DB数据库系统可以大致分为五个子系统,如图2所示。
1、 存取管理子系统(Access Methods)
该子系统为创建和访问数据库文件提供基本的支持。在没有事务管理的情况下,该子系统中的模块可单独使用,为应用程序提供快速高效的数据存取服务。
2、 内存池管理子系统(Memory Pool)
该子系统就是Berkeley DB所使用的通用共享内存缓冲区,该子系统可以被应用程序单独使用。
3、 事务子系统(Transaction)
该子系统为Berkekey DB提供事务管理功能,保证操作的原则性、一致性和孤立性。事务子系统适用于对需要事务保证的数据进行修改的场合。
4、 锁子系统(Locking)
该子系统提供进程之间以及进程内部的并发管理机制,为系统提供多用户读取和单用户修改同一对象的共享控制。该子系统可以被应用程序单独使用。
5、 日志子系统(Logging)
该子系统采用的是先写日志的策略,支持事务子系统进行数据恢复,保证数据一致性。
4、SQLite与Berkeley DB的异同
通过上面的一些介绍,也许会对SQLite和Berkeley DB有了一定的了解。从目前的趋势看,这两款嵌入式数据库有着旺盛的生命力,较好的应用领域及发展空间。笔者翻阅了大量的资料,从各个角度,对它们的异同进行了多方面,多层次的比较,如表1所示。
表1 SQLite与Berkeley DB的异同
特性
Berkeley DB
是否为关系数据库
是否支持SQL
开发语言
数据类型
存储方式
存储模式
数据库引擎
适用系统
错误处理
加密功能
是否免费
难易程度
是
是
C语言
无
转换成ASCII码
Btree
虚拟
从ARM/Linux到SPARC/Solaris多种硬件平台
较少
弱
全部
较易
否
否
C、Java语言
无
原样存储
Btree、Hash、Queue和Recno
无
UNIX/POSIX systems、Win32及嵌入式系统WinCE、VxWorks等
较详细
强