• Android开发之SQLite数据库简介

    发布:51Code 时间: 2016-07-15 15:26

  • 在Android平台上,集成了一个嵌入式关系型数据库-SQLite。SQLite3支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有5种,但实际...

  • 在Android平台上,集成了一个嵌入式关系型数据库-SQLite。SQLite3支持NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有5种,但实际上它也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转换成对应的5种数据类型。

    SQLite简介

    SQLite是Android所带的一个标准的数据库,它是在2000年由D.Richard Hipp发布的支持SQL语句的轻量级的嵌入式数据库。SQLite数据库特点:更加适用于嵌入式系统,嵌入使用它的应用程序中;占用内存非常少,运行高效可靠,可移植性好;提供了零配置(zero-configuration)运行模式。SQLite数据库不仅提高了运行效率,而且屏蔽了数据库使用和管理的复杂性,程序仅需要进行最基本的数据操作,其他操作可以交给程序内部的数据库引擎完成。

    SQLite数据库具有很强的移植性,可以运行在Windows、Linux、BSD、Mac OS X和一些商用UNIX系统,比如,Oracle的Solaris、IBM的AIX等;SQLite数据库也可以工作在许多嵌入式操作系统下,例如,QNX、VxWorks、Android、Symbian和Windows Phone等。

    SQLite的核心大约有3万行标准C语言代码,并且其源代码开放,代码中95%有较好的注释,加上其模块化的设计使这些代码更加易于理解。

    SQLite数据库的模块化设计,由8个独立的模块构成,这些独立模块又构成了三个主要的子系统:编译器、核心模块及后端,模块将复杂的查询过程分解为细小的工作进行处理。模块结构图如图7-8所示。

    SQLite数据库模块化设计

    接口由SQLite C API组成,该API简单易用,无论是应用程序、脚本,还是库文件,最终都是通过接口与SQLite交互。

    由图可以看出,编译器由分词器、分析器和代码生成器组成。分词器和分析器对SQL语句进行语法检查分析后,将SQL语句转化为对于底层来说能够更方便处理的分层的数据结构,这种分层的数据结构称为“语法树”,生成的语法树传递给代码生成器,由代码生成器进行处理,生成一种针对SQLite的汇编代码,该部分代码最后交与虚拟机执行。

    SQLite数据库体系结构中最核心的部分便是虚拟机,也称为虚拟数据库引擎(Virtual Database Engine,VDBE)。与Java虚拟机相似,虚拟机用来解释执行字节代码。虚拟机的字节代码由128个操作码构成,这些操作码主要用于操作数据库,每一条指令都可以完成特定的数据库操作,或以特定的方式处理栈的内容。

    后端由B-树、页缓存和操作系统接口构成。B-树的主要功能就是索引,它维护着各个页面之间的复杂关系,便于快速找到所需数据;页缓存主要就是通过操作系统接口在B-树和磁盘之间传递页面;B-树和页缓存共同对数据进行管理。


  • 上一篇:Android-list view各种奇葩问题总结

    下一篇:在 Android 系统上安装 Debian Linux 与 R

网站导航
Copyright(C)51Code软件开发网 2003-2021 , 沪ICP备05003035号-6