嵌入式数据库简介
嵌入式数据库简介
----SQLite
----SQLite
dongqiang@gmail.com
纲要
纲要
SQLite
SQLite
介绍
介绍
SQLite
SQLite
的发展
的发展
SQLite
SQLite
的优势
的优势
SQLite
SQLite
的缺憾
的缺憾
SQLite
SQLite
的内部结构
的内部结构
SQLite
SQLite
数据库的使用
数据库的使用
SQLite
SQLite
的命令行接口
的命令行接口
SQLite
SQLite
命令行使用
命令行使用
SQLite
SQLite
数据库的编程接口
数据库的编程接口
C/C++
C/C++
接口
接口
简单应用
简单应用
自定义简单函数
自定义简单函数
自定义聚合函数
自定义聚合函数
自定义排序函数
自定义排序函数
PERL
PERL
接口
接口
SQLite
SQLite
数据库在
数据库在
ASTRAL
ASTRAL
中的应用
中的应用
SQLite
SQLite
在多级关联中的应用
在多级关联中的应用
SQLite
SQLite
在
在
IPIS
IPIS
中的应用
中的应用
SQLite
SQLite
在
在
web
web
中的应用
中的应用
SQLite
SQLite
介绍
介绍
SQLite
SQLite
的发展
的发展
2000
2000
年由
年由
D.Richard Hipp
D.Richard Hipp
开始开
开始开
发
发
2001
2001
年发布
年发布
2.0v
2.0v
2004
2004
年发布
年发布
3.0v(
3.0v(
采用了不同的数
采用了不同的数
据文件格式以及编程接口
据文件格式以及编程接口
)
)
目标
目标
易于管理、操作、维护、自定义以
易于管理、操作、维护、自定义以
及提供易用的编程接口
及提供易用的编程接口
SQLite
SQLite
介绍
介绍
SQLite
SQLite
的优势
的优势
内存占用量小
内存占用量小
比
比
MySQL(2
MySQL(2
倍
倍
), PostgreSQL(20
), PostgreSQL(20
倍
倍
)
)
快
快
ACID
ACID
兼容
兼容
(
(
原子性,一致性,独立性
原子性,一致性,独立性
,
,
可持
可持
久性
久性
)
)
,支持视图,子查询,触发器
,支持视图,子查询,触发器
单个库文件中包含数据库引擎与接口
单个库文件中包含数据库引擎与接口
,
,
且其运
且其运
行不依赖其它库
行不依赖其它库
可以将数据放进单个文件
可以将数据放进单个文件
为
为
C/C++, Perl,PHP
C/C++, Perl,PHP
等应用提供了接口
等应用提供了接口
免费
免费
允许为
允许为
SQL
SQL
命令集动态添加自定义函数(简
命令集动态添加自定义函数(简
单函数及聚集函数),而无需重编
单函数及聚集函数),而无需重编
SQLite
SQLite
库
库
SQLite
SQLite
介绍
介绍
SQLite
SQLite
的 缺点
的 缺点
事务处理并发性
事务处理并发性
SQLite
SQLite
通过数据库级上的独占性和共享锁来实现独立事务处理,
通过数据库级上的独占性和共享锁来实现独立事务处理,
这意味着当多个进程或线程在同一时间可以从数据库读取数据,但
这意味着当多个进程或线程在同一时间可以从数据库读取数据,但
是只能有一个可以同时写入,在写入之前,必须获得独占锁,其它
是只能有一个可以同时写入,在写入之前,必须获得独占锁,其它
的读操作不允许发生。
的读操作不允许发生。
性能
性能
在创建索引
在创建索引
( CREATE INDEX)
( CREATE INDEX)
和删除表
和删除表
( DELTE TABLE)
( DELTE TABLE)
时
时
明显比其它数据库慢
明显比其它数据库慢
用户管理
用户管理
/
/
安全
安全
数据库的访问是基于操作系统对文件的控制来控制的,不能通
数据库的访问是基于操作系统对文件的控制来控制的,不能通
过用户来区分数据库中的不同数据库
过用户来区分数据库中的不同数据库
.
.
举例,将数据库文件去写权限,然后向其中插入或删除数据条
举例,将数据库文件去写权限,然后向其中插入或删除数据条
目
目
,
,
将提示写失败。但是不能通过数据库本身的来对权限进行设置。
将提示写失败。但是不能通过数据库本身的来对权限进行设置。
在网上已经有一些
在网上已经有一些
SQLite
SQLite
的安全问题的解决方案,但大多数是
的安全问题的解决方案,但大多数是
商业化的,有些提供在整个数据库上的加密,有些提供在数据级别
商业化的,有些提供在整个数据库上的加密,有些提供在数据级别
的加密。比如
的加密。比如
secure SQLite
secure SQLite
之类。
之类。