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

SQLite
開発元 リチャード・ヒップ
初版 2000年8月17日 (25年前) (2000-08-17)
最新版 3.50.4 ウィキデータを編集 - 2025年7月30日 (2か月前) [±]
リポジトリ ウィキデータを編集
プログラミング
言語
C
対応OS クロスプラットフォーム
種別 関係データベース管理システム
ライセンス パブリックドメイン
公式サイト sqlite.org ウィキデータを編集
テンプレートを表示

概要

編集

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

開発と展開

編集

SQLiteのコードは同じくHippが開発したFossilでホストされている。Fossilは、非リレーショナルデータベース形式のSQLiteをローカルキャッシュとして使用し、SQLiteのSQLを実装言語として使用する分散バージョン管理システムである。

SQLiteはパブリックドメインとして著作権を放棄する一方、「オープンコントリビューション」ではないため、誰でも開発に参加することはできない。公式ウェブサイトには「このプロジェクトは、貢献をパブリックドメインに捧げる宣誓供述書を提出していない人からのパッチは受け付けない」と記載するとともに、プロジェクト創設者らは、行動規範の代わりに聖ベネディクトの戒律に基づく倫理規定を採用している[7]

SQLiteの配布物には、 sqlite3 と呼ばれるスタンドアロンのコマンドライン シェルプログラムが付属している[8]。このプログラムを使用して、データベースの作成、テーブルの定義、行の挿入と変更、クエリの実行、SQLiteデータベースファイルの管理を行うことができる。また、SQLiteライブラリを使用するアプリケーションを作成するためのサンプルとしても役立つよう設計されている。

テストと信頼性

編集

SQLiteは、各リリースの前に自動回帰テストを実施しており、その一環として200万以上のテストが実施されている。SQLiteライブラリのソースコードは約156,000行あるが、すべてのテスト用コードを合わせると9,200万行にななる[9]。SQLiteのテストでは、ライブラリの機能性をテストするだけでなく、電源喪失やI/Oエラーなどの様々な例外的なシナリオをシミュレートする。2009年8月10日のSQLite 3.6.17リリース以降、SQLiteリリースはコードカバレッジの構成要素の一つであるブランチテストカバレッジが100%となっている。

SQLiteには、オリジナルのパブリックドメインTCLテスト、独自のC言語TH3テストスイート、SQLiteを他のSQLデータベースと比較するSQLロジックテスト、そして独自のファジングエンジンdbsqlfuzzの4つの異なるテストハーネスがある。公式サイトでは、こうした徹底的なテストを行うことによってミッションクリティカルな利用にも耐え得るとしている[10]

特徴

編集
  • 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で標準サポート
  • その他、CC++DCurlPerlRubyDelphiなど多数のプログラミング言語用のバインディング
  • 全文検索のFTS1モジュールがサポートされ、SQL文で全文検索インデックスに対して検索できる
  • Android端末の標準ライブラリとして採用されている

解説

編集

SQLiteとは?[11]

SQLiteは、小型で高速、自己完結型、高信頼性、フル機能を備えたSQLデータベースエンジンを実装したC言語ライブラリです。SQLiteは世界で最も利用されているデータベースエンジンです。SQLiteはすべての携帯電話とほとんどのコンピュータに組み込まれており、人々が毎日使用する無数のアプリケーションにもバンドルされています。

SQLiteを組み込んだアプリケーションの一例

ストレージに互換性があれば、データベースインスタンスを格納したファイルはWindowsLinux等で共用可能である。一時的な利用ならばインメモリデータベースを割り当てることが出来る。ストレージまでネイティブコードで直接実行し、間になんらかのプロトコルやプロセス間通信を伴わないことにより、単一のトランザクション内におけるレイテンシをある程度削減することに成功している。一度トランザクションを開始するとストレージはロックされ、トランザクション中のセッションはキャッシュを有効利用して動作するため、高速にデータベースにアクセスすることができる。動的リンク静的リンク共に対応しており、(3.50.x現在)静的リンクで実行ファイルを生成しても、おおむね700KB程度のフットプリントで、充実したSQLステートメントと束縛のないデータ型を利用することができる。

SQLiteのデータ型(3.50.x現在)

ウィキブックスには、より多くの具体例が記載されています。

管理ツール

編集
  • 「Navicat for SQLite」はデータの編集やSQLクエリ、データモデリングのツールを備え、データ転送、インポート/エクスポート、データの同期、レポートなどの機能が提供されている。
  • DB Browser for SQLite Windows, Mac OS, Linux, FreeBSD に対応したGUI管理ツール。ライセンスは Mozilla Public License Version 2。

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

脚注

編集
  1. ^ SQLiteの意味・解説”. 2025年10月16日閲覧。
  2. ^ An Introduction to SQLite”. 2014年6月20日閲覧。
  3. ^ Why SQLite succeeded as a database with Richard Hipp, creator of SQLite (The Changelog #201)” (英語). Changelog. 2021年7月4日閲覧。
  4. ^ (日本語) An Introduction to SQLite, https://www.youtube.com/watch?v=f428dSRkTs4 2021年7月4日閲覧。 
  5. ^ Bell, Adam Gordon. “The Untold Story of SQLite” (英語). CoRecursive Podcast. 2021年7月4日閲覧。
  6. ^ Bill Lubanovic 著『入門Python3』、斉藤康毅 監訳 ・長尾高弘 訳、株式会社オライリー・ジャパン発行、オーム社 発売、2017年2月3日 初版 第6刷、246ページ
  7. ^ Code Of Ethics”. sqlite.org. 2025年10月13日閲覧。
  8. ^ Command Line Shell For SQLite”. sqlite.org. 2025年10月13日閲覧。
  9. ^ How SQLite Is Tested”. sqlite.org. 2025年10月13日閲覧。
  10. ^ How SQLite Is Tested”. sqlite.org. 2025年10月13日閲覧。
  11. ^ What Is SQLite?”. SQLite Consortium. 2025年9月15日閲覧。
  12. ^ (Linux)/home/$USER/.mozilla/firefox/等の個人設定フォルダ以下に拡張子.sqliteファイルがあればSQLiteを使用
  13. ^ (Linux)/home/$USER/.thunderbird/等の個人設定フォルダ以下に拡張子.sqliteのファイルがあればSQLiteを使用

関連項目

編集

書籍

編集

外部リンク

編集