SQLite

SQLite（エスキューライト、エスキューエライト、なお、作者のHippはエスキューエルアイト(/ˌɛsˌkjuːˌɛlˈaɪt/)と発音している）は、パブリックドメインの軽量な関係データベース管理システム (RDBMS) である。

概要 
サーバとしてではなくアプリケーションに組み込んで利用されるデータベースである。
一般的なRDBMSと違い、APIは単純にライブラリを呼び出すだけであり、データの保存に単一のファイルのみを使用することが特徴である。バージョン3.3.8からは全文検索のFTS1モジュールがサポートされた。その後 FTS2 - FTS3 と強化を続けバージョン3.7.4からはFTS4モジュールがサポートされている。

特徴 
 SQL92の機能の多くを実装
 著作権を放棄しパブリックドメインに帰している
 サーバではなくライブラリ
 ライブラリは数百KB程度のフットプリント
 Cランタイム以外の別途ライブラリを必要としない
 管理ツールによるセットアップやメンテナンスを必要としない
 コマンドラインツールも使える
 バイトオーダに依存しない（2.6.3以降）、可搬性のある単一ファイル
 最大128TiBまで
 ファイルを使わない、揮発性のインメモリデータベースとしても利用可能
 データ型を指定する必要がない
 サポートしている型は、Null/Integer/Real/Text/BLOBのみ
 Unicodeのサポート
 BLOBはメモリの許す限り
 ROWIDを持っている（ただし3.6.18以前は外部制約キーの仕組みがない）
 トランザクションのサポート
 スレッドセーフである（バイナリによる配布ではリコンパイルが必要な場合もある）
 ビューのサポート
 トリガーのサポート
 C言語を使って関数を追加できる
 Tclバインディングを配布キットに標準添付している
 PHP5、Python 2.5、Adobe AIRで標準サポート
 その他、C、C++、D、Curl、Perl、Ruby、Delphiなど多数のプログラミング言語用のバインディング
 全文検索のFTS1モジュールがサポートされ、SQL文で全文検索インデックスに対して検索できる
 Android端末の標準ライブラリとして採用されている

解説 
SQLiteは本体プログラムに対して、直接リンクしたライブラリもしくは共有ライブラリやダイナミックリンクライブラリの形で利用できる、組み込み型データベースエンジンである。その特徴として、おおむね600kb前後のフットプリントでフルセットのSQLステートメントと型束縛のないデータセットを利用することができる。データベースストレージに対するアクセスも内蔵しており、ファイル及びインメモリストレージに対応している。ファイルを共有することで複数のアプリケーションがデータベースインスタンスを共有することも可能であり、サーバ・クライアントモデルではないアプリケーションローカルで使用するデータベースエンジンとしては合理的な設計となっている。

SQLiteのもう一つの特徴は、バイトオーダーに依存しない、アーキテクチャ非依存のストレージを採用していることである。このため、データベースインスタンスを格納したストレージとなったファイルは再利用性が高い。ストレージバージョンにさえ注意を払えば、アプリケーションからストレージを取り出し、別のOSやアーキテクチャで動作している別のアプリケーションにデータを変換することなく移すことができる。

ストレージまでネイティブコードで直接実行し、間になんらかのプロトコルやプロセス間通信を伴わないことにより、単一のトランザクション内におけるレイテンシをある程度削減することに成功している。一度トランザクションを開始するとストレージはロックされ、トランザクション中のセッションはキャッシュを有効利用して動作するため、高速にデータベースにアクセスすることができる。これは応答性が重要な、かつ多数のトランザクションが並行しないような規模のアプリケーションでは重要な要素となり、SQLiteをサーバとの中間にキャッシュとして採用する事例や、アプリケーション組み込みデータベースエンジンとしての採用を促す理由ともなっている。

標準で搭載しているデータセットの型は整数型 (INTEGER)、文字列型 (TEXT)、無制限スカラ型 (BLOB) の3種類である。

後述のCUIベースの管理ツールを標準で備える他、複数のGUIベース管理ソフトウエアが存在する。またストレージ仕様がアーキテクチャに依存しないため、管理ツールの直接実行が難しいシステム（組み込みソフトウエア開発等）においても、ストレージを取り出してWindowsマシン等でデータを確認したりSQLステートメントを実行することが可能である。

管理ツール 
 「sqlite」または「sqlite3」というコマンドラインユーティリティーが付属しており、CUIでSQLiteのデータを操作できる。
 「Navicat for SQLite」はデータの編集やSQLクエリ、データモデリングのツールを備え、データ転送、インポート/エクスポート、データの同期、レポートなどの機能が提供されている。
 DB Browser for SQLite Windows, Mac OS, Linux, FreeBSD に対応したGUI管理ツール。ライセンスは Mozilla Public License Version 2。

ODBC 
SQLiteのODBCドライバがサードパーティーから提供されている。SQLite 2とSQLite 3のバージョンがあり、SQLite 2向けには、さらにUTF-8対応版がある。

脚注

関連項目 

 Apache Derby
 H2 Database

書籍 
 The Definitive Guide to SQLite 2006/06/19, ISBN 1-59059-673-0
 SQLite 入門 2005/09, ISBN 4-7981-0943-6
 PHP+SQLite実践サンプルブック 2005/07, ISBN 4-88337-429-7
 改訂版PHPポケットリファレンス 2005/09, ISBN 4-7741-2502-4
 SQLite 入門 第2版 2009/05, ISBN 978-4-7981-1944-1
 SQLiteポケットリファレンス 2010/10, ISBN 978-4-7741-4394-1
 Android UIデザイン＆データベースプログラミング 2011/06, ISBN 978-4-88337-761-9

外部リンク 
 
 SQLite ODBC Driver
 SQLite Developer home page
 SQLiteManager home page
 SQLiteSpy. Win32, Unicode.
 Database Master
 DaDaBIK Database Interfaces Kreator

データベース管理システム
ライブラリ (プログラミング)
パブリックドメイン
2000年のソフトウェア