未来エンジニア養成所Blog

月単価180万以上のプログラミング講師がプログラミングを皆に楽しんでもらうための情報をお届けします。

【DB入門】データベースとは Part3

title


データベース管理システム

データベースには「データを管理、運用するためのエンジン」というものがあります。


私たちは、このエンジンに決められた方式で命令を送ることによって、自由にデータを操作することができます。

このエンジンのことを、データベース管理システムといいます。


リレーショナルデータベースの場合は、RDBMS (Relational Database Mnagement System)と呼びます。



ポイント!エンジン(engine)

エンジンは英語で「仕組み、構造」という意味で、コンピュータの世界では「特定の処理をするために必要なソフトウェア群」を指します。

リレーショナルデータベースエンジンであるRDBMSは「データベースを処理するためのソフトウェアの集まり」という意味です。

データそのものではないことに注意をしましょう。



RDBMSには様々なものがあります。


Oracle社のOralce Databaseは世界的な商用RDBMSです。

みなさんも聞いたことがあるかもしれません。


その他Microsoft社のSQL Server、IBM社のDB2が有名どころです。


また、オープンソースのデータベースとしては(オープンソースとは、誰でも自由に扱ってよいとする考え方。また、そのような考え方に基づいて公開されたソフトウェアのこと。)、MySQLPostgreSQLが世界中で使われています。



title



RDBMSは、データベースとユーザの間でデータの追加や削除、検索などのデータに関するすべての操作を行います。

データを登録するにはまず「データベースを定義する」 「表を定義する」といった作業を行います。

その上で、データを登録したり、検索したり、削除したり、更新したりします。

これらデータベースに対するすべての操作はRDBMS が行いますが、そのRDBMSに命令を出すのはユーザである私たちです。


このときに、SQL(エスキューエル)というデータベース専用の言語を使います。


SQLはISOやJISでも規格化されおり、RDBMSの種類が変わっても、ほぼ同じ書き方で命令を実行することができます。

SQLはデータベースを扱う上で必須の言語です



ExcelやAccessとの違い

「Excelでは、表と表との関係をうまく持たせることができないため、データベースを使用する」と以前の記事で解説をしました。

それでは、リレーションシップを持たせることができるAccessでは、データベースは構築できないのでしょうか。


単純に、リレーションを持たせた表を作成するだけであればAccessを使っても問題はありません。

Excelは表計算ソフト、Accessはデータベースソフトなのです。


それでは、なぜリレーショナルデータベースを使用するのでしょうか。


ExcelやAccessとリレーショナルデータベースの一番の違いは、前者が1 つ1 つのファイルを管理するようにできているのに対して、後者はデータベース全体を管理する専任の管理人がいることなのです。


ExcelやAccessからデータを探すときには、自分でファイルを開いてデータを検索する必要があります。

つまり、検索したいデータがどこに入っているかを知っている必要があります。


データベースは、探したいデータがどこに入っていようが、管理人に「このデータを探して」と伝えさえすれば、きちんとそのデータを探し出してくれます。

また、この管理人はデータを探し出すだけではなく、データベース全体を管理するためのいろいろな役割を担っています。

この管理人の役割を備えているのがデータベース管理システム(DBMS)です。

特に、リレーショナルデータベースのデータベース管理システムをRDBMSと言います。


それでは、ExcelやAccessとの違いを通してRDBMSのメリットを整理しておきましょう。



検索速度を向上させたい

ExcelやAccessは、ファイル単位でデータを管理するため、異なるコンピュータで同じファイルを使用するときには、ファイル内のデータをすべてコンピュータに送り、受け取ったコンピュータ上で必要なデータを探すことになります。

そのため、検索のたびに大量のデータ送信が行われる検索でも他の処理でも非常に 時間がかかります。

データベースでは、RDBMSが受付窓口となることで、データベースを利用するコンピュータに対して検索結果のデータだけを返します。

このため、効率よくデータを検索することができます。



データの一元管理を徹底したい

ExcelやAccessは、1つのファイルなので簡単にコピーできます。

その反面、コピーされたどのファイルが最新の状態なのか、チェックするための仕組みがなく、使う人間が自分で判断する必要があります。

また、1ファイルに収まりきらないデータは分割する必要があります。

そのため、ファイル間のデータの整合性をとることが難しくなります。

データベースでは、ディスク容量さえ増やせば、ほぼデータ量の制限はありません。

1つのデータベース内でデータを管理し、RDBMSがデータの整合性を保障してくれます。



データの更新作業

ExcelやAccessは、基本的に一人のユーザが扱うことを想定して作られています。

そのため、同じファイルに大量のデータを同時に更新させるような場合には、一方で変更中のデータをもう一方が読み取ってしまったり、お互いの変更を上書きしてしまったりする可能性があります。

これをデータの競合と呼びます。

データベースは、複数のユーザから利用されることを前提に作られているため、RDBMSがデータ競合を回避する仕組みを持っています。

このため、あるユーザの依頼でデータを変更している最中は、次のユーザの変更を一時的に待たせておくことができます。



データベースの管理が重要

ExcelやAccessは、あくまでファイル単位でしかデータを扱えないため、トラブルでデータが消えることを防ぐためのバックアップの仕組みや、データの不正使用や情報流出を防ぐためのセキュリティ機能が十分ではありません。

それ故に、そのファイルを管理するのは人間の仕事になります。

データベースは、RDBMSがセキュリティを確保するための仕組みや効率よくバックアップを行うための仕組みを提供しているため、データの管理を行うのが容易になります。



このようにみていくと、データベースがExcelやAccessより優れているかのように感じられますが、そうではありません。


名簿や住所録のようなもの、あるいはお店の売り上げをまとめておきたいとか、蔵書や持っているCDの一覧を整理しておきたい、といった比較的小規模なデータベースを作るような場合には、明らかにExcelの方が向いています。

必要なら、表を印刷したり、作ったファイルをそのままメールに添付して他の人に渡したり手軽にできます。


それに対して、金融機関の口座管理とか、交通機関の予約システム、医療機関の診療管理のようなものをExcel等でまかなうのは不可能と言っていいでしょう。


通常は、Excelなどの扱いやすいソフトで管理しておいて、リレーショナルデータベースでないと困る条件が出てきた時に、リレーショナルデータベースを利用することを考える、というのが自然な流れと言えるでしょう。

データベースを学習していく上では、目的に応じて使い分けられるようにしておくことが大事です。



データベースサーバとクライアント

データベースは異なるコンピュータ、異なるユーザから使われることが前提となっています。


データベース自体を動かし、他のパソコンからの要求に答えてデータベースを利用させるコンピュータのことを、データベースサーバと呼びます。


また、データベースサーバを利用するために、要求を出すコンピュータのことをデータベースクライアントと呼びます。


データベースサーバ・データベースクライアント


参考図書



LINE公式アカウント

仕事が辛くてたまらない人生が、仕事が楽しくてたまらない人生に変わります。
【登録いただいた人全員に、無料キャリア相談プレゼント中!】


LineOfficial

友だち追加