嵌入式数据库SQLite的原理与应用

合集下载

sqlite 事务的实现原理

sqlite 事务的实现原理

sqlite 事务的实现原理SQLite是一种轻量级的数据库管理系统,支持事务的原子性、一致性、隔离性和持久性(ACID)特性。

事务是数据库管理系统中用于实现一组相关操作的机制,它可以确保一组操作要么全部成功执行,要么全部回滚到原始状态,从而保持数据的完整性和一致性。

本文将介绍SQLite事务的实现原理。

在SQLite中,事务以SQL语句的方式进行操作。

事务可以包含多个SQL语句,这些语句可以是插入、更新或删除数据的操作。

当执行一个事务时,SQLite会将所有的操作当作一个原子操作来处理,即要么全部成功执行,要么全部回滚到事务开始前的状态。

这种原子性是通过日志和回滚日志的方式实现的。

SQLite使用了一种称为“写日志”的技术来保证事务的原子性。

在执行一个事务之前,SQLite会将所有的修改操作记录在一个日志文件中,这个文件称为“写日志”。

当事务成功执行时,SQLite会将这个日志文件写到数据库文件中,从而保证了事务的原子性。

如果事务执行过程中发生了错误或回滚操作,则可以根据日志文件将数据库回滚到原始状态。

除了写日志,SQLite还使用了“回滚日志”的技术来实现事务的回滚操作。

在执行一个事务之前,SQLite会将当前的数据库状态记录在一个回滚日志文件中。

如果事务执行过程中发生了错误或回滚操作,则可以根据回滚日志文件将数据库回滚到事务开始前的状态。

在SQLite中,事务的隔离性是通过锁机制来实现的。

当一个事务对数据库进行修改时,它会获取一个写锁,这个锁会阻止其他事务对数据库进行修改。

只有当一个事务提交或回滚后,其他事务才能获取写锁。

这种锁机制可以确保事务的隔离性,防止多个事务同时对数据库进行修改,从而避免了数据不一致的情况。

SQLite使用了持久化技术来保证事务的持久性。

持久化是指在事务提交后,对数据库的修改操作将永久保存在存储介质上。

在SQLite 中,当一个事务提交后,它的修改操作会被写入数据库文件中,并且通过一些机制来确保这些修改操作能够在数据库崩溃或断电后仍然有效。

SQLite的介绍操作Sqlite具体实例

SQLite的介绍操作Sqlite具体实例

SQLite的介绍操作Sqlite具体实例1.SQLite简介SQLite是⼀款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计⽬标是嵌⼊式的,⽽且⽬前已经在很多嵌⼊式产品中使⽤了它,它占⽤资源⾮常的低,在嵌⼊式设备中,可能只需要⼏百K的内存就够了。

它能够⽀持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语⾔相结合,⽐如Tcl、PHP、Java、C++、.Net等,还有ODBC接⼝,同样⽐起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度⽐他们都快。

2.SQLite的特点:轻量级SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。

使⽤SQLite⼀般只需要带上它的⼀个动态库,就可以享受它的全部功能。

⽽且那个动态库的尺⼨也挺⼩,以版本3.6.11为例,Windows下487KB、Linux下347KB。

不需要"安装"SQLite的核⼼引擎本⾝不依赖第三⽅的软件,使⽤它也不需要"安装"。

有点类似那种绿⾊软件。

单⼀⽂件数据库中所有的信息(⽐如表、视图等)都包含在⼀个⽂件内。

这个⽂件可以⾃由复制到其它⽬录或其它机器上。

跨平台/可移植性除了主流操作系统 windows,linux之后,SQLite还⽀持其它⼀些不常⽤的操作系统。

弱类型的字段同⼀列中的数据可以是不同类型开源3.SQLite数据类型⼀般数据采⽤的固定的静态数据类型,⽽SQLite采⽤的是动态数据类型,会根据存⼊值⾃动判断。

SQLite具有以下五种常⽤的数据类型:NULL: 这个值为空值VARCHAR(n):长度不固定且其最⼤长度为 n 的字串,n不能超过 4000。

CHAR(n):长度固定为n的字串,n不能超过 254。

INTEGER: 值被标识为整数,依据值的⼤⼩可以依次被存储为1,2,3,4,5,6,7,8.REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.TEXT: 值为⽂本字符串,使⽤数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).BLOB: 值是BLOB数据块,以输⼊的数据格式进⾏存储。

SQLite数据库在嵌入式系统中的应用实践

SQLite数据库在嵌入式系统中的应用实践

2 S QL i t e 数据库及其应用
2 . 1 概 述
S Q L i t e数 据 库 是 D. R i c h a r d Hi p p用 C语 言
编 写 的 开 源嵌 入 式 数 据库 ,全 部 源 代 码 约 3万 行 ,支 持 的 数 据 库容 量 为 2 T B 。 每 个 数 据 库 完 全存 储在 单个 磁 盘文 件 中 ,数 据 以 B 十树 数据 结 构 的 形 式 存储 在磁 盘 上 ,S Q L i t e根 据 该 文 件 系
S B C 2 4 1 0芯 片 ,它基 于 A R M9 2 0 T内核 ,配 备 存
可 同时读 取 同一 数 据 ,但 仅 有 唯一 进 程 写 入 数 据 。在某 个 进 程 或 线 程 向数 据库 执 行 写 操 作 之 前 ,须 获独 占锁 定 。独 占锁 定后 ,将 不 进 行 其
统获得其数据库权限。( 2 1
S Q L i t e 是 开源 的嵌 入 式 数据 库 ,独 立 性强 , 资 源 占用少 ,能 直 接 嵌 入 到应 用 程 序 中 ,提 供
零 配 置 运 行模 式 ,可 部 署 在 大 多 数嵌 入 式 操 作 系 统 上 ,并 且 支 持 C / C + + 、J a v a等 常用 开 发 工 具 。本 文使 用 的是 S Q L i t e 3 . 3 . 4 , 支 持 多 数 S Q L 9 2标 准 ,如 S E L E C T 、C R E A T E、T A B L E、
据的存取 ,其体积小 ,编译后仅有几十 K B ,非
常 适合 运 行 在 资 源 稀 缺 的嵌 入 式设 备 上 。 由于 它 的应 用 环 境 无 统 一 标 准 ,故应 充 分 利用 其 可 定制 的特 性 ,开放 源码 具有 明显 的优 势 。

Sqlite使用文档

Sqlite使用文档

SQLite的配置和使用文档一.引言:本文将简要介绍如何在Linux和ARM-Linux平台上移植SQLite嵌入式数据库,以及一些简单的测试案例。

嵌入式数据库采用程序方式直接驱动,而传统数据库则采用引擎响应方式驱动。

由于嵌入式数据库的体积通常很小,这使得嵌入式数据库常常应用在移动设备上。

SQLite是一种嵌入式数据库。

SQLite的目标是尽量简单,因此它抛弃了传统企业级数据库的种种复杂特性,只实现那些对于数据库而言非常必要的功能。

尽管简单性是SQLite追求的首要目标,但是其功能和性能都非常出色由于SQLite具有功能强大、接口简单、速度快、占用空间小等优点,因此特别适合于应用在嵌入式环境中。

SQLite在手机、PDA、机顶盒等设备上已获得了广泛应用。

二.软硬件平台:OS:fedora7;编译器:gcc 版本 4.1.2 20070502 (Red Hat 4.1.2-12):开发板:基于Sep4020的UB4020EVB(1.6) 开发套件;Linux内核:Linux Kernel v2.6.16:交叉编译器:gcc version 3.4.1:Sqlite:sqlite-3.3.8三.PC端编译环境的安装:此处使用的为SQLite版本为sqlite-3.3.8.tar.gz,可以通过以下方式获得此压缩包/sqlite-3.3.8.tar.gz(利用迅雷等工具下载)。

将此压缩包拷贝到/root目录下,在终端中进入此目录,并解压sqlite-3.3.8.tar.gz压缩包:[root@localhost ~]# cd /root/[root@localhost ~]# tar -zxvf sqlite-3.3.8.tar.gz将sqlite-3.3.8更名为sqlit_pc,并进入sqlite_pc目录:[root@localhost ~]# mv sqlite-3.3.8 sqlite_pc[root@localhost ~]# cd sqlite_pc//进入目录后采用默认配置生成Makefile文件:[root@localhost sqlite_pc]# ./configure配置结束后进行编译并且将所生成的文件安装:[root@localhost sqlite_pc]# make[root@localhost sqlite_pc]# make installMake install 安装以后会生成以下文件,系统默认的目录为/usr/local:lib:libsqlite3.a libsqlite3.so libsqlite3.so.0libsqlite3.so.0.8.6include:sqlite3.hbin: sqlite3由于/usr/local为系统路径,此时只要在终端直接输入sqlite3 [数据库名] 即可打开(没有时创建)一个数据库文件。

SQLite3 使用教学

SQLite3 使用教学

SQLite3 使用教学嵌入式数据库通常与操作系统和具体应用集成在一起,无须独立运行的数据库引擎,由程序直接调用相应的API去实现对数据的存取操作。

更直白地讲,嵌入式数据库是一种具备了基本数据库特性的数据文件。

嵌入式数据库与其它数据库产品的区别是,前者是程序驱动式,而后者是引擎响应式。

嵌入式数据库的一个很重要的特点是它们的体积非常小,编译后的产品也不过几十KB,在一些移动设备上极具竞争力。

SQLite有以下特性:支持ACID事务;零配置一无需安装和管理配置;储存在单一磁盘文件中的一个完整的数据库;数据库文件可以在不同字节顺序的机器间自由共享;支持数据库大小至2TB;足够小,全部源码大致3万行c代码,250KB;比目前流行的大多数数据库对数据的操作要快;提供了对事务功能和并发处理的支持,应用Transaction既保证了数据的完整性,也会提高运行速度,因为多条语句一起提交给数据库的速度会比一条一条的提交方式更快;独立,没有额外依赖。

OS X自从10.4后把SQLite这套相当出名的数据库软件,放进了作业系统工具集里。

OS X包装的是第三版的SQLite,又称SQLite3。

这套软件有几个特色:∙软件属于公共财(public domain),SQLite可说是某种「美德软件」(virtueware),作者本人放弃着作权,而给使用SQLite 的人以下的「祝福」(blessing):o May you do good and not evil. 愿你行善莫行恶o May you find forgiveness for yourself and forgive others. 愿你原谅自己宽恕他人o May you share freely, never taking more than you give. 愿你宽心与人分享,所取不多于你所施予∙支援大多数的SQL指令(下面会简单介绍)。

∙一个档案就是一个数据库。

SQLite数据库利用详解程序

SQLite数据库利用详解程序

1.SQLite数据库的优势:1.1 轻量级SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,利用SQLite一样只需要带上它的一个动态库。

以版本为例,Windows下487KB、Linux下347KB。

1.2 绿色软件它的核心引擎本身不依托第三方的软件1.3 单一文件确实是数据库中所有的信息(比如表、视图、触发器、等)都包括在一个文件内。

那个文件能够copy到其它目录或其它机械上,也照用不误。

CSV也是单一文件格式。

它本身确实是用来表示二维的数据信息的。

一个CSV文件能够明白得为数据库的一张表。

CSV的缺点要紧在于:不便于存储非文本的数据信息(比如BLOB类型的信息);若是需要同时存储多张表的信息,就需要对应有多个CSV文件(文件一多,就嫌麻烦)。

1.4 跨平台/可移植性除主流操作系统,SQLite还支持了很多其他的操作系统。

如对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。

Access数据库最要紧的缺点确实是不能跨平台。

另外还有几个小缺点:文件大小有限制(2GB)、不支持内存数据库。

1.5 内存数据库(in-memory database)现在内存愈来愈廉价,很多一般PC都开始以GB为单位来衡量内存(效劳器就更甭提了)。

这时,SQLite的内存数据库特性就越发显得好用。

SQLite的API不区分当前操作的数据库是在内存仍是在文件(关于存储介质是透明的)。

因此若是你感觉磁盘I/O有可能成为瓶颈的话,能够考虑切换为内存方式。

切换的时候,操作SQLite的代码大体不用大改,只要在开始时把文件Load到内存,终止时把内存的数据库Dump回文件就OK了。

1.6 编程语言接口由于SQLite本身是C写的,它自带的API也是C接口的。

2.SQLite数据库的缺点:2.1并发访问的锁机制SQLite在并发(包括多进程和多线程)读写方面的性能不太理想。

基于WinCE的嵌入式数据库研究

基于WinCE的嵌入式数据库研究

基于WinCE的嵌入式数据库研究摘要:鉴于WinCE下硬件资源的匮乏,大型的基于服务的数据库显得累赘而不可取,寻找可嵌入、可配置的小型数据库非常重要。

结合实际WinCE开发,研究两种嵌入式数据库的使用并给出各自的优缺点。

关键词:WinCE;嵌入式数据库;SQLite;SQL Server CE1 SQLite概述1.1 SQLite简介SQLite是一款轻量的、开源的数据库,是遵守ACID的关系型数据库,它的设计目标是嵌入式的。

SQLite所占用的资源非常少,无需非常复杂的配置就可以使用该数据库,同时它能够支持Windows/Linux/Unix等主流操作系统,同时能够与很多程序设计语言结合起来,并且处理速度相当快。

1.2 SQLite功能和特性(1)SQLite除支持最基本的增、删、改、查功能外,还支持ACID、视图、事务、触发器、索引和表达式等。

(2)零配置。

无需复杂的安装和配置,移植数据库只要复制文件就可以了。

(3)支持数据库大小可达到2TB。

(4)提供简单易用的API来操作数据库。

(5)开放源代码。

提供完整的C语言源代码并给予最详尽的注释。

(6)支持多种开发语言。

如C,C ++Java,C,PHP,Python等。

2 SQL Server CE概述2.1 SQL Server CE简介SQL Server Compact Edition是微软推出的适用于嵌入到移动应用的精简数据库产品,简称SQL Server CE或SqlServerCe。

虽然该数据库是SQL Server的精简产品,但其功能并未大幅缩水,它也是一个基于文件的数据库。

该数据库不仅支持WinCE 也可以在普通Windows当中使用。

2.2 SQL Server CE功能和特性(1)精简的数据库引擎和强大的查询优化器。

(2)支持合并复制和远程数据访问。

(3)支持用于SQL Server CE的和OLE DB访问接口。

(4)可以与Visual Studio无缝集成,操作起来非常方便。

sqlite数据库删除数据处理机制

sqlite数据库删除数据处理机制

SQLite是一种流行的轻量级关系型数据库管理系统,它使用许可证要求相对宽松的公共领域授权,并且不需要一个服务器来操作。

由于其易于使用和轻量级的特点,它被广泛应用于移动设备、嵌入式系统和小型应用程序中。

在SQLite数据库中删除数据是一项重要的操作,本文将探讨SQLite数据库删除数据的处理机制。

1. 删除数据的基本语法在SQLite中,要删除数据,可以使用DELETE语句。

其基本语法如下:```DELETE FROM table_nameWHERE condition;```其中,table_name是要从中删除数据的表名,condition是一个可选的条件,用来指定哪些记录将被删除。

如果没有条件,那么将删除表中的所有数据。

2. 删除数据的处理流程当执行DELETE语句时,SQLite数据库将按照以下流程来处理删除操作:- 锁定要删除的数据:SQLite在执行删除操作时,会对涉及到的数据行进行加锁,以确保在删除过程中不会发生数据冲突。

- 检查触发器:在执行DELETE操作之前,SQLite会检查是否有与被删除表相关联的触发器。

如果有触发器存在,那么会按照触发器的定义来执行相应的操作。

- 删除数据:当所有条件满足并且没有触发器阻止删除操作时,SQLite 会逐行删除符合条件的数据。

- 更新索引:在删除操作完成后,如果表上有索引,那么SQLite会更新索引以反映数据的变化。

- 释放锁:数据库会释放删除过程中涉及的所有锁。

3. 数据删除的性能优化在处理大量数据的删除操作时,为了提高性能和减少资源消耗,可以考虑以下优化策略:- 使用事务:可以将多个删除操作放在一个事务中进行,这样可以减少锁的竞争,提高并发性能,并且在发生错误时可以进行回滚操作。

- 添加索引:如果DELETE操作会涉及到大量的数据行,可以在涉及到的列上添加索引,以加快删除过程。

4. 删除数据的注意事项在进行删除操作时,需要注意以下几点:- 谨慎使用DELETE *语句:DELETE *语句会删除表中的所有数据,因此在使用时要格外小心,以免造成不可挽回的损失。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本栏目责任编辑:闻翔军数据库与信息管理电脑知识与技术嵌入式数据库SQLite的原理与应用唐敏,宋杰(安徽大学计算机学院,安徽合肥230039)摘要:随着嵌入式技术的发展,在嵌入式系统中越来越多地用到数据库。首先介绍了嵌入式数据库的基本特点,进而详细介绍了一个简洁实用的嵌入式数据库———SQLite,包括SQLite的技术特性、体系结构以及基本的函数调用,着重介绍SQLite在arm-linux平台上的应用开发、交叉编译和移植过程。

关键词:嵌入式数据库;SQLite;arm-linux中图分类号:TP392文献标识码:A文章编号:1009-3044(2008)04-10600-04

TheMechanismandApplicationsofSQLiteTANGMin,SONGJie(TheComputerInstituteofAnhuiUniversity,Heifei230039,China)Abstract:Withthedevelopmentofembedded-computingtechnology,manyembeddedsystemsdeployembeddeddatabase.Thebasiccharacteristicoftheembeddeddatabaseisfirstlypresented.Anexcellentembeddeddatabase-SQLiteissecondlytalked.Includingthedis-tinctivefeaturesandthearchitectureofit,howtouseSQLiteisthirdlydescribed.Theapplicationdeveloping,crosscompilingandportinginarm-linuxplatformarealsointroduced.

Keywords:embeddeddatabase;SQLite;arm-linux

1引言

嵌入式技术正在提供人们越来越多有趣而新颖的服务,在许多的嵌入式系统开发中都要用到数据库,比如电信交换机、消费类电子、办公自动化设备等高科技产品。SQLite是由D.RichardHipp开发的轻量级嵌入式数据库,它是世界上应用最广泛的嵌入式数据之一。它在国内的应用也越来越多,但目前国内介绍SQLite的文章很少,本文较详细地介绍了SQLite的特点,基本原理和使用方法。SQLite是开放源代码的,可以免费下载。下载的官方网址为www.sqlite.org,当前最新版本是3.5.6。

2嵌入式数据库

嵌入式数据库通常是与嵌入式操作系统及具体的应用集成在一起,无需独立运行数据库引擎,由程序直接调用相应的API就可实现对数据的存取操作。嵌入式系统的开发环境决定了其数据库的特点。2.1体积适当

由于嵌入式系统自身的特点,对数据的存储和程序的运行都有较强的空间限制,所以嵌入式数据库首先应该保障的就是适当的体积。进一步来说就是占用尽量少的ROM、RAM及CPU的资源。2.2功能齐备

嵌入式系统开发中,用户需求决定了需要一个大小适中、功能齐备的数据库来实现数据管理,这就使得开发人员要采用一个能够提供完备开发文档且易于开发的数据库技术。此外,在嵌入式设备中,数据库的管理对用户来说是透明的,这就要求此数据库能够自动完成启动初始化、日志管理、数据压缩、备份、数据恢复等功能;而且嵌入式设备经常有不可预料的硬复位,这就需要此数据库有高度的健壮性。2.3可移植性

嵌入式系统的平台种类繁多,因此嵌入式数据库应有一定的可移植性,以适用于不同的软硬件平台。

收稿日期:2008-01-12作者简介:唐敏(1976-),女,安徽大学计算机学院计算机应用专业硕士研究生,研究方向:嵌入式,嵌入式数据库技术;宋杰(1966-),男,安徽大学计算机学院副教授,博士学位,研究方向:嵌入式,生物信息学。

600本栏目责任编辑:闻翔军数据库与信息管理2.4代码开源

开源的代码在产品的开发过程中不仅可以减少开发成本,更重要的是为后期的维护完善和稳定运行都提供了最为彻底的解决方法。

3SQLite的技术特性

SQLite是一个轻量级的关系数据库,具有三级模式的结构体系,即用户模式、逻辑模式和存储模式。相对于传统数据库,

SQLite具有更好的的实时性、系统开销小、底层控制能力强。SQLite能够高效地利用嵌入式系统的有限资源,提高数据的存取速度,

增强系统的安全性,并具有如下特点:(1)零配置。SQLite在使用前不需要安装设置,不需要进程来启动、停止或配置,不需要管理员去创建新数据库或分配用户权限,在系统崩溃或失电之后自动恢复。(2)对标准SQL的支持。SQLite虽然简单,但其内嵌的SQL在很大程度上实现了ANSISQL92标准。特别是SQLite支持视图,触发器,支持嵌套SQL;SQLite还具有事务处理功能,自动维护事务的完整性、原子性等特性,支持实体完整性和参照完整性,充分满足了嵌入式应用开发的需求。(3)无服务器。大多数SQL数据库引擎是作为一个单独的服务器进程被执行。访问数据库的程序使用某种内部进程通信(典型的是TCP/IP)与服务器通信,完成发送请求到服务器和接收查询结果的工作。SQLite不采用这种工作方式。使用SQLite时,访问数据库的程序直接从磁盘上的数据库文件读写。没有中间的服务器进程。(4)精简性。当尺寸优化后,在不减少功能的情况下,整个SQLite库小于225KB。如果在编译时去掉一些不需要的特性,库的大小能被减小到170KB。IBM发行的CloudScape数据库引擎是2MB的罐文件,压缩后仍比SQLite大10倍;Firefox宣称其客户订制的库只有350KB,但是不包括数据库引擎;来自Sleepycat的BerkeleyDB库是450KB,并且删去了SQL支持。通过比较可知:SQLite是非常小的。(5)简单的访问。一个SQLite数据库是一个单独的普通磁盘文件,能够被定位在路径层次的任何地方。如果SQLite能读写磁盘文件,则它也能访问数据库。大多数SQL数据库引擎趋向于把数据存为一个大的文件集合,通常这些文件在一个标准的定位中,只有数据库引擎本身能访问它。(6)可变长度的记录。一般的SQL数据库引擎在表中为每一个记录分配一个固定的磁盘空间数,SQLite只使用一个记录中实际存储信息的磁盘空间数。显然,这会使数据库非常小,同时,由于在磁盘上移动的信息很少,也使数据库很快。(7)数据类型SQLite最大的特点在于其数据类型为无数据类型(typelessness)。这意味着可以保存任何类型的数据到所想要保存的任何表的任

何列中,无论这列声明的数据类型是什么。虽然在生成表结构的时候,要声明每个域的数据类型,但SQLite并不做任何检查。开发人员要靠自己的程序来控制输入与读出数据的类型。这里有一个例外,就是当主键为整型值时,如果要插入一个非整型值时会产生异常。(8)使用虚拟机在SQLite中使用虚拟机对于库的发展有很大的好处。虚拟机在前端与后端之间准备了一个好的连接。虚拟机对于它所编译的每一个声明使开发者看起来清楚且简单易读的,这在调试时有帮助。依赖于它的编译,SQLite也有跟踪虚拟机执行打印执行指令和它执行结果的能力。(9)可靠性较好。SQLite有良好注释的源代码,并且有着98%以上的测试覆盖率,有一支专业技术队伍对系统进行测试与维护工作。并且配备独立的命令行程序方便管理数据库。

4SQLite的体系结构

SQLite数据库是D.RichardHipp用C语言编写的开源嵌入式数据库,支持的数据库大小为2TB,全部源代码约3万行。SQLite采用模块化的设计,主要由4个部分组成:内核(Core)、SQL编译器(SQLCompiler)、后端(Backend)以及附件(Accessories)。内部结构如图1所示。SQLite的接口是一些已经编写好的C库,即使使用不同语言的API,在底层仍然使用C库执行。SQL语句通过接口进入到高效

的SQL编译器,由标记处理器(tokenizer)分解成柠檬分析器(parser)可以识别的各个标志符,然后由分析器重新组合标志符并调用代码生成器(codegenerator)生成虚拟机器码,交由虚拟机(virtualmachine)去执行,最终完成SQL语句指定的任务。虚拟机是SQLite内部结构的核心,不仅完成与数据操作相关的全部操作,而且还是客户和存储之间信息进行交换的中间单元。数据库按照B树(B-tree)的形式存储在磁盘上,通过可调整的页面缓冲(pager)获得对数据的快速查找和存储。为了方便移植,SQLite使用一个抽象层接

口(OSinterface)与不同操作系统进行对接。

5SQLite的开发技术

5.1命令行程序的使用

在http://www.SQLite.org/download.html页中有PrecompiledBinariesForWindows(在此我们以Windows操作系统为例)这个标题下面有sqlite-3_x_y.zip(x,y表示小版本号)后面的注释为Acommand-lineprogramforaccessingandmodifingsqlitedatabases。下载并解压sqlite-3_x_y.zip文件,解压后的文件是一个sqlite3.exe文件,将该可执行文件放到安装操作系统的目录下既可。运行cmd命

601

相关文档
最新文档