PL EN DE FR ES IT PT RU JA ZH NL UK TR KO CS SV AR VI FA ID HU RO NO FI

SQLite

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

SQLiteは「エスキューライト[2]/エスキューエライト[3]」と発音される。開発者のリチャード・ヒップ(通称: Hipp)は「エスキューエルアイト(/ˌɛsˌkjuːˌɛlˈaɪt/)[4][5][6]」と発音している。パブリックドメインの軽量な関係データベース管理システム(RDBMS)である。

概要

アプリケーションに組み込んで利用するデータベース[7]クライアントサーバシステムとは異なり、単一のライブラリファイルからAPIを利用可能。

解説

SQLiteとは[8]

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

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

特徴

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

  • 著作権を放棄しパブリックドメインに帰している
  • SQL92の機能の多くを実装
  • データ型(3.50.x現在)
  • トランザクション、ビュー、トリガーのサポート
  • 全文検索モジュールのサポート(バージョン3.9.0からFTS5)
  • C言語で関数を追加可能
  • Android端末の標準ライブラリとして採用

ウィキブックスも参照のこと。

開発と展開

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

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

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

歴史

Hipp2000年春、アメリカ海軍との契約に基づき勤務していたジェネラル・ダイナミクス社に在籍中、SQLiteを設計した。彼はミサイル駆逐艦のダメージコントロールシステムに使用されるソフトウェアを設計しており、これは当初HP-UXInformixデータベースをバックエンドとして利用していた。SQLiteはTcl拡張機能として開発が始まった。

2000年8月、SQLiteのバージョン1.0がリリースされた。ストレージはgdbm(GNU Database Manager)をベースにしていた。

2001年9月、SQLite 2.0はgdbmをカスタムBツリー実装に置き換え、トランザクション機能を追加した。

2001年から2002年頃、最初期の大規模な開発と利用はモトローラの携帯電話であった。その後ノキアSymbianへの採用が決まって大口顧客になると、携帯電話メーカーからの支持も高まった[13]

2004年6月、AOLの資金提供を受けて[14]、SQLite 3.0では国際化、マニフェスト型付け、およびその他の主要な改良点を追加した(AOLは当時プロバイダへの加入を促すCD-ROMを配布しており、そのプログラムにSQLiteを組み込んでいた[15])。

2007年12月、Mozilla FoundationやSymbianと共同でSQLiteコンソーシアムを設立した[16]。同時期にAndroidの標準ライブラリに採用されたことや、同じくiPhoneでも採用されるなどしたことで、スマートフォンの爆発的な普及とともにSQLiteも広がった[17]

2011年、HippはSQLiteにNoSQLインターフェースを追加する計画を発表し、ドキュメント指向データベース向けに設計されたSQLの機能的スーパーセットであるUnQLも発表した[18]

テストと信頼性

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

SQLiteには、オリジナルのパブリックドメインTCLテスト、独自のC言語TH3テストスイート、SQLiteを他のSQLデータベースと比較するSQLロジックテスト、そして独自のファジングエンジンdbsqlfuzzの4つの異なるテストハーネスがある。公式サイトでは、こうした徹底的なテストを行うことによってミッションクリティカルな利用にも耐え得るとしている[20]。実際SQLiteはデータセットの長期保存に推奨される4つの形式の1つとしてアメリカ議会図書館が使用を承認している[21]

脚注

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

書籍

外部リンク