sqlite データベースはインターネット環境のみならず、家電や携帯電話など組み込みデバイスの世界でも広く使われております。ここでは、sqlite 本家サイトで示している、「sqlite3データベースとは」という内容についてまとめてみました。
sqlite の特徴
サーバーを必要としていません
Serverless
MySql SQL Server、Oracleなどのクライアントサーバーシステムである、データの待ちうけや送り出しを担うサーバマシンとデータを表示するクライアントマ シンのようなシステム構成をsqlite は必要としていません。つまり、サーバーとクライアントを繋ぐある種のプロセス間通信 (通常は TCP/IP) が使われていないことになります。
組み込み SQL データベース エンジンです。
構成ファイルを使用しません
Zero-Configuration
クライアントサーバシステムのような、管理者権限や稼動させる為のセットアップ手順を必要としません。シズテムに導入されていれば、一般的なアプリケーションと同様に、エグゼクティブファイルを立ち上げれば動きます。
1データベース1ファイルです
Single Database File
一つのデータベースの内容は一つのファイルに収められます。ディレクトリ階層のどこにでも配置できる単一の通常のディスク ファイルです。
データベース ファイルは、USB メモリ スティックに簡単にコピーしたり、電子メールで送信して共有したりできます。
クライアントマシンにsqliteがインストールされていれば、手軽にデータベースにアクセスできます。
安定性と下位互換性を備えたクロスプラットフォームのファイル形式です
Stable Cross-Platform Database File
アーキテクチャーの相違を選ばず、32 ビットか 64 ビットか、バイトオーダー(ビッグエンディアン・リトルエンディアン)問わず、使用できます。
sqliteの旧バージョンのファイルも読み書きできます。
軽量データベースです
Compact
SQLite ライブラリ全体のサイズは他のデータベースエンジンに比べて、小さく設計されております。
パフォーマンスは通常、メモリが少ない環境でも非常に優れています。
柔軟に型付けされているデータ型として入力できる
Manifest typing
テーブル生成時に列に対してデータ型を設定できますが、設定しなくてもデータ型指定なしのテーブルを作成することが出来ます。
これは、「型はステートメントに対してではなく、実行時の値に対して付与される」ということからきています。
型設定情報の書かれたマニュフェストによる入力により、データ型は動的に決定されます。
データは可変長レコードとして格納される
Variable-length records
固定長レコードと比べて、可変長レーコードによるデータの格納は、ディスク領域の消費を抑え、実行速度の向上につながります。
ソースコードが読みやすい
Readable source code
ステートメントが仮想マシン コードとしてコンパイルされる
SQL statements compile into virtual machine code
コードを広く自由に使用できる
Public domain
コア ソース コードのどの部分についても、著作権の主張は行われません。著作権法が適用されない。
但し、ドキュメンテーションとテスト コードは別の問題です。ドキュメンテーションとテスト ロジックの一部のセクションは、オープン ソース ライセンスによって管理されています。
拡張機能を備えています
SQL language extensions
データベースとして sqlite3 を選択したほうが適切なケース
- 管理操作が必要ない組み込みデバイスとインターネット活用した機器への導入
- デスクトップ アプリケーションのディスク上のファイル形式として利用
- 低から中程度のトラフィック(1 日あたり 10 万ヒット程度未満)の Web サイト構築
- sqlite3 コマンドライン シェルやC,R,Pytonで書かれたsqliteアクセスプログラムによるデータ分析
- エンタープライズ RDBMS からの関連コンテンツのキャッシュとして
- クライアント/サーバーシステムにおいて、サーバーがユーザーごとに個別の SQLite データベースを持たせるケース
- クロスプラットフォーム形式の単一のコンパクトなファイルを利用したデーター転送
- ZIP アーカイブまたは Tarball の代わりとして使用
- プログラム独自のファイル形式への置き換えが容易である
- 大量のデータをプログラムが処理するのに、選別やソートし、データを一時保管する為に利用する
- エンタープライズデータベースのデモやテストを行う為の代わりとして
- SQL の教育に使用
- 新しい実験的なデータベース言語の機能やアイデアのプロトタイプの作成
sqlite以外のクライアントサーバーシステムを利用した方が良いケース
- ネットワーク経由で同じデータベースに SQL を送信するクライアント プログラムが多数ある場合
- Web サイトの書き込みが集中すし、ビジーとなり、複数のサーバーが必要な場合
- ビッグデータ収集のような非常に大きなデータセット(sqliteでは281 テラバイトまでのサイズ制限)を有する。
- 高性能の同時実行性を求められるアプリケーション利用
インストール・導入
ここでは、コマンドラインでの操作を想定しています。
コマンドラインシェルの利用
sqlite 本家サイトより最新バージョンをダウンロードできます。

Windowsの場合は以下のファイルをダウンロードする。

プログラミン言語を使ってアプリケーションとして利用
php Manual SQLITE3
python s
qlite3
— SQLite データベースに対する DB-API 2.0 インターフェース
javascript nodejs node-sqlite3
java sqlite-jdbcドライバー
go go-sqlite3
c c++ 上記のsqliteダウンロードページよりSorce Codeのファイルをダウンロードします。コンパイルするには、How To Compile SQLiteページを参照していただきたい。ただし、c++コンパイラーが必要となる。各種Linuxディストリビューションにおいてsqliteバイナリーが配布されているので、それを使った方が簡単である。