Sqlite   发布时间:2022-05-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQLite体系结构大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
sqlite主要由 7个构件子系统(也就是模块)组成,这些模块被分割为两个部分:前端解析系统和后端引擎。在下图给出了各个构件子系统和它们是怎样相互关联的框图

前端
前端预处理应用程序传递过来的sql语句和sqlite命令。对获取的编码分析,优化,并转换为后端能够执行的sqlite内部字节编码。前端可分为三个模块:
标示分析(Tokenizer)
将输入的sql语句分成标识符;
语法分析(Parser)
解析器分析通过标识器产生的标识分析语句的结构,并且得到一棵语法树。解析器同时也包含了重构语法树的优化器,因此能够找到一棵产生一个高效的字节编码程序的语法树。
代码生成器(Code Generator)
代码生成器遍历语法树,并且生成一个等价的字节编码程序
前端实现了 sqlite3_prepare API函数。
后端
后端是用来解释字节编码程序的引擎。该引擎做的才是真正的数据库处理工作。后端部分由四个模块组成:
虚拟机( VM)
VM模块是一个内部字节编码语言的解释器。它通过执行字节编码语句来实现 sql语句的工作。它是数据库中数据的最终的操作者。它把数据库看成表和索引的集合,而表和索引则是一系列的元组或者记录。
B/B+-树
B/B+树模块把每一个元组集组织进一个依次排好序的树状数据结构中,表和索引被分别置于单独的 B+和B树中。该模块帮助VM进行搜索,插入和删除树中的元组。它也帮助VM创建新的树和删除旧的树
页面调度程序( pager)
页面调度程序模块在原始文件的上层实现了一个面向页面的数据库文件抽象。它管理 B/B+树使用的内存内缓存(数据库页的),另外,他也管理文件的锁定,并用日志来实现事务的ACID属性。
操作系统交界面( system interface)
操作系统交界面模块提供了对应于不同本地操作系统的统一的交界面
后端实现了 slqite3_bind_*,sqlite3_step,sqlite3_column_*,sqlite3_reset和sqlite3_finalize API函数。

大佬总结

以上是大佬教程为你收集整理的SQLite体系结构全部内容,希望文章能够帮你解决SQLite体系结构所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:优化