データベースとは?機能と特徴(SQLite、MySQL、TinyDB)
2021.09.06 /
本記事ではリレーショナルデータベース(DBMS)の種類とその特徴について解説していきます。
データベースはシステムを作成する上で必要不可欠なものです。今日のほぼすべてのシステムに利用されています。
システムを開発する上でデータベースの知識は必須となり、様々なデータベースの違いや特徴も把握しておく必要があります。
本記事を読んでデータベースの理解を深めていきましょう。
本記事を通して以下の知識を学べます。
- データベースについて
- データベースマネジメントシステムについて
- データベースの構造
- SQLite3、MySQL、TinyDBの特徴
データベース
データベースとは
データベースとは、
大量の「データ」を蓄積し、いつでも・好きなときに・簡単にデータを利用可能なシステムです。
データベースに保持した「データ」は、条件指定して特定のデータを出力したり、並べ替えをするなど様々な操作が可能です。
データベースは私たちの生活を取り囲むあらゆるシステムで利用されています。
例えばTwitterやFacebook、Amozonといった毎日触るWebサービスでもデータベースは利用されています。
今日のシステムでデータベースが使われていないシステムは存在しないといっても過言ではありません。
このようにデータベースは多くの人が意識せずに利用しており、私たちの生活と密接に結びつき、今ではなくてはならないものです。
あなたがシステムを開発する際、データベースはそのシステムの中核を担います。
すなわちデータベースを理解していないと、現代におけるシステム開発はできないと言えます。
このデータベースを管理するシステムを「DBMS(Databease Management System)」と呼びます。
データベースマネジメントシステム(DBMS)
DBMSには様々な種類があります。主要なデータベースとして、次のようなものがあります。
- SQLite
- MySQL/MarinaDB
- TinyDB
- Oracle Database(商用)
- Microsoft SQL Server(商用)
各DBMSにはそれぞれ特徴があり、使用するシステムや用途によって選択するDBMSは異なります。
データベースのモデル(構造・仕様)に関しても、DBMSによって異なります。
しかしほとんどのDBMSではリレーショナルデータベース(Relational Database:RDB)が利用されています。
RDBはExcelのような表形式でデータを管理します。そのため直感的にデータを取り扱えます。RDBのDBMSは、RDBMSと呼ばれます。
本記事では無料で利用できるSQLite、MySQL、TinyDBについて詳しく解説しています。
データベースを利用するメリット
データベースを利用すると次のようなメリットがあります。
- データの一元管理
- データの整合性や一貫性の保持
- データの制約(重複削除など)
- 不特定多数による共有・利用
- データの関連付け
- データの出力・並び替え
これらのメリットを享受するために、現代のシステムではデータベースが組み込まれています。
データベースの構造
主要なデータベース(リレーショナルデータベース)は次のような構造になっています。
データベースでは、すべてのデータは「テーブル」に保持されます。
データベースには複数のテーブルがあり、テーブルはカラム(列またはフィールド)とロウ(行またはレコード)からなる、Excelのような二次元表です。
名前 | 性別 | 年齢 | 好きなプログラミング言語 |
---|---|---|---|
OFFICE | 男 | 45 | Python |
FiveFour | 男 | 54 | Larabel |
データベースはExcelと似た印象を持ちますが、処理できるデータ量やテーブルの連結など、Excelではできない多くのことができます。
データベースの操作
データベースからデータの挿入・抽出・検索などの操作を行うには、データベース操作言語のSQLを使用します。
SQLはISOで国際標準化されているため、どのデータベースでも利用できます。
SQLは3つの言語から構成されており、それぞれで用途が異なります。
- データ操作言語:データの挿入・削除・更新など
- データ定義言語:テーブルの作成・削除・変更など
- データ制御言語:データへのアクセス制御など
SQLの使い方を覚えれば多くのDBMSで利用できるため、覚えておいて損はない言語です。
各データベースの特徴
SQLite3
SQLite3は広く利用されているRDBMSの一つです。使用するデータベースはSQLiteであり、それ自体はオープンソースのRDBMSです。
データベース操作言語のSQLと似ていますが、SQLite3はデータベースです。
SQLite3は簡易的なデータベースであり、簡単にシステムに組み込めます。
ファイル1つが1つのデータベースとして利用できるため、アプリケーションに組み込んで使用されます。WebブラウザーやiOS/Androidにも組み込まれています。
またWebサーバーを介せずに使用できるため、サーバープロセスを起動せずに利用が可能です。
MySQLといったRDBMSと比べると機能面は乏しいです。しかしその反面、軽量なためスピードが速く大量データの扱いが得意です。
マルチプラットフォームなので、WindowsやLinux、Mac、Android、iOSなど様々なOS上で動きます。
多くの実績があり、動作も安定しているためさまざまな場面で使われています。
大規模なデータベースではSQLiteは向いていませんので、小規模のデータベースシステムで利用しましょう。
- オープンソースのRDBMS
- ファイル1つが1つのデータベース
- Webサーバーを介さない
- マルチプラットフォーム
- 軽量なためスピードが速く大量データの扱いが得意
- 小規模データベースで利用する
SQLite3のデータベース操作方法については以下記事をご参照ください。
【Python Anaconda】SQLite3のデータベースをPromptから操作する方法
MySQL
MySQLとは、Oracle社が開発・公開しているRDBMSです。
データベースで最も普及している人気のあるRDBMSの一つです。
無料で公開されており、PHP+MySQLやJava+MySQL、Python+MySQLといった組み合わせで利用されます。
SQLiteとは異なり、サーバーにインストールして利用するアプリケーションです。MySQLを利用するときは、サーバー側でMySQLを起動しておく必要があります。
多くの企業から個人まで幅広く利用され、実績も数多くあるDBMSです。FacebookやTwitter、Youtubeなどでも利用されています。
マルチプラットフォームなので、WindowsやLinux、Macなど様々なOS上で動きます。
低用量のアプリケーションから、大規模なシステムまで幅広く活用できます。
無償で利用できるので、低コストでシステム開発が行えます。
XAMPPをインストールし、XAMPPを通してMySQLを利用しています
【PHP】XAMPPのインストール方法と操作方法【初心者用】
TinyDB
SQLite3やMySQLはデータベース操作言語SQLを使ったRDBMSでした。
しかしTinyDBはこれらとは異なるデータベースです。
TinyDBはPythonで利用できるドキュメント指向データベースです。
有名なドキュメント指向データベースにはMongoDBがあります。
TinyDBはSQLiteのように1つのファイルが1つのデータベースになります。
またデータベースはJSON形式のデータです。
JSONはシステム間のデータ交換におけるフォーマットの1つです。JSONについては以下記事をご参照下さい。
JSONとは?特徴や記述方法、利用される場面について
MySQLのようにサーバーを立てる必要もなく、ドキュメント形式のデータベースなので、手軽にデータベースを利用できます。
利用するためにはpipでTinyDBのパッケージをインストールします。
pip install tinydb
名前がTiny(ちっちゃな)というくらいなので、本当にちょっとした簡易的なデータベースです。
TinyDBの使用方法については以下記事をご参照ください。
【Python】データベース:TinyDBの特徴と使用方法
- Pythonで利用できるドキュメント指向データベース
- 1つのファイルが1つのデータベース
- データベースはJSON形式
- サーバーを立てる必要がない
- pipでパッケージをインストールする
まとめ
本記事「データベースとは?機能と特徴(SQLite、MySQL、TinyDB)」はいかがでしたか。
データベースはシステム開発で必ず必要になる知識なので、それぞれの機能や特徴を覚えておきましょう。