摘要 首先,分析Linux下的常见数据库技术。然后,指出嵌入式系统开发中对数据库的需求特点,论述SQLite嵌入式数据库的体系结构和开发技术。最后,结合ARM Linux开发平台,讲述具体的实现方法。
关键词 嵌入式数据库 SQLite ARM Linux
引言
随着嵌入式系统的广泛应用和用户对数据处理和管理需求的不断提高,各种智能设备和数据库技术的紧密结合已经得到了各方面的重视。不久的将来嵌入式数据库将无处不在。纵观目前国际、国内嵌入式数据库的应用情况,目前基于嵌入式数据库应用的市场已经进入加速发展的阶段。
1Linux 下常见的数据库技术分析
基于Linux平台的数据库非常多,大型的商用数据库有Oracle、Sybase、Informix、Informix、IBM DB2等;中小型的更是不胜枚举,以下是常见的几种。
(1) PostgreSQL
PostgreSQL 是世界上最优秀的开放源码的数据库之一,是完全免费的数据库,不需要任何版权费用和购买费。因此,它是许多Linux发行版本的首选,例如: Redhat、TurboLinux都预装了PostgreSQL。 PostgreSQL兼容性很强,如果是SQL92兼容的,移植PostgreSQL非常简单和快捷。
(2) MySQL
MySQL是多 用户、多进程的SQL database server。MySQL包括一个server daemon(mysqld)和client programs与libraries的client/server实现工具;比较适合小而简单的数据库,对复杂的操作要求支持不是很好。MySQL的 licensing policy:如果你是普通的最终用户,使用MySQL不需要付钱;但如果是直接或间接地出售MySQL的服务程序或相关产品,或是在一些客户端维护 MySQL server并收取费用,或是在发行版中包括MySQL,就需要获得许可。
* 本课题是2003年河南省杰出人才创新基金项目(0321000300),获得了河南省科技厅的资金支持。
(3) mSQL(mini SQL)
mSQL是一个单用户数据库管理系统。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青 睐。mSQL并非是完全的freeware,若是在大学中使用此一软件,或是为了学术研究与慈善等非营利性目的,才能免费得到使用权(free license),否则就得付费注册才能得到正式的版权。
(4) Berkeley DB
Berkeley DB是一个开放源代码的嵌入式数据库管理系统,能够为应用程序提供高性能的数据管理服务。应用它,程序员只需要调用一些简单的API就可以完成对数据的访 问和管理。与常用的数据库管理系统(如MySQL和Oracle等)有所不同,在Berkeley DB中并没有数据库服务器的概念。应用程序不需要事先同数据库服务建立起网络连接,而是通过内嵌在程序中的Berkeley DB函数库来完成对数据的保存、查询、修改和删除等操作。
(5) SQLite
SQLite支持绝大多数标准的SQL92语句,采用单文 件存放数据库,速度又比 MySQL快上1~2倍(官方的数据),存储量也不是问题。在操作语句上更类似关系型数据库的产品使用,非常方便。SQLite的版权允许无任何限制的应 用,包括商业性的产品。在PHP5中已经集成了这个轻巧的嵌入式数据库产品。
2嵌入式开发对数据库的需求特点
在众多的数据库中,如何选择适用于嵌入式系统的数据库呢?嵌入式系统开发环境决定了其对数据库需求的特点。
(1) 适当的体积
嵌入式系统对于数据的存储与程序的运行一般都有较强的空间限制,所以适用于嵌入式系统使用的数据库首先应该有一个适当的体积。
(2) 较强的功能
嵌入式开发中有很多应用,用户需求决定了开发中需要有一个大小适中且功能齐备的数据库来实现对数据的管理。对开发人员来说,要求采用的数据库技术提供完备开发的文档而且易于开发。
(3) 开源的代码
作为产品的开发,开源的代码不仅可以减少产品的生产成本,更重要的是为产品的维护完善和稳定运行都提供了最为彻底的解决手段。
上 面介绍的数据库技术中,Oracle、Sybase、Informix、IBM DB2等功能强大,系统体积庞大,要求付费使用,仅适用于作为大型商业数据库。MySQL在保持中等体积的情况下,提供了较为适用的功能已经成为中小规模 数据库应用的首选,但商业应用也要收费,而且对于嵌入式开发来说空间占用仍然太大,目前还不适用。
mSQL是一种简化的SQL数据库,短小精悍,开发方便,适用于嵌入式开发;但mSQL只有30天的使用期限,并非完全的开源。
余下的开放源码数据库中,PostgreSQL是Linux下最完善的开源SQL数据库,但体积也较大。Berkeley DB作为完全开源的嵌入式数据库速度极快,可靠性高;但学习起来有一定难度,必然会加大开发成本。
SQLite 则简单易用,速度也很快,同时提供了丰富的数据库接口,功能虽较Berkeley DB略有逊色,但在开源社区的推动下差距正在缩小。它的设计思想是小型、快速和最小化的管理。这对于需要一个数据库用于存储数据,但又不想花太多时间来调 整数据性能的开发人员很适用。实际上在很多情况下,并不需要存储程序或复杂的表之间的关联。这时会发现SQLite在大小和功能之间找到了一个理想的平衡 点。完全的开源代码使其可以称得上是理想的“嵌入式数据库”。
新闻热点
疑难解答