SQLite
出典: フリー百科事典『ウィキペディア(Wikipedia)』
開発元: | D. Richard Hipp |
---|---|
最新版: | 3.3.8 / 2006年10月9日 |
対応OS: | クロスプラットフォーム |
種別: | Development Library |
ライセンス: | パブリックドメイン |
公式サイト: | SQLite |
SQLite はMySQLやPostgreSQLと同じDBMS(データベース管理ソフト)であるが、サーバとしてではなくアプリケーションに組み込まれて利用される軽量データベースである。 一般的なRDBMSに比べて大規模な仕事には不向きだが、中小規模ならば速度も遜色はない。 また、APIは単純で単にライブラリを呼び出すだけであり、データの保存には単一のファイルしか使用しない事も特徴である。Ver3.3.8 から、全文検索の FTS1モジュールがサポートされた。
目次 |
[編集] 特徴
- SQL92の機能の多くを実装
- ライセンスは、パブリックドメイン
- サーバではなくライブラリ
- ライブラリは250KB程度の小さなフットプリント
- Cランタイム以外の別途ライブラリを必要としない。
- 管理ツールによるセットアップやメンテナンスを必要としない。
- コマンドラインツールも使える。
- バイトオーダに依存しない、可搬性のある単一ファイル
- 最大2テラバイトまで
- ファイルを使わない、揮発性のインメモリ・データベースとしても利用可能
- データ型を指定する必要がない
- サポートしている型は、Integer/Real/Text/BLOBのみ。
- Unicodeのサポート
- BLOBはメモリの許す限り
- ROWIDを持っている。(しかし、外部制約キーの仕組みがない。)
- トランザクションのサポート
- スレッドセーフである。(バイナリによる配布ではリコンパイルが必要な場合もあり)
- ビューのサポート
- トリガーのサポート
- C言語を使って関数を追加できる
- TCLバインディングを配布キットに標準添付している
- PHP5、Python2.5で標準サポート
- その他、C, C++, Perl, Ruby, Python, Delphiなど多数の言語用のバインディング
- 全文検索の FTS1モジュールがサポートされ、SQL文で全文検索インデックスに対して検索できる。
[編集] 概要
SQLiteは、サーバー / クライアントの形式を取らず、ユーザーの概念もないため、利用者は、データの取り扱いをプログラムに依存することによって、その存在を意識することなく利用できる。 そのうえ、データベースは単一ファイルであり、ファイル間の相互参照等を持たず、マシンのバイトオーダにも依存しないため、別マシンにデータを持ち運ぶ、といった可搬性が高く、利用者にとって扱いやすい形式となっている。
ソフトウェア開発においては、サーバ等を必要とせず、アプリケーションに組み込んだsqliteのライブラリを呼び出してSQLを実行するだけの簡素なものであるため、ファイルの入出力に近い感覚で取り扱える。 PHPやPythonなど標準ライブラリに含まれている場合もある。 生成されるファイルの権限は、実行ユーザーの権限に依存することになる。 マルチスレッドからのデータベースのアクセスが可能であり、簡素ながらも一時的なアーカイブログ・ファイルを作成することでACID特性を標準でサポートしている。
SQLの構文はSQL標準に準拠しており乗り換えもさほど難しくない。 ブログや掲示板などでは、データベースの選択肢の一つとして利用できることもある。 移行時の注意点としては、カラムに指定するデータ型は名目的なものであり、制約として機能しない点などがある。 SQLiteでは(ROWIDを除き)カラムに宣言した型にかかわらず、どのようなデータも格納できる。 また、カラムの長さも常に可変であり、長さや精度の指定は意味をもたない。 レコードサイズも可変であり、格納するに必要な最小限のディスクスペースのみ、必要なだけ消費する。
データの格納という点では従来型のデータベースと大きな違いがみられるが、パフォーマンスは、一般的な用途にかぎれば、むしろ十分に「速い」とされている。
「sqlite」というコマンドラインユーティリティーも付属しており、CUIでSQLiteのデータを操作できる。このユーティリティは標準入出力を使うので、シェルスクリプトなどでバッチ処理を行うことも出来る。
[編集] 書籍
- 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