情報システムの開発に欠かせないものの1つにデータベースがあります。最近は様々なところで使われるようになっていますが、実はよく知らないという人も多いのではないでしょうか。情報を管理するためのファイルシステムとの違いを踏まえて勉強していきましょう。
データベース
「データベース」を辞書で調べてみると、次のような定義が記載されています。
「コンピュータで、相互に関連するデータを整理・統合し、検索しやすくしたファイル。また、このようなファイルの共用を可能にするシステム。通信ネットワークなどを介した商業用データベース・サービスがおこなわれている。」(大辞林第二版)
つまり、「データベース」とは、「相互に関連のあるデータを整理・統合したもの」で、「コンピュータ上で検索・活用しやすくした仕組み」ということができます。
ファイルシステム
ファイルシステムとは、コンピュータの記憶装置に記録されているデータを管理するためのシステムです。ファイル単位で情報の管理を行います。コンピュータが登場してすぐのころはハードウェアがとても高価だったため、特定の業務専用のシステムを開発するケースが多く、データはその処理専用に存在するということも珍しくありませんでした。そのため同じ意味を持つデータが重複して存在することも発生していました。現在ではコンピュータも安価になり入手しやすくなっていますが、基本的なファイルシステムの仕組みは大きく変わってはいません。
データベースとファイルシステムの違い
実は、データベースを構成するデータもファイルで管理されているため、データベースもファイルシステムの一部であるということもできます。それでは、データベースとファイルシステムの違いはどのようなところにあるでしょうか?プログラムの観点からみると以下のような点に違いがあります。
ファイル・システム
・データの位置は、プログラム中に記述する必要がある。
・同時実行性を保つ仕組みがないので、開発者がプログラムにて制御する必要がある。
データベース
・データの位置をプログラムで記述する必要はない。
・同時実行性を保つ仕組みはデータベース管理システムで提供される。
データの位置については、データベースを利用している場合は「どのようなデータを利用したいか」をプログラムに記述すれば、データベース管理システムがその条件に合致するデータを取ってきてくれるのでプログラマがデータの位置を意識する必要はありません。それに対してファイルシステムの場合は、データベース管理システムのような存在がないため、プログラマが自分でデータの位置をプログラム内に記述しなければなりません。
「同時実行性」とは、複数のユーザが同時に同じデータを利用することを言います。データベースの場合は、データベース管理システムが制御を行ってくれるため、プログラマが意識して制御を行う必要はありません。一方、ファイルシステムには同時実行性を制御する仕組みが存在しないため、プログラマが同時実行性を制御するプログラムを記述する必要があります。
おわりに
今回は、データベースとファイルシステムの違いを中心にデータベースとは何かについて説明してきました。ファイルシステムと比べて、プログラム上でデータを取り扱いやすくなるように整理・統合したもの・検索しやすくしたものがデータベースです。概念的な部分ではありますが、基本的な部分になりますのでしっかり理解しておきましょう。
おすすめ記事
➡【MySQL入門】データベースを作成する方法(CREATE DATABASE文)
➡MySQLの本・参考書の評判