Inside SQLite Chapter 1.概览

整个文档翻译完成,见  http://download.csdn.net/detail/popvip44/9654234  


过去的几十年中涌现了许多数据库管理系统(DBMSs),例如DB-2, Informix, Ingres, MySQL, Oracle, SQL Server, Sybase等。SQLite近几年才加入到DBMS的大家庭中,并且在商业应用上取得了成功。2000年5月9日,SQLite首次发布。该数据库是一个具有以下特性的关系型数据库:

无需配置(Zero configuration)

在使用SQLite之前无需进行安装或者配置。数据库只需要很少的管理或者不需要管理,你可以在官方主页http://www.sqlite.org下载源代码,使用C语言编译器编译成库文件就可以使用了。

嵌入在应用中(Embeddable)

无需为SQLite维护一个单独的进程,SQLite是嵌入在应用程序中的。

为应用程序提供接口(Application interface)

SQLite为C语言应用程序提供SQL语言环境来操作数据库。这是一种调用级别的接口库(call-level interface library)。用户可以书写大段的SQL语句并把它们通过接口传递给SQLite。(除了使用SQL语言,其他的方式无法操作数据库)。这并不会对应用程序提出额外的预处理和编译要求,一个普通的C编译器就可以完成所有的工作。

事务功能(Transactional support)

SQLite具有事务功能,也即支持原子性,一致性,独立性和持久性(ACID)。当SQLite遇到系统崩溃和掉电的时候,无需用户手动修复数据库。当SQLite读取一个数据库时,如果数据库是错误的,SQLite将自动执行修复功能,修复过程对用户来说是透明的。

线程安全(Thead-safe)

SQLite是一个线程安全库,同一个进程中的多个线程可以同时进入一个或多个数据库。SQLite维护数据库级别的线程并发控制。

轻量级(Lightweight)

SQLite大小只有250KB,如果在编译源代码的时候去掉一些不必要的功能,SQLite还可以变得更小。SQLite可以运行在Linux, Windows, Mac OS X, OpenBSD和其他的一些操作系统上。

可定制(Customizable)

SQLite提供了一个完善的框架,用户可以通过这个框架定义和使用SQL函数、合计函数(aggregate function),排序函数。SQL也支持UTF-8和UTF-16标准编码格式。

跨平台(Cross-platform)

SQLite使你能够在平台之间移动数据库文件。例如:你可以在一台Linux X86机器上创建一个数据库文件,然后把数据库文件移动到一个ARM平台,该数据库文件依然有效。

SQLite与许多其他的现代SQL数据库不同,SQLite的首要设计目标是简洁,尽管这有时候会导致无法有效支持一些特性。但是维护、商业化、操作、管理、和在应用中嵌入SQLite非常简单。SQLite使用简单的技巧来实现ACID特性。

SQLite支持SQL-92标准的众多子标准和操作特性。你可以创建表、索引、触发器和视图,也可以通过INSERT、DELETE、UPDATE、SELECT来操作存储的信息,下表是SQLite3.3.6发布版支持的额外特性:

  • 部分地支持ALTER TABLE(重命名table,添加column)
  • UNIQUE,NOT NULL.CHECK约束
  • 子查询,包括关联子查询,INNER JOIN, LEFT OUTER JOIN, NATURAL JOIN, UNION, UNION ALL, INTERSECT, EXCEPT
  • 事务命令:BEGIN, COMMIT, ROLLBACK
  • SQLite命令,包括reindex, attach, detach, pragma

SQLite3.3.6发布版还不支持下面的SQL-92特性:

  • 外键约束
  • 许多ALTER TABLE特性
  • 一些触发器相关的特性
  • 更新一个VIEW
  • 授予权限(GRANT)和撤销权限(REVOKE)

SQLite把整个数据库存储在单个普通的本地文件中,该文件可以放置在本地文件系统的任一个路径下。任何一个有读/写该文件权限的用户都可以读/写该文件。SQLite使用一个独立的日志文件来保存事务回滚信息,当事务abort或者系统崩溃的时候,这些信息被用于修复数据库。Attach命令帮助事务在不同的数据库中同时工作。这些事务也是具有ACID特性的。Pragma命令使你可以更改SQLite库的行为。

SQLite允许多个应用同时进入同一个数据库,并通过事务管理来支持有限形式的并发访问。SQLite允许多个读事务同时存在,但是某时刻只能有一个写事务存在。

SQLite被广泛应用于底层到中层的数据库应用程序,例如网址服务器(SQLite平均每天支持100,000次访问,SQLite的开发团队表示SQLite平均每天可以支持1,000,000次访问)、移动电话、PDA、机顶盒、独立应用程序。你甚至可以把SQLite作为初级数据库课程的教材,因为源代码已经有了完善的注释和相关技术文档,而且SQLite是完全开源的,没有任何证书约束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值