SQLiteとは、PHPと組み合わせて使用されているデータベース管理システム(DBMS)のひとつで、組み込み専用を特徴とするもののことである。同じくPHPと合わせて用いられる、MySQLやPostgreSQLといったクライアントサーバー型のDBMSとは異なり、DBMS サーバーの概念が存在しない。SQLiteは、いわばサーバーとクライアントとが一体となっている。そのためデータベースの内容はすべてローカルファイルに保存される。
SQLiteのメリットとしては、DBMS サーバーを必要としないために、DBMSが用意されていないレンタルサーバーでもSQLiteによってデータベースを用いたアプリケーションを作成できるということが挙げられる。(PHP 5がこれから普及することに伴い、SQLiteをサポートするレンタルサーバーも今後増えていくだろうと見込まれる)。加えて、扱いの要領がMySQLやPostgreSQLと変わらないために導入が簡単であるという利点もある。また、組み込み系のDBMSとしては数少ないトランザクション処理対応型であるDBMSであるという点も特徴的である。
その反面、SQLiteの短所としては、データがあくまでもローカルに保持されるために、複数のWebサーバーからアクセスを受けることができないという点が挙げられる。複数のWebサーバーで運用する場合、 SQLiteは適しているとは言えない。
| データベース: | PostgreSQL SQL SQL Server SQLite SQL Server 2005 Viper |
| トランザクション処理: | ACID特性 |
| 名前 | デフォルト | 変更の可否 | 変更履歴 |
|---|---|---|---|
| sqlite.assoc_case | 0 | PHP_INI_ALL | PHP 5.0.0 から利用可能です |
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/02/26 22:35 UTC 版)
| |
|
| |
|
| 開発元 | リチャード・ヒップ |
|---|---|
| 初版 | 2000年8月17日 |
| 最新版 | 3.51.2[1] |
| リポジトリ | |
| プログラミング 言語 |
C |
| 対応OS | クロスプラットフォーム |
| 種別 | 関係データベース管理システム |
| ライセンス | パブリックドメイン |
| 公式サイト | sqlite |
SQLiteは「エスキューライト[2]/エスキューエライト[3]」と発音される。開発者のリチャード・ヒップ(通称: Hipp)は「エスキューエルアイト(/ˌɛsˌkjuːˌɛlˈaɪt/)[4][5][6]」と発音している。パブリックドメインの軽量な関係データベース管理システム(RDBMS)である。
アプリケーションに組み込んで利用するデータベース[7]。クライアントサーバシステムとは異なり、単一のライブラリファイルからAPIを利用可能。
SQLiteとは[8]
SQLiteは、小型で高速、自己完結型、高信頼性、フル機能を備えたSQLデータベースエンジンを実装したC言語ライブラリです。SQLiteは世界で最も利用されているデータベースエンジンです。SQLiteはすべての携帯電話とほとんどのコンピュータに組み込まれており、人々が毎日使用する無数のアプリケーションにもバンドルされています。
SQLiteを組み込んだアプリケーションの一例
ストレージに互換性があれば、データベースインスタンスを格納したファイルはWindows/Linux等で共用可能。一時的な利用ならばインメモリデータベースを割り当てることも可能。ストレージまでプロトコルやプロセス間通信を用いずに直接ネイティブコードで実行することでトランザクション処理におけるレイテンシをある程度削減することに成功している。トランザクション処理を開始するとストレージはロックされセッションはキャッシュを有効利用して高速にデータベースにアクセスする。動的リンク/静的リンクに対応しており静的リンクで実行ファイルを生成しても、おおむね700KB程度(3.50.x現在)のフットプリントで充実したSQLステートメントと束縛のないデータ型を利用可能。
ウィキブックスも参照のこと。
SQLiteのコードは同じくHippが開発したFossilでホストされている。Fossilは、非リレーショナルデータベース形式のSQLiteをローカルキャッシュとして使用し、SQLiteのSQLを実装言語として使用する分散バージョン管理システムである。
SQLiteはパブリックドメインとして著作権を放棄する一方、「オープンコントリビューション」ではないため、誰でも開発に参加することはできない。公式ウェブサイトには「このプロジェクトは、貢献をパブリックドメインに捧げる宣誓供述書を提出していない人からのパッチは受け付けない」と記載するとともに、プロジェクト創設者らは、行動規範の代わりに聖ベネディクトの戒律に基づく倫理規定を採用している[11]。
SQLiteの配布物には、 sqlite3 と呼ばれるスタンドアロンのコマンドライン シェルプログラムが付属している[12]。このプログラムを使用して、データベースの作成、テーブルの定義、行の挿入と変更、クエリの実行、SQLiteデータベースファイルの管理を行うことができる。また、SQLiteライブラリを使用するアプリケーションを作成するためのサンプルとしても役立つよう設計されている。
Hippは2000年春、アメリカ海軍との契約に基づき勤務していたジェネラル・ダイナミクス社に在籍中、SQLiteを設計した。彼はミサイル駆逐艦のダメージコントロールシステムに使用されるソフトウェアを設計しており、これは当初HP-UXとInformixデータベースをバックエンドとして利用していた。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]。
固有名詞の分類