- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式数据库SQLite及其应用研究
[摘要]嵌入式数据库SQLite可以高效地管理和存储数据。文章分析SQLite 数据库的技术特点、体系结构和应用范围,重点研究Sqlite 数据库的编译、移植和嵌入式数据库应用程序的开发等内容。
[关键词]嵌入式;SQLite;移植
[作者简介]李蔚,郑州轻工业学院副教授,硕士生导师,博士,研究方向:数据库与信息集成,内存数据库,河南郑州,450002;陈亚峰,郑州轻工业学院硕士研究生,研究方向:嵌入式实时数据库系统,河南郑州,450002
[中图分类号] TP393 [文献标识码] A [文章编号] 1007-7723(2010)10-0045-0003
一、引言
随着现代计算机技术的飞速发展,嵌入式系统成为当前IT行业最热门的焦点之一,已被广泛应用于各个领域。在嵌入式系统中,需对各种数据进行存储和管理,对数据的处理通常可采取文件方式和数据库方式。较文件管理系统,嵌入式数据库是首先考虑的选择。在数据库方式中,由于数据和程序相互独立,通过事务来进行调度与并发控制,可有效地对数据进行存取、查询等共享操作;同时借助于数据库所具有的安全性检验、完整性检查等多种安全措施,可确保系统具有较好的整体性能[1]。嵌入式数据库通常是与嵌入式操作系统及具体的应用集成在一起,无须独立运行数据库引擎,由程序直接调用相应的API就可实现对数据的存取操作。嵌入式系统的开发环境决定了其数据库要具备以下特点[2][3]:
1.DBMS的功能够用而不多余,这主要是由于嵌入设备资源紧张。
2.系统稳定性好、可靠性高,这样才能符合嵌入设备应用群体的特点。
3.可移植性嵌入式系统的平台种类繁多,因此嵌入式数据库应有一定的可移植性,以适用于不同的软硬件平台。
4.DBMS可裁剪或可定制,以适应嵌入式设备种类繁多、设备之间的性能差别极大的特点。
5.代码开源:开源的代码在产品的开发过程中不仅可以减少开发成本,而且为软件的可裁剪和可定制提供了可能,更重要的是为后期的维护完善和稳定运行提供了最为彻底的解决方法。
本文分析sqlite 数据库的技术特点、体系结构和应用范围,重点研究SQLite 数据库的编译、移植和嵌入式数据库应用程序的开发等内容。
二、SQLite 数据库的技术特点
SQLite 是D. Richard Hipp 开发出来的用一个小型C库实现的一种强有力的嵌入式关系数据库。它提供了对ANSI SQL92 的大多数支持:支持多表、索引、事务、视图、触发和一系列的用户接口及驱动。SQLite实现了完备的、可嵌入的、零配置的SQL数据库引擎,非常适合应用于嵌入式应用开发中。它的主要特点包括:
1.SQLite 的版权允许无任何限制的应用,包括商业性的产品。
2.支持ACID 事务,支持事务的并发执行。
3.零配置――无须安装和管理配置。
4.存储在单一磁盘文件中的一个完整的数据库,数据库文件可以在不同字节顺序的机器间自由共享。
5.支持数据库大小至2TB。
6.足够小、全部源码大致3 万行C 代码,编译以后完整配置的小于250KB,忽略一些可选特性的少于150KB。
7.比目前流行的大多数据库运行速度快。
8.比较完善的数据库恢复策略,即使在系统崩溃和掉电以后也能够自动完成启动初始化和数据恢复。
三、SQLite体系架构
SQLite体系结构如图1所示。主要由以下几个主要的子系统组成:
1.接口(Interface)是一个C语言库,它可以接受不同语言的API,但在底层执行的都是C语言库。
2.SQL 命令处理器(SQL Command Processor) 由三个独立的步骤组成:记号处理器(Tokenizer)、语法分析器(Parser)、代码生成器(Code Generator)。Tokenizer 其实就是一个专门针对SQL语法手工编写的词法分析器,它要比通用的词法分析器工具Flex效率高得多;SQLite的语法分析生成器(lemon)是基于LALR(1),功能类似于yacc和bison,但是在嵌入式数据库中,lemon个头更小、速度更快,生成更高效的代码,它把词法记号(tokens)装配成完整的SQL语句;代码生成器(Code Generator)把语法分析器产生的SQL语句转变成虚拟机代码,交给虚拟机执行。
3.虚拟机(Virtual Machine)是为操作数据库文件而特定设计的,它实现一个抽象的计算机引擎。虚拟机用一个堆栈来存储中间指令代码(四元式),每一条指令包含一个操作码和三个操作数。
原创力文档


文档评论(0)