支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • SQLiteとは?詳しく解説します

SQLiteの概要

これからプログラミングを学ぶ方はプログラミング言語だけでなく、データベースやインフラなど開発者を支えるテクノロジーについての知識も必要となることは間違いありません。 ビッグデータやDX化といった言葉をメディアで頻繁に聞く機会が増えていることからもわかるように、 ITエンジニアは特定の分野だけでなく、幅広いテクノロジーに関する知識を保有し柔軟に対応できるようになる必要があるという事がその理由です。 特にデータベースに関するテクノロジーは重要な知識の一つであり、データベース市場においては多くの製品がリリースされ、製品ごとに様々な特徴や機能を持っております。 ユーザーにより高いパフォーマンスを提供するためには、サービスに適したデータベースを選定する知識を保有することや、最適な提案ができるように準備をしておかなくてはいけません。 これからエンジニアになりたいと考えている方はデータベースの仕組みは当然ですが、製品ごとの特徴について学習が必要になってくるでしょう。 ここでは、データベースの一つであるSQLiteについて説明させていただきます。 データベースの市場において、「Oracle」「MySQL」「Microsoft SQL Server」の三社が大きくシェアを奪っており最も有名なサービスです。 その三強に追従する形で「PostgreSQL」「MongoDB」「IBM Db2」などの製品があり、 ここでご紹介させていただくSQLiteは市場ではその下の10番手くらいのポディションとなっております。 SQLiteは、2000年にドウェインリチャード・ヒップ氏により開発されたデータベースであり、 特徴は「コンパクト」「高速」「自己完結型」であるという点となります。 (それらを支えるテクノロジーについては後ほど詳しく解説させていただきます) また、パブリックドメインであるため無料で誰でも利用できソフトウェア開発に役立てることができる点も大きな特徴と言えるでしょう。 SQLiteは我々の身の回りの様々なサービスに導入せれており、その特徴を知ることでデータベースの選定を行う際に役立つことは間違いありませんので、メジャーなデータベースと共に学習してみるといいでしょう。 ここでは、SQLiteについて掘り下げて説明させていただきますので参考にしていただけましたら幸いです。

SQLiteの歴史

SQLiteの歴史について説明させていただきます。 SQLiteはドウェインリチャード・ヒップ氏により2000年に所版がリリースされました。 当時ドウェインリチャード・ヒップ氏は米国海軍との契約でジェネラルダイナミクスに勤務しながら SQLiteの設計業務を行いました。 2000年に1.0がリリース、2001年に2.0をリリースが行われ、2021年の最新バージョンは3.37.0(2021-11-27)が確認されております。 2004年にバージョン3.0.0がリリースされ、コード速度の向上や国際化のサポートを強化などを改善しました。 2005年にドウェインリチャード・ヒップ氏はGoogleとO'Reillyから2005年のオープンソース賞を受賞しました。 2007年にバージョン3.4.0では、バグ修正とインクリメンタルBLOBI / Oやインクリメンタルバキュームなどの新機能追加などいくつかのアップデートを実行しました。 2009年でのバージョンアップ以降、SQLiteソースコードはFossil 分散構成管理システムを使用して追跡・管理される事となりました。 また、SQLiteが再帰トリガーをサポートするようになったことも特徴となります。 その後は定期的なメンテナンスとバグ修正を繰り返し、ご紹介したように直近のバージョンアップ3.37.0(2021-11-27)となります。 また、いくつか書籍についての紹介もさせていただきます。 2004年にはクリスニューマン氏により「SQLite」という書籍が出版され、 小さくて高速な組み込み可能なデータベースであり、当時新進気鋭のデータベースにおける実践的なガイドを提供しました。 2018年にはポールサンダーソン氏から「SQLiteフォレンジック」という書籍が出版されております。 以上が簡単ではありますがSQLiteの歴史のついての説明とさせていただきます。

SQLiteの特徴について

SQLiteの特徴について説明させていただきます。 ポイントを5つに絞り紹介させていただきますので、参考にしていただけましたら幸いです。

ゼロ構成

SQLiteの特徴の一点目がゼロ構成と呼ばれる構成となります。 SQLiteは自己完結型のデータベースであり、他のデータベースのように初期インストールや構成の実行の 手間がなく複雑なサーバープロセスが不要となります。また、管理者がデータベースインスタンスの作成を行うことやアクセス許可を割り当てる必要もありません。 SQLiteにおけるゼロ構成はより手軽にデータベースを利用することを可能にします。

サーバーレス

SQLiteの特徴の二点目がサーバーレスであるということになります。 これにより「インストール」「セットアップ」「構成」「初期化」「管理」「トラブルシューティング」を行うための個別のサーバープロセスがないという大きなメリットがあります。 ゼロ構成とあわせてサーバーレスという言葉は SQLiteの特徴のキーワードとなりますので、理解しておく必要があります。

パブリックドメイン

SQLiteの特徴の三点目がパブリックドメインとなります。 パブリックドメインはソフトウェア作者が著作権などの権利を放棄したものを指します。 SQLiteはパブリックドメインとして、商用または非商用を問わず、自由にコピー、変更、公開、使用、コンパイル、販売、または配布することが可能となることが アナウンスされております。 また、SQLiteのすべての成果物コードはゼロから構築され、他のプロジェクトやインターネットからコードが取得されておらず、 他のプロジェクトからのライセンスコピーで汚染されていないことがオフィシャルサイトにて宣言されております。

ソースコード

SQLiteの特徴の四点目がソースコードとなります。 SQLiteソースは、SQLite開発をサポートするために設計が実行された分散バージョン管理システムであるFossilが 使用されております。 また、SQLiteのコマンドはシンプルでわかりやすいため、比較的容易に操作を実行できる点も特徴の一つとなります。

コンパクト

SQLiteの特徴の五点目がコンパクトであるということになります。 SQLiteは小さく軽量で早いというのが大きな特徴となり、 SQLiteライブラリで使用されるコードスペースは、ターゲットプラットフォーム、コンパイラ、最適化設定によって異なり これらの変数がパフォーマンスに影響します。 消費メモリも少ないため、処理性能が低いデバイスへも組み込むことが可能です。

SQLiteとIoT

SQLiteとIoTは関連性が高い事もあり、最後にその事例などを交えて紹介させていただきます。 IoTとは「Internet of Things」の頭文字をとった文字で、「モノのインターネット」という意味であり、 ヒトのインターネットである「Internet of Human/IoH 」(ヒトがインターネットと繋がる)や能力のインターネット化である「Internet of Ability/IoA」 などと共に人々の生活を豊かにする新しいテクノロジーです。 医療、物流、農業などありとあらゆる分野に今後IoTの影響が生まれてくると見られております。 SQLiteデータベースは管理が不要であることから、サポートなしで動作させるデバイスで 活躍することが可能であるため、IoTに必要とされるデバイスとの相性が非常に良く実際に様々な事例を見ることができます。 いくつか具体例をあげさせていただきますと、携帯電話、カメラ、時計、自動車、機械工具、ドローン、医療機器、ロボットと相性がよく多くの事例が存在します。 実際に導入が確認されている事例を社名をあげて説明させていただきます。 エアバス社ではA350XWBファミリーの航空機のフライトソフトウェアでSQLiteを利用しております。 Google社では、Android携帯電話オペレーティングシステムと ChromeWebブラウザで SQLiteを使用しております。 マカフィー社では、ウイルス対策プログラムでSQLiteを使用しています。 ボッシュ社ではGM、日産、スズキの自動車にインストールされるマルチメディアシステムでSQLiteを使用しています。 このように、実に多くのシーンにおいてSQLiteは利用されており、今後もIoTの発展と共にSQLiteの需要は高まるでしょう。

まとめ

いかがでしたでしょうか? SQLiteについて詳しく解説させていただきましたので、 参考にしていただけましたら幸いです。