数据库服务器 SQLite 介绍
jopen
13年前
<p><img title="数据库服务器 SQLite 介绍" border="0" alt="数据库服务器 SQLite 介绍" src="https://simg.open-open.com/show/db166baff09019d12c1862a9eb70c829.gif" width="220" height="101" /></p> <p><strong>SQLite</strong>是遵守ACID的<span class="mw-redirect">关联式数据库</span>管理系统,它包含在一个相对小的C库中。它是<span class="new">D.RichardHipp</span>建立的公有领域项目。</p> <p>不像常见的<span class="new">客户-服务器</span>范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接<span class="mw-redirect">API</span>调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。</p> <h2><span class="mw-headline">特征</span></h2> <p>库实现了多数的SQL-92标准,包括<span class="new">事务</span>,就是代表<span class="new">原子性</span>、<span class="new">一致性</span>、<span class="new">隔离性</span>和<span class="new">持久性</span>的(ACID),触发器和多数的复杂查询。不进行<span class="new">类型检查</span>。你可以把字符串插入到整数列中。例如,某些用户发现这是使数据库更加有用的创新,特别是与无类型的脚本语言一起使用的时候。其他用户认为这是主要的缺点。</p> <p>多个<span class="mw-redirect">进程</span>或<span class="mw-redirect">线程</span>可以访问同一个数据而没有问题。可以并行的满足多个读访问。只有在其他访问当前不被服务的时候才能满足写访问;否则写访问失败并带有一个错误代码(也可以在可配置的超时过期之后自动的重试)。</p> <p>提供了叫做<tt>sqlite</tt>的一个独立程序用来查询和管理SQLite数据库文件。 它也充当写使用SQLite库的应用的一个例子。</p> <h2><span class="mw-headline">语言绑定</span></h2> <p>可以从C/C++程序中使用这个库,还可以获得对Tcl和一些其他脚本语言的绑定。</p> <p>在CPAN的<em>DBD::SQLite</em>上有一个Perl的<span class="new">DBI/DBD</span>模块,它不是到SQLite的接口,而是包括整个SQLite数据库引擎在其中并不需要任何额外的软件。</p> <p>还有一个Python模块叫做<span class="new">PySQLite</span>。</p> <p>PHP从PHP5.0开始包含了SQLite,但是自5.1版之后开始成为一个延伸函式库。SQLite能与PHP4一起工作但不包含在其中。</p> <p><span class="mw-redirect">Rails</span>2.0.3将缺省的数据库配置改为了SQLite 3</p> <h2><span class="mw-headline">SQLite管理客户端</span></h2> <p>SQLite亦可以作为桌面数据库使用,以下为第三方SQLite的<span class="mw-redirect">GUI</span>软件。例如,</p> <ul> <li>SQLiteMan,使用QT开发的一个SQLite客户端,支持多语言、跨平台。<span class="external text">SQLiteMan</span> </li> <li>SQLite Manager, 以 <span class="new">火狐浏览器的扩展</span>形式提供的SQLite客户端。 </li> <li><span class="new">SQLite Database Browser</span>, a graphical client to access SQLite databases </li> <li><span class="new">SqlPro SQL Client</span>, another graphical client to work with SQLite databases </li> </ul> <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1322528992171" target="_blank">http://www.open-open.com/lib/view/home/1322528992171</a></p>