基礎から始めるデータベース入門セミナー

第2回「ファイルシステム」と「データベース」の違い

日本オラクル株式会社 井上 学 (いのうえ まなぶ) 山田 真二郎(やまだ しんじろう)

データベースについて1から学びたいという方、一緒に勉強しませんか!!

「基礎からはじめるデータベースセミナー」は、データベースの知識を習得するためにまず何から始めたらよいのかと、書籍を探したりセミナー情報を検索したりしている方のためのセミナーです。これまでデータベースに触れたことの無かった人や、おもにメインフレームやオフコンを中心に扱ってきたためにオープンな環境で動くリレーショナル・データベースに携わった経験がない人たちや営業職の方向けに、「そもそもデータベースって何だろう?」というところから始まり、リレーショナルデータベースのしくみとOracle Databaseのアーキテクチャを基本のところから学んでいただくことを目的としています。本日は、その第2回目の講義です。“「ファイルシステム」と「データベース」の違い”についてご説明します。

目次

講義を始める前に・・・データの管理方法について

コンピュータが無かった時代は、データ管理はすべて紙を利用していました。伝票などは紙を使って人の手で処理していたのですが、コンピュータの登場により、一部の作業(計算、集計)を人の手に替わってコンピュータが処理するようになりました。これが、コンピュータ利用の始まりでした。

やがて、技術の進化によって安価で性能が良いコンピュータが普及したことにより、コンピュータを利用する機会も多くなりました。コンピュータを使用すると、データの検索や蓄積が手作業に比べてはるかに容易になります。また、システムに必要とされる業務要件が変化し高度になっていくにつれて、 「コンピュータを利用してデータを紙に蓄積し、活用する」というモデルから 「コンピュータそのものにデータを蓄積し、活用する」というモデルに次第に移行しました。さらにその後、コンピュータ上で動くデータベースが登場したことにより、「ファイルシステム」ではなく「データベース」にデータを格納するようになったのです。

ファイルシステム

事務処理にコンピュータが使用され始めた当時、ハードウェアは今とは比べものにならないほど高価なものでした。そのため、コンピュータを利用できる業務は限られていましたし、特定業務のためだけに専用のシステムを開発することも珍しくありませんでした。このような場合、データはその処理用プログラムのためだけに存在しており、データベースに格納されるのではなく、単なる「ファイル」という形をとっていました。ファイルシステムでは、 ファイルを複数のプログラムで共有できないため、プログラムごとにファイルが存在し、重複するデータが数多く含まれることになってしまいます。

その結果、同じ意味をもつデータであっても格納されるファイルが異なるので、ある業務要件では変更されているがある業務要件では変更されていないデータがあるなどというように、データが重複して存在してしまい、結果的にデータの不整合などが起こっていました。

また、ファイルシステムだと、その業務要件だけで利用されていた データの活用範囲が広がれば、プログラムを作り変えなければならないのです。

データベース・マネジメント・システム(DBMS)

コンピュータの活用範囲が広がってさまざまな処理に利用されるようになると、当然「もっと高度なことがしたい」「もっと有効にデータを活用したい」といった要望が出てきます。これらの要望に対応するために研究が進み、プログラムごとにファイルとして専用のデータをもつ方法では効率が悪いことがわかってきました。そこで、関連するデータを整理・統合して重複を省いた無駄のないデータ集合体を作るようになったのです。これが「データベース」です。

データベースでは、データを1つの場所で管理して複数のプログラムで共有できるので、プログラムごとに個別にデータの場所を記述する必要がなくなります。これらはデータベース・マネジメント・システム(DBMS)で管理されるのです。DBMSに蓄積されたデータに変更が生じたとしてもプログラムを変更する必要はありませんので、「プログラムとデータが独立」していると言えます。つまり、プログラムのなかのどの部分にデータがあるのかを意識しなくて良いのです。

データベースとは、 「複数のプログラムによって利用されるデータを、1つの場所で保管するもの」なのですね。

そのとおり。また、データを1カ所で管理することを、データの「一元管理」といいます。

ファイルシステムとDBMSの違い

では次に、ファイルシステムとDBMSの違いについて、「ファイルの場所」と「ファイル共有」という2つの点から比較してみます。

ファイルの場所(データの位置)

  • ファイルシステムの場合

    プログラミングする際に、ファイルの物理構造を意識する必要があります。データへのアクセスが要求される時などに、ファイルの場所、何バイト目かなどの情報が必要となるからです。そうなると、データの桁数が多くなってしまいますし、データの構造が変わるとそれに伴ってプログラミングの変更も必要になります。

    たとえば、プログラムAがファイルaを利用したいという場合、「必要なデータがファイルaの何処に格納されているか」をプログラムAのなかにあらかじめ記述しておく必要があります。では、プログラムAが別のファイルbを利用したいという場合はどうなるかというと、ファイルbの何処に必要なデータが格納されているか、その場所もプログラムAのなかに別途記述する必要があります。このようにして、利用したいデータが増えれば増えるほど、プログラム中にデータの位置を記述する必要も生じるのです。それに加え、データの位置が変更されたり、利用するデータが増えたりするたびに、常にプログラムを修正する必要があるのです。

    扱うプログラムの数や利用するデータが少ない単純な仕組みであれば、さほど大きな問題はないでしょう。しかし、扱うデータが増えた時はプログラムの修正も多大なものとなってしまいます。プログラムで個々に変更・管理するのは難しいですし、プログラムの負担が増えてくるとコントロールするのは非常に大変です。

  • データベースの場合

    データの格納場所は、DBMS側で管理されます。プログラムは、それぞれ必要なデータをデータベースに要求します。すると、データベースがプログラムに代わってデータベースから必要なデータを取り出してくれます。データベースを利用すれば、データの位置を意識する必要はなく、ファイルシステムのようにわざわざプログラム中に記述する必要もありません。

    図1 ファイルシステムとデータベースの違い

    図1 ファイルシステムとデータベースの違い

なるほど。こうして2つを比較した説明を聞くと、データベースを利用するとプログラミングやデータの管理がとても楽になることがわかりました。保管場所を意識するとしないでは、大きな違いがあるのですね。

保管場所について簡単にまとめると、

  • ファイルシステムの場合 ファイルシステムでは、必要な情報がどこにあるかをそれぞれプログラムで記述しなければならない。
  • データベースの場合 データベースでは、必要な情報がどこにあるかはデータベースが管理してくれるので、ユーザーはデータが何処にあるか意識する必要はない。

ということになります。

はい。ここまでは整理して理解できました。

ファイル共有

では次に、「共有」について説明します。最近では、コンピュータ上のデータに複数のユーザーがアクセスしたり利用したりすることが頻繁におこります。1つのプログラムが1つのデータを使うのであればとくに問題はありませんが、複数のユーザーが1つのデータを共有して利用(同時実行)する場合にはいくつかの不都合が生じることが考えられます。では、ファイルシステムとDBMSでどのような違いがあるのか説明しましょう。

  • ファイルシステムの場合 ファイルシステムでは、複数のユーザーが1つのデータを共有して利用する仕組みをもっていないため、プログラム側でコントロール(開発者がプログラミングで対応)する必要があります。
  • データベースの場合 複数のユーザーが同時に1つの同じデータを利用したい場合には、データベースが制御してくれます。

ということは、データベースならユーザーは何もする必要はないということになりますよね?

はい。そのように理解していただいて結構です。

まとめ

さて、本日の講義で説明したことをまとめてみましょう。

  • コンピュータの登場・普及により、データの格納は紙からコンピュータに移行した。
  • コンピュータにデータを格納する方法として、「ファイルシステム」と「データベース」の2つがある。違いは以下のとおり。 【ファイル・システム】
    • データの位置は、プログラム中に記述する必要がある。
    • 同時実行性を保つ仕組みがないので、開発者がプログラムにて制御する必要がある。
    【データベース】
    • データの位置をプログラムで記述する必要はない。
    • 同時実行性を保つ仕組みはDBMSで提供される。

たくさんのデータを扱うときや、複数の人でデータを共有する際には、データベースを利用するとじつに大きなメリットがあることがよくわかりました。データの管理や操作、複数のユーザーが同時に利用したい場合の制御を自動的にやってくれるなんて、DBMSって賢いなと感心してしまいました。

データベースを利用することにより、データを扱う際に多くの恩恵を享受できることは間違いないですね。

では、本日の講義はこれで終了とします。次回は、「データベースの種類」についてご説明します。

"基礎から始めるデータベース入門セミナー" インデックスに戻る

本記事は、「オラクル通信」の同名連載記事から抜粋し、一部に修正を加えたものです。

Copyright © 2010, Oracle Corporation Japan. All rights reserved.

無断転載を禁ず

この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleは米国Oracle Corporationの登録商標です。文中に参照されている各製品名及びサービス名は米国Oracle