なぜAccessなどのデータベースソフトが必要とされるのか

以前から思っていたことがあります。それは

 

  • なんでデータベースソフトを使うの?
  • Accessって何?
  • RDBって?何で表を関連付けるの?

 

といった疑問です。

 

今の時代の会社の多くは「エクセル」という表計算ソフトを使って仕事をしているかと思います。で、エクセルはマイクロソフトが開発した表計算ソフトなのですが、エクセルを長く使っていれば、同じマイクロソフトが開発した「Access」も目にしたり耳にする機会はあるでしょう。

 

自分もAccessについては気にはなっていました。「データベースソフト」ということは聞いたことはあったのですが、実際にパソコン上でAccessを開いてみて、いくつかの機能をいじってみたものの使い道がいまいちわかりません。

 

画面の感じはエクセルと似ているので、「表をつくるのは別にエクセルでもいいんじゃないか」とは思っていました。

 

そうは言っても、エクセルがあるにも関わらず、Accessなんてデータベースソフトというものが現に存在して、それを使っている人もいるわけです。

 

だから「何か有益性があるのだろう」とは思っていましたが、その理由はなかなか理解できませんでした。ですから以前からAccessの必要性についてずっと疑問に思っていました。

 

「なんでわざわざAccessなんて別のソフトに新たに表をつくる必要があるのか」と。

 

しかし、最近データベースソフトが必要とされる理由がわかってきた感じなので、そのことについて気づいたことを書いていっています。

Accessとは

Accessはデータベースソフトのひとつですが、具体的にどういったものなのでしょうか。「できるネット」というサイトに次のようなわかりやすい説明があったので引用してみます。

Accessとは、マイクロソフトが提供するデータベースソフトの1つです。

 

データベースとは、必要なデータをすぐに取り出せるよう大量のデータを整理して蓄積、管理するシステムのことをいいます。

 

例えば、取引先の情報を管理する場合、会社名、住所、メールアドレス、担当者のような必要な項目を用意して、データベースを作成しておけば、「会社別の担当者とメールアドレスの一覧が欲しい」「新規取引先の宛名ラベルを印刷したい」といった作業が簡単に行えます。

 

Accessでは、データの集まりを表(テーブル)として管理していて、「商品」「顧客」「売り上げ」などテーマごとに複数の表を管理することもできます。

 

このようなデータベースを「リレーショナルデータベース」といいます。

Accessはマイクロソフトが開発したデータベースソフトであり、このデータベースソフトというものは大量のデータを整理、蓄積、管理できるものなんですね。

 

Accessがどういったものかは何となくわかりました。問題はこのようなデータベースソフトが「なぜ必要なのか」ということです。

なぜデータベースソフトが必要とされるのか

このブログで前回以下のような過去記事を書きました。

 

過去記事では、人工知能の進化の過程の背景のひとつに「データの増加」がある、といったことを書きました。

 

コンピュータとインターネットによって、私達が生きる物理空間以外に新たに「電子空間」が生まれました。その世界にプログラミングを通してシステムができ、その上に多くの人たちの手によって様々なデータが蓄積されていきます。

 

増加していくデータが現在では、「ビッグデータ」と呼ばれるまでに膨れ上がってきたわけですが、そういった増加するデータを解析するために生み出されたもののひとつが「データベースソフト」です。

 

最近いろいろとこういった部分に関する本を読んでいて、最近の技術の発達の背景にあるのはおそらく「データの増加」がある、というのはわかってきました。

 

ですから自分の頭の中でなんとなく「あぁ、こういう理由じゃないかな」と思うものがありました。

 

例えば、仕事でエクセルを使って何らかの表をつくっていたとします。その表が列が1万あって、さらに行が100万も使われているような表だったとしたらどうでしょうか。

 

こんな表があったら、広さ的にも容量的にもあまりにも大きすぎて非常に「使いづらい」ですよね?ここはわかりやすいように、あえて極端な例を出してみました。

 

そのような巨大な表だとその表に入っているデータ群も膨大になるわけでして、仮にその表の中の1つのセルに欲しい情報があったとします。

 

その巨大な表の中から「目視」で欲しい情報を探すのは無理があるので、「検索」機能を使うでしょう。でも列が1万あって行が100万もあるような表では検索で欲しい情報が探せても「1つではない」かもしれません。同じ情報が他にもあって、重複している可能性があるということです。

 

仮にそこから何とか欲しい情報を見つけられたとしても、「その情報が本当に正しい情報なのか」気になったりする時があるのではないでしょうか。ですから、特定のセルから縦方向や横方向に隣り合うセルを見たりする時もあるかと思います。

 

もしくは、何か入力しなければならないデータがあったとします。その時に、検索機能で入力したい部分をピンポイントで探し当てられればいいですが、いつもそのようにできるわけでもありません。

 

ですから「だいたいここら辺だったかな?」と適当に当たりをつけて、表の中で入力したい部分を探す時もあるでしょう。

 

しかしあまりにも巨大な表だと、関連するセルを目で追っていくのは目が疲れますし、ミスが出る可能性も高くなってきます。入力したい箇所や欲しい情報を探すのも簡単ではないかもしれません。

 

いくら一定のルールで表に情報を入れていっても以上のような巨大な表や膨大なデータをそのまま扱うということになると、いろいろと不都合が出てくるかと思います。

 

ですから、一意のキーを軸として小さく表を分けて、表ごとデータごとに対応させて、専用の操作で欲しいデータを抽出できるようにしたのが「データベース」というものなのではないか、と自分の中でイメージしました。

 

以上のような理由から、増加するデータに対応できるよう、有効活用できるようにするためにデータベースソフトというのものが使われるようになったのではないか、と考えました。

 

リレーショナルデータベース(RDB)とはどんなイメージか?

「Accessとは」の項目で引用した文章の中に、Accessは「リレーショナルデータベース」とあります。「RDB」とも言うのですが、これってどんなものなのでしょうか。

 

自分もちょっとデータベースについての本は読んできた経験はあるのですが、この部分が今までは何となくイメージが出来ませんでした。

 

「リレーショナル」というぐらいなので関連付けるというのはわかります。「なぜデータベースソフトが必要とされるのか」でも自分の考えは書いたので「なぜ関連付ける必要があるのか」というのはわかります。

 

巨大すぎる表は使う時に何かと不都合がある、そのため小さく分けた方がいいと。分けた表をそのままにしたら、ただのバラバラの表になってしまうので表ごとデータごとに対応付けられる「キー」で関連付ける必要があります。

 

でも「どうやって」という部分が自分の中で曖昧でした。データベースの教科書などには「正規化」などの言葉が出てきますが、そのようなデータベース専用の言葉ではなく、別の言葉やエクセルで使われる言葉で説明されているものはないものでしょうか。

 

そうやって、以前データベースについてインターネットでいろいろと調べていたら、次のようにわかりやすく書かれたサイトを見つけましたので引用してみます。

最後に、AccessとExcelの違いに関する「ちょっとしたテクニック」を紹介しましょう。Excelで表を作成するとき、「複数の表」から「1つの表」を作成する場合があります。

 

たとえば、「一方の表にある商品コード」に該当する商品データを「もう一方の表にある商品一覧データ」からVLOOKUP関数を使用して取り出す、といった処理です。商品コードを介して、2つの表を「結合」するわけですね。結合してデータがそろうと、計算できる内容も増えてきます。

(中略)

Accessの選択クエリを活用すれば、こういった表の結合が、簡単操作で処理できます。まず、Excelの表に合わせて複数のテーブルを作成し、Excelのデータを貼り付けます(数式や関数が入力されていたセルは「計算結果」が「値貼り付け」で貼り付けられます)。

 

作成したテーブルから選択クエリを作成し、関連付けたい列をつなげて、取り出したい項目を指定します。こうして作成した選択クエリを実行するだけで、VLOOKUP関数による表結合と同じ処理結果を得ることができます。

この文章を初めて見た時思わず「あぁ、なるほど」と理解できました。

 

データベースの表における関連付けは、エクセルにおける「VLOOKUP関数」をイメージするといいんですね。これはわかりやすいと思いました。

 

エクセルにおけるVLOOKUP関数を使う場合、引数は次のようになります。

  • 検索値
  • 範囲
  • 列番号
  • 検索方法

キーにしたい「検索値」を選択し、キーに対応する別の表から必要な「範囲」を選択、別の表のキーを軸として選択した範囲で左から何列目かの「列番号」を入力して、近似値か完全一致かの「検索方法」を指定する、というものです。

 

Accessでは、これがもっと簡単に大規模に視覚的にできるということでしょう。なるほど、勉強になります。

まとめ

以前からデータベースとかAccessといったものは、いつかは勉強しなければいけないのだろうなぁと漠然と考えていました。考えていただけで今まで特に勉強してはこなかったわけですが。

 

多少はデータベースに関する本を読んではいたのですが続きませんでした。それはたぶん、データベースを勉強する「理由」とか「必要性」が明確に理解できていなかったからだと思います。

 

それに今まで10社近い会社で働いてきましたが、Accessを使っている所がほとんどなかったというのもあるでしょう。自分が気づいていなかっただけかもしれませんが。

 

このブログでは以下のような過去記事を書いてきているのですが、やはり周りの人とか自分がいる環境で英語が当たり前に使われているのと同じようにAccessを使う環境が当たり前でないと、その必要性というものを「意識できない」のかもしれません。

 

以下の過去記事では人工知能の進化の背景のひとつには、増加し続ける「データ」が関わっているといったことを書きました。

 

これは本当に偶然なのですが、「増加するデータの解析の必要性」により人工知能が進化していっている、という点からデータベースについてピンときたというか、やはり何事もいろいろと勉強してみるものだなぁと思いました。

あわせて読みたい

コメント