SQLite

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
SQLite
SQLite370.svg
開発元 D. Richard Hipp
初版 2000年8月17日(15年前) (2000-08-17
最新版 3.13.0 - 2016年5月18日(2か月前) (2016-05-18[1][±]
プログラミング言語 C
対応OS クロスプラットフォーム
種別 関係データベース管理システム
ライセンス パブリックドメイン
公式サイト www.sqlite.org
テンプレートを表示

SQLite(エスキューライト[2][3]、エスキューエライト[4][5])は、パブリックドメインの軽量な関係データベース管理システム (RDBMS) である。

概要[編集]

サーバとしてではなくアプリケーションに組み込んで利用される軽量のデータベースである。 一般的なRDBMSに比べて大規模な仕事には不向きだが、中小規模ならば速度に遜色はない。 また、APIは単純にライブラリを呼び出すだけであり、データの保存に単一のファイルのみを使用することが特徴である。バージョン3.3.8からは全文検索のFTS1モジュールがサポートされた。その後 FTS2 - FTS3 と強化を続けバージョン3.7.4からはFTS4モジュールがサポートされている。

特徴[編集]

  • SQL92の機能の多くを実装
  • 著作権を放棄しパブリックドメインに帰している
  • サーバではなくライブラリ
    • ライブラリは数百KB程度のフットプリント
    • Cランタイム以外の別途ライブラリを必要としない
    • 管理ツールによるセットアップやメンテナンスを必要としない
    • コマンドラインツールも使える
  • バイトオーダに依存しない(2.6.3以降)、可搬性のある単一ファイル
  • データ型を指定する必要がない
    • サポートしている型は、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クエリ、データモデリングのツールを備え、データ転送、インポート/エクスポート、データの同期、レポートなどの機能が提供されている。

ODBC[編集]

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

書籍[編集]

脚注[編集]

  1. ^ Recent SQLite News” (2016年5月18日). 2016年5月18日閲覧。
  2. ^ SQLiteとは エスキューライト: - IT用語辞典バイナリ”. 2014年6月14日閲覧。
  3. ^ SQLite”. 2014年6月14日閲覧。
  4. ^ An Introduction to SQLite”. 2014年6月20日閲覧。
  5. ^ Ruby on Rails チュートリアル”. 2014年6月20日閲覧。

関連項目[編集]

外部リンク[編集]