LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

SQLite:一个伪装成数据库的语言

admin
2025年1月6日 20:59 本文热度 49

SQLite是一个嵌入式的数据库,具有体积小、运行快、跨平台等优点,更关键的是,SQLite只有13万行左右。而传统的大型关系型数据库如Mysql、Oracle,代码行数超100多万行。

SQLite从2000年第一个版本发布到现在,已经运行在数亿设备上了,从本地应用、小型桌面应用,到移动设备应用(如 iOS、Android 应用),甚至在每一台电脑,在每一个浏览器之中都有它的身影。
为什么说SQLite是一个伪装成一门编程语言的数据库呢?

说来话长

要说清楚这个问题,我们需要了解它诞生的过程。
大概在1999年,软件工程师D. Richard Hipp正在为美国海军开发一款使用在导弹驱逐舰上的软件,数据库使用的是Informix。

Informix是一款功能强大的数据库,但有个十分恼火的问题是,Informix经常会崩溃连不上。不过军队里的长官可不知道什么tcp/ip协议、数据库等知识,只看到软件弹出的错误对话框,而这个对话框正是Hipp开发的。

作为一个拥有专业素的软件工程师,一个想法便在Hipp脑海中产生:既然Informix那么不稳定,那干脆把它替换掉吧。
于是,在2000年1月,Hipp开始和同事讨论关于开发一个简单的嵌入式的数据库。
Hipp想法很简单,作为一个运行在性能不高的机器上的程序,Informix数据库体积太大、无法安装,而且它是一个单独运行的进程,为什么不能直接从磁盘上存取数据呢?

故事转折

可是问题来了,Hipp并没有开发过数据库,甚至都不懂B树,需要用到的时候还得去翻看 The Art of Computer Programming(计算机程序设计艺术)。
这下就尴尬了。

不过好在Hipp有开发编译器的经验。

在Hipp看来,一条SQL的执行跟一条编程语言的执行的本质是一样的,都是对预定义的语法规则进行解释并执行。两者的区别是,编程语言最终是由计算机硬件执行,而SQL最终是由控制磁盘的程序去执行。
看过往期《从零开发一门编程语言系列》的同学,对编译器的开发过程十分熟悉了,其过程如下所示:
说干就干,Hipp先构建了一个SQL的解析器,接着把SQL语句转成了bytecode,最后构建一个bytecode执行器完成相关数据的操作。
不过Hipp并没有把它立即运行在舰载机程序上,而是先发布到网上,验证自己的想法和测试代码。
B-Tree模块:由B-Tree、页缓冲和操作系统接口组成。它们操作的是数据页,这些页具有相同的大小,就像一个个集装箱。B-Tree的主要功能就是索引,维护着页与页之间的关系,以便快速找到所需的数据。页缓冲主要作用是提高B-Tree与磁盘间的传递效率,我们知道,磁盘操作是计算机系统中操作最慢的事。           

耳熟能详

后来的故事大家都耳熟能详,大家看到一个数据库居然能运行在性能非常弱的掌机上,都大为惊叹。
一些大公司注意到了SQLite,首先是摩托罗拉,签订了第一笔8万美元的功能增强商业订单。接着巨头 AOL(美国在线)也打来了电话,要把SQLite放到CD里使用。甚至诺基亚也过来了,他们需要把 SQLite 放到 symbian os(塞班系统)。
不过最后让SQLite发言光大的,还是安卓,你在各类 app 里都能见到 .db 结尾的文件,就是它的数据。
很快,SQLite就像病毒一样,无处不在。


阅读原文:原文链接


该文章在 2025/1/7 11:39:56 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved