SQLite Web Development

SQLite Web Development

SQLite はMySQLやPostgreSQLと同じデータベース管理システムであるが、サーバとしてではなくアプリケーションに組み込んで利用される軽量のデータベースである。 一般的な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++, Curl (プログラミング言語), Perl, Ruby, Delphiなど多数の言語用のバインディング
  • 全文検索の FTS1モジュールがサポートされ、SQL文で全文検索インデックスに対して検索できる