SQLiteを学ぶ(SQLiteを学ぶ_1)

皆さんこんにちは、HiroCom777です。僕は今まで主に、ExcelVBAを通してプログラミングを学んできていて、その中でデータベースにアプローチする事が何回かありました。

Microsoft Officeではデータベースソフトと言えばAccessになるのですが、ExcelVBAでもADO(ActiveX Data Objects)という手法を用いるとデータベースを扱うことができます。 この手法はExcelVBAと併せて用いることができたり、AccessExcelCSV等のファイルを取り扱いができるなど大変便利です。基本的なSQLを使うこともできて、色々な応用も効きます。

hirocom777.hatenadiary.org hirocom777.hatenadiary.org hirocom777.hatenadiary.org

しかしながら上記のシステムは、本格的にデータベースというものを学ぼうと思った時に、僕自身が限界に感じているところがあります。SQLも標準に比べるとサポートしていないところもあったりして、学んでいくにしたがって物足りないと感じ始めていました。何か別のデータベースシステムを学んでみようと思います。

データベースシステムの候補

それではどのデータベースシステムを選べばいいのでしょうか。以下に候補をあげてみました。

いずれもフリーで使用できます。上記3点のうちPostgreSQLMySQLは、クライアントサーバ型と呼ばれるものでクライアントとサーバーに分かれて運用されます。これに対してSQLiteはアプリケーション組み込み型と呼ばれていて、ソフトウェア内で完結しています。

一般的なデータベースはクライアントサーバ型で、多くの企業でも採用されています。アプリケーション組み込み型はシンプルな構成が特徴で手軽に使える側面を持っています。 以上の内容を整理すると、個人でデータベースを学ぶにはSQLiteが良いようです。

SQLiteの特徴

SQLiteの特徴は以下の通りです。

  • アプリケーション組み込み型

    上記で述べた通りSQLiteはアプリケーション組み込み型のシステムです。ライブラリとして(ソフトウェアの一部として)使用が可能です。またインメモリデータベース(メモリ上だけで構築するデータベース)にも対応ています。

  • 軽量で速い

    SQLiteは非常にコンパクトな構成になっています。同時に動作は非常に高速です。ハードウェアのリソースもあまり必要としません。

  • 基本的なSQL、データベース機能が使える

    SQLiteはこの様に軽量で高速であるにもかかわらず、基本的なSQL操作が可能で主なデータベース機能も備えています。

  • 拡張ライブラリで機能拡張できる

    PostgreSQLMySQLにくらべてサポートしているSQLコマンドがやや少ないのですが、拡張ライブラリで機能拡張して補うことができます。

  • データ型を指定しなくても使える

    大抵のデータベースシステムは列ごとにデータ型を指定して使用しなければなりませんが、SQLiteはデータ型を指定しなくても使用できます(指定する事もできる)。指定しない場合は1つの列に色々な型のデータを入力できます。

  • バックアップが簡単

    SQLiteでは1つのファイルにデータベースのすべてのデータを格納します。バックアップの作成は、該当のファイルをコピーして保存するだけで可能です。

  • セキュリティ性は高くない

    データが1つのファイル完結するためシンプルなのですが、パスワードなしでファイルにアクセス可能なのでセキュリティ性は高くありません。

これらを総合すると、SQLiteは比較的コンパクトで小規模なデータベースシステム向けということになります。

インストール

SQLiteのインストール方法は非常にシンプルです。以下のサイトから使用しているOSに対応するファイルをダウンロード。解凍したファイルを任意のフォルダー下に置けば完了です。

www.sqlite.org

また、Pythonなどを利用していてAnacondaをインストールしている方はすでにインストールされているはずです。この連載もAnaconda経由でインストールされたSQLiteを中心に使っていこうと思います。

次回、使ってみる

いかがでしょうか。コンパクトで手軽に使えるSQLiteはデータベースシステムの学習にピッタリですね。この連載ではSQLiteを使ってデータベースシステムについて学んでいきたいと思います。次回から、起動してその挙動を追ってみようと思います。お楽しみに!!

hirocom777.hatenadiary.org

SQLite学習記事のまとめですはこちらから