2001年9月のご挨拶

更新日:2001/9/1

 データベース

データベース

  近、アクセスを受講される方が増えてきました。
  アクセスは、マイクロソフト社の販売するデータベース管理ソフトです。
 デスクトップ上のデータベース管理ソフトとしては、圧倒的なシェアを誇っています。

  MS-DOSの時代は、dBASE及びその互換ソフトが有力なデータベース管理ソフト(「DBMS」という。)でした。
 かくいう、私も「dBXL」を使用してみたことがあります。
 dBXLは、当時、サザンパシフィックが販売していたソフトで、軽量で使いやすい、dBASE互換ソフトでした。
 dBXLは、その後、ARAGOという名前で発展しました。
 現在では、発売元は変わっていますが、「ARAGO for Windows」として健在です。

  私の方は、Windowsになった後、当時、ボーランドが販売していた、「Visual dBASE」を購入してみたりしたのですが、何か、今ひとつ、しっくりこないな、という感じがしました。
  結局、Visual Dbaseが日本では、普及しなかったのは、ロータス123と同様に、一世を風靡したMS-DOSの時代との互換性にこだわり過ぎて、WINDOWSへの対応が不十分になったのが原因かな、と思います。
  ただ、このように、日本では、dBASE互換ソフトは、WINDOWSの時代に入ると、急速にシェアを減らしてしまいましたが、世界的に見るとマイクロソフトが販売している「Fox Pro」などをはじめとしてしっかりと根付いており、アクセスなどのデスクトップ上のDBMSとSQLサーバーやオラクルなどの大型DBMSとの間をつなぐ役割を果たしているようです。

 さて、アクセスですが、Access97が発売された当初は、当教室のコースを受講される方がいらっしゃったのですが、近年は、人気の無いコースになってしまっていました。
  それが、今年になりまして、何人かの方が受講されるようになり、ありがたいことだと感じております。
  これは、それだけ、ワードやエクセルをご存知の方が多くなり、その上を目指す方がアクセスに目を向けてこられたということかな、と理解しています。
  広く使われている、エクセルは、「表計算」、「グラフ」、「データベース」という3本柱を売り物にしています。
 これは、元々は、ロータス123(ワントゥスリー)から受け継いだものですが、エクセルのデータベース機能を使用していると、いくつかの不満がでてきます。
 エクセルのシートの行数が65536行しかないこと、2つ以上の表を組み合わせて使用しようとすると融通が利かないなどによります。
  ちょっと、システム的なことを考えた場合、エクセルでは、これらのことから、使いにくいシステムになってしまいます。

  特にシステムを作成する人と使う人が別の場合は、難しくなります。エクセルでは、利用者がいろいろなことができてしまい、設計者が設計したとおりに使用してもらいにくいのです。もちろん、エクセルに慣れた人が増えてきたことに伴い、エクセルを前面に出してバックエンドにDBMSを置いて使用するシステムも増えてはいるようですが。

  そこで、アクセスです。アクセスでは、データは、すべて表(テーブル)に格納されてます。データベースが使いやすいかどうかは、まず、テーブルの設計に係ってくるわけです。
 表という、私たちは、つい、エクセルの表を思い浮かべてしまうのですが、データベースの世界では、あのような表は、ビュー表と呼ばれています。
 ビュー表は、人間が理解しやすいのですが、DBMSでは、扱いにくい表です。
 そこで、ビュー表をいくつかのテーブルに分解してDBMSで扱いやすいものにする必要があります。
 これをテーブルの正規化と呼んでいます。

  正規化には、普通、第1正規化から第4正規化までの4段階があります。
 第1正規化では、表を縦×横の2次元のものにします。
 1個のセルには、2つ以上の項目を入れないようにします。
 これを属性の原子性と呼んでいます。
 例えば、住所の項目に郵便番号と住所本体が含まれている場合にこれを分けるなどです。

  また、いわゆる主キーとなる項目を含んでいるようにします。これを候補キーといいます。
  第2正規化について、説明しましょう。表の中に候補キーに従属する項目があったとします。
 従属するというのは、候補キーが決まるとその項目が決まるという意味です。
 このような組み合わせは、別の表にしようというのが、第2正規化です。
 例えば、日付-商品番号-商品名-販売数、といった表があったとします。
 商品番号が候補キーで商品名がそれに従属しています。
 この関係は、別表に分けるということです。
 テーブルは、日付-商品番号-販売数、商品番号-商品名、という2つの表に分解されます。

  第3正規化では、候補キー⇒従属する項目⇒別の項目というような推移従属性を禁止します。
 例えば、社員番号-氏名-所属部所番号-部所名と表があった場合、社員番号が決まると氏名が決まり、氏名が決まると部所が決まるという推移従属性が含まれています。
 この表は、番号-氏名、部所番号-部所名、という2つの表に分解されます。

  最後に第4正規化では、本来因果関係のない項目が集まった連結主キーを禁止します。
 例えば、社員番号-資格-趣味というテーブルがあった場合、この3つの組を主キーと考えます。どれか2つを主キーと考えたのでは、ユニークなものになりません。どうしても3つを一組と考えないと主キーを構成できないのです。
 このようなキーを連結主キーといいます。
 第4正規化では、この表を社員番号-資格、社員番号-趣味という2つの表に分解します。
 これらの表は、(社員番号,資格)、(社員番号,趣味)というそれぞれが主キーになっています。

  ただし、上記のように正規化を推し進めた場合、往々、テーブルが多数できてしまいます。
 実用上は、第3正規化程度までで止めることが多いようです。
  データベースなんて、難しいと感じられている方も一度、アクセス等のDBMSを学習していただければ、そんなに難しいことでは、ないなあ、とお考えになるかも知れません。

 では、今月は、ここまで。
 皆様、お元気でお過ごし下さい。また、来月、お会いしましょう。


前回のご挨拶に戻る今月のご挨拶に戻る次回のご挨拶に進む