Android SQLite 数据库探索(一)— SQLite 简介

一、什么是 SQLite?

SQLite 是一个遵守 ACID(即原子性、一致性、持久性、隔离性)的关系数据库管理系统。与许多其他数据库管理系统不同,SQLite 不是一个 C/S 结构的数据库引擎,而是被集成在用户程序中。

应用程序经由编程语言内的直接 API 调用来使用 SQLite 的功能,减少数据库访问上的延迟,因为,在一个单一进程中的函数调用比跨进程通信更有效率。

  • SQLite 采用在写入数据时将整个数据库文件加锁的简单设计,尽管写操作只能串行进行,但 SQLite 的读操作可以多任务同时进行。

  • SQLite 不进行类型检查,可以把字符串插入到整数列中。

  • SQLite 的 ALTER TABLE 功能有所限制,只能添加和重命名列,不能修改或删除列。

1. SQLite 的主要优点如下:

  • 零配置,无需安装和配置;

  • 储存在单一磁盘文件中的一个完整的数据库;

  • 数据库文件可以在不同字节顺序的机器间自由共享;

  • 支持数据库大小至 2TB;

  • 足够小,全部源代码约 3 万行 C 代码,250KB;

  • 比目前流行的大多数数据库对数据的操作要快;

  • 开源。

二、SQLite 的设计

SQLite 数据库采用模块化设计,由 8 个独立的模块构成。这些模块被分成两个部分,分别为前端解析系统和后端引擎。

前端解析系统负责将处理前端预处理应用程序传递过来的 SQL 语句和 SQLite 命令,对获取的编码分析,优化,并转换为后端能够执行的 SQLite 内部字节编码。

1. SQLite 前端解析系统

前端解析系统可分为 3 个模块:

1. 词法分析器(Tokenizer)

2. 语法分析器(Parser)

3. 代码生成器(Code Generator)

2. SQLite 后端引擎

后端是用来解释字节编码程序的引擎,该引擎做的才是真正的数据库处理工作。它主要由 3 个模块组成:

1. 虚拟机(VM)
VM 模块是一个内部字节编码语言的解释器,它通过执行字节编码来实现 SQL 语句的工作。它是数据库中数据的最终操作者。

2. B/B+树

3. 页面调度程序(pager)

    原文作者:Little丶Jerry
    原文地址: https://www.jianshu.com/p/027d434c408f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞