コンテンツにスキップ

SQLite

出典: フリー百科事典『ウィキペディア(Wikipedia)』
SQLite
Image
SQLite3
開発元 リチャード・ヒップ
初版 2000年8月17日 (25年前) (2000-08-17)
最新版 3.51.3[1] ウィキデータを編集 - 2026年3月13日 (16日前) [±]
リポジトリ ウィキデータを編集
プログラミング
言語
C
対応OS クロスプラットフォーム
種別 関係データベース管理システム
ライセンス パブリックドメイン
公式サイト sqlite.org ウィキデータを編集
テンプレートを表示

SQLiteは、リチャード・ヒップ(通称: Hipp)により開発された、パブリックドメインの軽量なRDBMSである。クライアントサーバモデルと異なり、単一ライブラリファイルAPIを利用する。

概要

[編集]

SQLiteは、「エスキューライト[2]/エスキューエライト[3]」と発音する。Hippは「エスキューエルアイト(/ˌɛsˌkjuːˌɛlˈaɪt/)[4][5][6]」と発音している。

SQLiteとは(公式HPより翻訳)[7]

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

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

特徴

[編集]

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

  • データ型(3.50.x現在)
  • SQL92の機能の多くを実装。トランザクション、ビュー、トリガーのサポート
  • 全文検索モジュールのサポート(バージョン3.9.0からFTS5)
  • C言語で関数を追加可能

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

開発と展開

[編集]

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

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

SQLiteの配布物には、 sqlite3 と呼ばれるスタンドアロンのコマンドライン シェルプログラムが付属している[11]。このプログラムを使用して、データベースの作成、テーブルの定義、行の挿入と変更、クエリの実行、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への採用が決まって大口顧客になると、携帯電話メーカーからの支持も高まった[12]

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

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

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

テストと信頼性

[編集]

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

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

脚注

[編集]
  1. ^ SQLite Release 3.51.3 on 2026-03-13”. 2026年3月19日閲覧。
  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. ^ What Is SQLite?”. SQLite Consortium. 2025年9月15日閲覧。
  8. ^ (Linux)/home/$USER/.mozilla/firefox/等の個人設定フォルダ以下に拡張子.sqliteファイルがあればSQLiteを使用
  9. ^ (Linux)/home/$USER/.thunderbird/等の個人設定フォルダ以下に拡張子.sqliteのファイルがあればSQLiteを使用
  10. ^ Code Of Ethics”. sqlite.org. 2025年10月13日閲覧。
  11. ^ Command Line Shell For SQLite”. sqlite.org. 2025年10月13日閲覧。
  12. ^ Bell, Adam Gordon. “The Untold Story of SQLite” (英語). CoRecursive Podcast. 2025年11月5日閲覧。
  13. ^ SQLite Version 3 Overview”. www.sqlite.org. 2025年11月5日閲覧。
  14. ^ Bell, Adam Gordon. “The Untold Story of SQLite” (英語). CoRecursive Podcast. 2025年11月5日閲覧。
  15. ^ SQLite Consortium Launches With Mozilla And Symbian As Charter Members”. www.sqlite.org. 2025年11月5日閲覧。
  16. ^ Well-Known Users Of SQLite”. www.sqlite.org. 2025年11月5日閲覧。
  17. ^ Interview: Richard Hipp on UnQL, a New Query Language for Document Databases” (英語). InfoQ. 2025年11月5日閲覧。
  18. ^ How SQLite Is Tested”. sqlite.org. 2025年10月13日閲覧。
  19. ^ How SQLite Is Tested”. sqlite.org. 2025年10月13日閲覧。
  20. ^ LoC Recommended Storage Format”. sqlite.org. 2025年11月5日閲覧。

書籍

[編集]

外部リンク

[編集]