文档介绍:SQLite数据库在嵌入式下载机中的应用研究
(作者:___________单位: ___________邮编: ___________)
摘要 SQLite是开放源码的嵌入式数据库,其特点是独立性强,不具有外部依赖性,资源占用少,能直接嵌入到应用程序中,即能提供零配置(zero—configuration)运行模式。本文介绍了SQLite系统的特点和体系结构,在arm-linux平台上成功地移植了SQLite。并利用SQLite和网络成功地实现了用户与嵌入式下载机系统的动态交互,最后对数据库进行加密保障了安全性,可广泛用于远程控制。
关键词嵌入式数据库 SQLite 下载机
1 引言
ESS、MYSQL等来实现,但很多时候,系统只是用了数据库产品的一些基本特性,这样就造成浪费了很多的系统资源。特别是在嵌入式系统中,由于硬件和软件资源都很有限,一般的数据库系统根本无法在这些平台上使用。因此,嵌入式数据库应运而生。嵌入式数据库系统实质是支持某种特定计算机模式或移动计算的数据库管理系统,它通常与操作系统和具体应用集成在一起,运行在智能型嵌入式设备或移动设备上[1]。
嵌入式数据库的使用是采用程序驱动,即由程序调用相应的API函数来实现数据的存取。嵌入式数据库的体积小,编译后一般只有几十KB,非常适合在嵌入式设备上使用。由于嵌入式系统应用环境没有统一的标准,故嵌入式数据库应充分体现可定制的特性,因此,开放源码的嵌入式数据库具有明显的优势。
2 Sqlite数据库
Hipp用C语言编写的开源嵌入式数据库,支持的数据库大小为2TB,全部源代码约3万行,每个数据库完全存储在单个磁盘文件中,数据以B+树数据结构的形式存储在磁盘上,Sqlite根据该文件系统获得其数据库权限[2]。
Sqlite可直接运行在大多数的操作系统上,并且支持C/C++、Java等常用的开发工具。,支持多数SQL92标准,如SELECT、CREATE、TABLE、ALTER、INDEX、VIEW、DELETE等,但不支持EXISTS,不支持存储过程[4]。Sqlite支持事务的ACID特性,即原子性、一致性、隔离性和持久性。所以,Sqlite数据库能够在系统崩溃前和断电时不会丢失数据。Sqlite通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。在某个进程或线程向数据库执行写操作之前,必须获得独占锁定。在发出独占锁定后,其他的读或写操作将不会再发生。
嵌入式数据库来自于其嵌入式运行模式,它使用精简代码编写,零配置,直接在应用程序中运行,并且占用资源非常少[4]。嵌入式数据库系统没有管理员,具有自调节和自适应能力,能够“无处不在”。Sqlite是一个非常适合嵌入式应用的数据库,这可以从其设计的目的和独特的特点看出。Sqlite设计的主要目的是简单:简单的管理、简单的操作、简单地嵌入、简单的维护。Sqlite的特征如下:
(1)零配置。
(2)无服务器。
(3)精简性。
(4)简单的访问。
(5)可变长度的纪录。
Sqlite不仅小、快,而且简单、可靠,这是它受欢迎的主要原因。对于