マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】SQLite

【OSS情報アーカイブ】SQLite

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「SQLite」とは

「SQLite」基本情報

■概要

SQLite(エスキューライト)とは、軽量コンパクトなリレーショナルデータベースシステムです。主に「組み込み用途」や「小規模システムのデータストア」として利用されています。

■基本説明

SQLiteは「小型」「高速」「自己完結型」「高信頼性」「高機能」のSQLデータベースエンジンを実装するC言語ライブラリです。

SQLiteはコードフットプリントが小さく、「メモリ」「ディスクスペース」「ディスク帯域幅」を効率的に使用でき、データベース管理者によるメンテナンスを必要としません。

単独アプリケーションとして動作でき、インストールも簡単で非常にコンパクトであるため、アプリケーションやデバイスでローカルデータストレージとして活用されています。

SQLiteは多くのスマートフォンやコンピュータに組み込まれており、無数のアプリケーションにバンドルされているため、「世界で最も使われているデータベースエンジン」と言われています。

■主要開発元

SQLiteは、SQLiteコンソーシアムを中心として開発されています。

→SQLite →The SQLite Consortium

■経緯

・2000年:初版リリース

■オフィシャルサイト情報

オフィシャルサイト

→SQLite(SQLite Home Page)

ライセンス情報

SQLiteのライセンスは「Public domain」です。

詳細について、こちらを参照ください。
→SQLite →Copyright

ダウンロード

→SQLite →SQLite Download Page

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Berkeley DB」など。

「SQLite」のユースケース

SQLiteは、さまざまなデータストア用途として利用できます。

→SQLite →Appropriate Uses For SQLite

■IoT

SQLiteは、さまざまなIoTデバイスのデータベースエンジンとして使用できます。

・スマートフォン(携帯電話)
・セットトップボックス
・テレビ
・ゲーム機
・カメラ
・スマートウォッチ
・リモートセンサー
・サーモスタット
・工作機械
・医療機器
・ロボット
・ドローン
・自動車
・飛行機 など

■アプリケーションフォーマット

SQLiteはアプリケーションファイルフォーマットとしても利用できます。

アプリケーションで使用する情報を、fopen()を使用して「XML」「JSON」「CSV」「独自形式」などの方式でディスクファイルに書き込むのではなく、必要な情報をSQLiteデータベースに格納して利用できます。

主なメリット

・データへのアクセスが容易
・トランザクション更新が可能
・パフォーマンス向上
・コスト削減
・複雑さを軽減
・信頼性向上
・パーサーを作成してトラブルシューティングする必要がなくなる
・クロスプラットフォーム など

ユースケース

・デスクトップアプリケーション
・メディアのカタログ作成および編集スイート
・財務分析ツール
・CADパッケージ
・バージョン管理システム など

■Webサイトデータベース

Webサイト用データベースエンジン

SQLiteは中程度のWebサイトのデータベースエンジンとして最適に機能します。

SQLiteは「100Kヒット/日」程度のWebトラフィックに対応でき、その10倍のトラフィック量で動作することが実証されています。

Webサイトバックアップ用データベース

SQLiteは「構成を必要としない」「通常のディスクファイルに情報を保存できる」などの特徴を持つため、中小規模のWebサイトでバックアップ用データベースとして広く使用されています。

■データ分析

SQLiteは、データ分析ツールのデータストアとして、大きなデータセットの分析処理にも利用できます。

分析結果データベースは単一ファイルとなるため、「USBメモリスティックに書き込める」「Eメールで送信できる」など、手軽にやり取りできるメリットがあります。

ユースケース

・Webサイトのログ分析
・スポーツ統計分析
・プログラミング測定基準の編集
・実験結果の分析 など

■キャッシュシステム

アプリケーション内にSQLiteを組み込むことで、エンタープライズRDBMSに対するキャッシュ機能として利用できます。

処理高速化

ほとんどのクエリがローカルキャッシュに対して実行され、ネットワークのラウンドトリップを回避できるため、処理時間を短縮できます。

また、ネットワークや中央データベースサーバの負荷も軽減できます。

オフライン動作可能

アプリケーションが使用するデータをローカルSQLite内に保存しておけるため、オフラインでも動作できるアプリケーションを構築できます。

■その他

・データ転送フォーマット
・ファイルアーカイブ
・データコンテナ
・教育(トレーニング)用データベース など

「SQLite」の主な特徴

「SQLite」の主な特徴

■ゼロコンフィギュレーション

SQLiteは設定不要のゼロコンフィギュレーションデータベースです。

インストール不要

SQLiteは使用する前にインストールする必要はありません。

設定不要

設定ファイルを使用しないため、通常のRDBMSが必要とする各種設定が不要です。

・サーバプロセス設定—起動、停止
・データベースインスタンス設定
・アクセス許可設定
・データベース回復設定—システムクラッシュや停電などによるシステム停止時 など

■自己完結型システム

SQLiteは依存性が非常に少ない「自己完結型システム」です

SQLiteライブラリ全体は単一のソースコードファイルにカプセル化されており、外部ライブラリや外部インターフェースを必要とせずに動作できるため、どのようなオペレーティングシステム上でも動作できます。

→SQLite →SQLite is a Self Contained System

マルチプラットフォーム

SQLiteは以下のOSをサポートしています。

・Linux
・BSD
・Solaris
・Windows(Win32、WinCE、WinRT)
・Mac
・Android
・iOS など

他のシステムにも簡単に移植できます。

■コンパクト&省メモリ

SQLiteの本体サイズは600KB程度と非常にコンパクトで、消費メモリも少ないため、処理能力が低い小型デバイスでも組み込めます。

■高速処理性能

SQLiteは、中小規模データベースで比較した場合、本格型RDBMSと比べても遜色ないといわれています。

ファイルシステムより35%高速

SQLiteは、ファイルシステムによるアクセスよりも35%高速に読み書きできます。

大量のサムネイル画像に対するアクセスの場合、ファイルシステムでは1ファイルごとにファイルアクセス用システムコールが発生しますが、SQLiteでは1回のシステムコールで複数のファイルにアクセスできます。

→SQLite →35% Faster Than The Filesystem

■大容量データに対応

SQLiteは「テラバイトサイズのデータ​​ベース」と「ギガバイトサイズの文字列およびBLOB」をサポートします。

→SQLite →Limits In SQLite

■安定性(100%ブランチテストカバレッジ)

SQLiteの信頼性と堅牢性は、徹底的で慎重なテストによって達成されています。

SQLiteコアは、テストカバレッジプログラム「gcov」で100%のブランチカバレッジが実施されています。

→SQLite →How SQLite Is Tested

「SQLite」の主な機能

「SQLite」の主な機能

■管理機能 コマンドラインインターフェースクライアント

SQLiteには、データベースを操作するためのスタンドアロンコマンドラインインターフェース(CLI)クライアント「sqlite3」が付属しています。

ユーザーがSQLiteデータベースに対して手動でSQLステートメントを入力して実行できます。

→SQLite →Command Line Shell For SQLite

■SQL機能

対応機能

SQLiteは「Lite」という名称が含まれているため低機能というイメージがありますが、ほぼフル機能のSQLを実装しています。

「部分インデックス」「式に関するインデックス」「JSON」「共通テーブル式」「ウィンドウ関数」などの高度な機能も備えています。

→SQLite →Full-Featured SQL

非対応機能

SQLiteが実装していない主なSQL機能としては以下のようなものがあります。

・完全な外部結合
・ALTER TABLEの完全サポート
・完全なトリガーサポート
・VIEWへの書き込み
・付与および取り消し など

→SQLite →SQL Features That SQLite Does Not Implement

■トランザクション機能

SQLiteは、組み込み用途として使用できるデータベースとしては数少ないものとして、トランザクション処理に対応しています。

トランザクションはアトミックであり、「一貫性」「独立性」「耐久性」「コミット」「ロールバック」などをサポートし、システムクラッシュや停電の後でもデータを永続的に保護できます。

■API連携機能

SQLiteはシンプルで使いやすいAPIを提供しています。

→SQLite →An Introduction To The SQLite C/C++ Interface

「SQLite」のファイルストレージ

「SQLite」のファイルストレージ

■単一ディスクファイル

SQLiteはファイルシステムをデータストレージとして使用します。データベースは単一のディスクファイルに格納されます。

「MySQL」や「PostgreSQL」のようなクライアントサーバ構成ではなく、「Microsoft Access」のようにファイルを直接読み書きするタイプです。

データベースを手軽にコピーできる利便性があります。

→SQLite →Database File Format

■クロスプラットフォーム

SQLiteのデータベースファイルはクロスプラットフォームで利用できます。

「32ビットマシンと64ビットマシン」「ビッグエンディアンと リトルエンディアン」など、異なるアーキテクチャーを持つ別のマシン上にコピーしてそのまま使用できます。

→SQLite →LoC Recommended Storage Format

■後方互換性

SQLiteデータベースファイルフォーマットは後方互換性が維持されています。

SQLiteバージョン3のすべてのリリースは、バージョン3.0.0によって作成されたデータベースファイルを読み書きできます。

SQLiteコンソーシアムは、将来のすべてのSQLite3リリースにおいて、上記の後方互換性維持を約束しています。

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。