随着后PC时代的到来,各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机。嵌入式开发已成为当前IT行业的热点。同时,越来越多的用户希望能对嵌入式环境下的数据进行更有效的管理,构建嵌入式数据库便是一个有效的方法,使用户能在嵌入式设备中方便地存储、检索或修改数据,实现大部分传统数据库的功能。嵌人式系统和数据库技术的紧密结合已经成为嵌入式开发的一个重要方向。1嵌入式数据库SQLite与传统C/s结构的各种
随着后PC时代的到来,各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机。嵌入式开发已成为当前IT行业的热点。同时,越来越多的用户希望能对嵌入式环境下的数据进行更有效的管理,构建嵌入式数据库便是一个有效的方法,使用户能在嵌入式设备中方便地存储、检索或修改数据,实现大部分传统数据库的功能。嵌人式系统和数据库技术的紧密结合已经成为嵌入式开发的一个重要方向。
1嵌入式数据库SQLite
与传统C/s结构的各种大型关系数据库如Oracle,
SQL Server,MySQL等相比,在嵌入式系统中由于软硬件资源有限,不可能安装庞大的数据库服务器,而且在很多时候,用户只需要使用这些数据库产品的一些基本特性而已。嵌入式系统的开发环境决定了其数据库的特点:无需独立运行的数据库引擎,而是由程序直接调用相应的API实现对数据的存取操作。嵌入式数据库与其他数据库产品的区别是,前者是程序驱动式,而后者是引擎响应式。
SQLite是D.Richard Hipp在2000年开发的一个小型嵌入式数据库。他是完全独立的,不具有外部依赖性,可以较为方便地应用于嵌入式系统中。其源代码完全开放,可以免费用于任何用途,包括商业目的。SQLite虽然是个极端轻量级的关系数据库,却保留了数据库的大部分特征,他提供了对SQL92标准的大多数支持:支持多表和索引、事务、视图、触发和一系列的用户接口及驱动。其主要特征如下:
(1)支持原子的、一致的、独立的和持久的(ACID)事务特性,即使系统崩溃和掉电。
(2)零配置(Zero-configuration),无需安装和管理。
(3)一个完整的数据库存储在单一磁盘文件中。
(4)数据库文件可以在不同字节顺序的机器间自由共享。
(5)支持数据库大小至2 TB(2^41 B)。
(6)字符串和二进制大对象(BLOBs)的大小仅被有效内存限制。
(7)源码体积小,编译后低于250kB。
(8)大部分的操作比关系型数据库引擎要快。
(9)简单易用的API。
SQLite由于小、快、简单、可靠,而且作者完全放弃版权,从他一发布出来,便深受欢迎。对于嵌人式环境,管理、执行、维护的简单化比企业数据库引擎提供的许多复杂应用更重要,因此SQLite数据库是一个很好的选择。
2 SQLite内部结构及开发技术
2.1 SQLite内部结构
SQLite采用模块化的设计,主要由4个部分组成:内核(Core)、SQL编程器(SQL Compiler)、后短(Backend)以及附件(Accessories)。内部结构如图1所示。