1.嵌入式数据库的功能
嵌入式数据库的功能应与通用数据库功能相似,应覆盖数据库的核心功能。通常,嵌入式数据库有其自身的特殊需要,它应具备的功能包括以下4点:
- 足够高效的数据存储机制;
- 数据安全控制(锁机制);
- 实时事务管理机制;
- 数据库恢复机制(历史数据存储)。
这样,一般嵌入式数据库可划分成数据库运行处理、数据库存取、数据管理、数据库维护和数据库定义等功能。
数据库运行处理:主要负责实现嵌入式数据库运行过程的各种功能。包括实时事务管理、并发控制、数据库装入、运行日志维护、安全性和完整性控制等。
数据库存取:主要负责实现嵌入式数据库各种存取和查询功能。包括实时数据更新、历史数据查询、数据添加、数据删除等。
数据管理:主要负责实现嵌入式数据库的数据空间管理功能。包括缓冲区管理、数据存储空间管理、数据索引管理等。
数据库维护:主要负责实现嵌入式数据库的数据维护管理功能。包括数据恢复、实时数据转储、数据装入等。
数据库定义:主要负责实现嵌入式数据库的安全性、完整性的定义功能。
2. 典型嵌入式数据库系统
目前,嵌入式数据库中比较典型的三个产品是SQLite、Berkeley DB和Firebird嵌入式服务器版,其主要特点如下:
2.1SQLite
SQLite诞生于2000年5月,这几年增长势头迅猛无比,目前版本是3.3.8。其主要特点是:
- 无须安装配置,应用程序只须携带一个动态链接库
- 非常小巧,For Windows 3.3.8版本的DLL文件才374KB
- ACID事务支持,ACID即原子性、一致性、隔离性和持久性(Atomic、Consistent、Isolated和Durable)
- 数据库文件可以在不同字节顺序的机器间自由的共享,比如可以直接从Windows移植到Linux或MAC
- 支持数据库大小至2TB
2.2Berkeley DB
Berkeley DB是由Sleepycat Software公司开发的一套开放源码的嵌入式数据库,它于1991年发布,目前Sleepycat已被甲骨文(ORACLE)公司收购。其主要特点是:
- 嵌入式,无需安装配置
- 为多种编程语言提供了API接口,其中包括C、C++、Java、Perl、TCL、Python和PHP等
- 轻便灵活。它可以运行于几乎所有的UNIX和Linux系统及其变种系统、Windows操作系统以及多种嵌入式实时操作系统之下
- 可伸缩。他的Database library才几百“KB”大小,但它能够管理规模高达256TB的数据库。它支持高并发度,成千上万用户可同时操作同一个数据库
2.3Firebird嵌入式服务器版
从Interbase开源衍生出了Firebird版本。虽然它的体积是Interbase的几十分之一,但功能并无丢弃。为了体现Firebird短小精悍的特色,开发小组在增加了超级服务器版本之后,又增加了嵌入版本,最新版本为2.0。其主要特点是:
- 数据库文件与Firebird网路版本完全兼容,差别仅在于连接方式不同,可以实现零成本迁移
- 数据库文件仅受操作系统的限制,且支持将一个数据库分割成不同文件,突破了操作系统最大文件的限制,提高了I/O吞吐量
- 完全支持SQL-92标准,支持大部分SQL-99标准功能
- 丰富的开发工具支持,绝大部分基于Interbase的组件,可以直接使用于Firebird
- 支持事务、存储过程、触发器等关系型数据库的所有特性
- 可自己编写扩展函数(UDF)