メルマガ「反・資格宣言」216号
ウィンドウズのパソコンで個人レベルで使えるデータベースソフトとしては、
マイクロソフトの「アクセス」が有名です。
マッキントッシュでは「アクセス」がないので「ファイルメーカーPro」が
主流だと思います。
データベースソフトは、ワードやエクセルなどと比べると敷居が高く、一部
の人しか知らないソフトと思われているところがあります。
かなりエクセルに詳しい人でも、アクセスは使ったことがないという人も
多いと思います。
まずは、「データベース」の基本的な考え方から説明していきましょう。
■データベースとは何か?
一般に大企業などで使われているデータベースソフトなどは、ソフトという
よりはシステムといったもので、ソフト単体というよりは複数のソフトが
連携して動くように作られています。
データベースそのものは、テーブルといわれる一番単純なファイルで構成
されており、ハードディスクなどに保存されています。
このテーブルから必要なデータだけを抽出したり、データを追加、消去したり
するのが「データベースエンジン」といわれるプログラムになります。
このデータベースエンジンの部分がそれぞれのデータベースソフトによって
異なっているわけです。
このデータベースエンジンに対して要求を出す言語がSQLといわれる言語
です。
SQLという言語は、私たちが見ている画面(フォーム)とデータベース
エンジンの間を仲介してくれている言語なのです。
簡単に説明すると以下のような図式になります。
┌────────────────┐
│インターフェース画面(フォーム)│(私たちが操作する画面)
└────────────────┘
↓ ↑
SQL言語 データ
↓ ↑
┌────────────────┐
│データベースエンジン │(影で動いているプログラム)
└────────────────┘
↓ ↑
┌────────────────┐
│データベース(テーブル) │(ハードディスク上のデータ)
└────────────────┘
通常のデータベースソフトといわれる部分はデータベースエンジンと
データベースの部分だけです。
特に、「データベースエンジン」部分が心臓部で、この部分が安定して
高速で動くことが求められます。
このデータベースエンジンの部分は、画面に全く表示されないプログラム
でCPU、メモリ、ハードディスクの間だけで動いています。
一方、インターフェース画面の部分はデータベースソフトの外側になります。
この部分はシステムにあわせて自作することが必要になります。
アクセスでは「フォーム」といわれる部分になります。
------------------------------------------------
アクセスはとても親切なデータベースソフトです
------------------------------------------------
個人でも使えるデータベースソフトが「アクセス」です。
アクセスは、とても親切なデータベースソフトで、一般の人がデータベース
を個人でも開発できるように多くの機能を最初から持っています。
以下は、アクセスの特筆すべき機能の一例です。
1.外部のテーブル(エクセルなど)をインポートできる。
2.テーブルどうしのリレーション(関係)を視覚的に定義できる。
3.SQLを自動的に作成するためのクエリー機能が付属している。
4.インターフェース画面を作成できるフォーム機能が付属している。
5.印刷画面を作成できるレポート機能が付属している。
6.プログラムを簡単に作成するための補助機能(マクロ)が付属している。
7.アクセスVBAを使って、プログラムを組み込むことができる。
8.外部のテーブル(他のアクセスファイル内のテーブルやエクセル)など
をリンクテーブルとして仮想的に利用できる。(ネットワーク経由も可)
9.クエリーで抽出したテーブルをエクセルなどに書き出すことができる。
10.ピボットグラフを作成でき、流動的なデータをグラフにできる。
などです。
------------------------------------------------
1つのデータベースシステムを構築する上で必要な機能が1つのソフトの中
にすべてあるという意味では、かなり有難いソフトだと思います。
アクセスというソフト自体はデータベースのシステム周辺の部分を構築する
ためのツールが沢山用意されているソフトです。
ところが、アクセス本体のデータベースエンジンの部分はあまり知られて
いません。
アクセスのデータベースエンジンは「Jet データベースエンジン」という
ものです。
アクセスのイメージを図式化してみたのが以下の図です。
┌───────────────────────────────┐
│マクロ、アクセスVBA(影で動くプログラム) │
└┬─────────────┬──────────────┬─┘
│ ↓ │
│┌──────────────────────────┐│
││フォーム(表示画面を作成)、レポート(印刷画面を作成││
│└──────────────────────────┘│
│ ↓ ↑ ↓ ↑ │
│ SQL 表示データ SQL 表示データ │
↓ ↓ ↑ ↓ ↑ ↓
┌──────────────┐ ┌──────────────┐
│テーブル(実在するテーブル)│ │クエリ(仮想的なテーブル) │
└──────────────┘ └──────────────┘
↓ ↑ ↓ ↑
SQL 表示データ SQL 表示データ
↓ ↑ ↓ ↑
┌───────────────────────────────┐
│データベースエンジン(JETデータベースエンジン) │
└───────────────────────────────┘
↓ ↑
┌────────────────┐
│データベース(テーブル) │(ハードディスク上のデータ)
└────────────────┘
個人的なイメージなので、教科書的なものではありませんが、
私の中のアクセスというソフトのイメージです。
--------------------------
アクセスのソフトの構成
--------------------------
基本的なアクセスの機能について説明します。
アクセスは「テーブル」「クエリ」「フォーム」「レポート」
という4つの機能と、それを連動させて動かすための「マクロ」
というプログラムで構成させています。
┌────────────────────────────┐
│■テーブル │
│ │
│データベースの材料となるテーブルを定義して作成するところ│
│です。 │
│ │
│外部のアクセスやエクセルのテーブルなどをインポートしたり│
│外部のアクセスやエクセルのテーブルをリンクして仮想的に │
│利用することができます。 │
│ │
└────────────────────────────┘
┌────────────────────────────┐
│■クエリ │
│ │
│クエリとは、テーブルどうしを結合して新しいテーブルを │
│仮想的に作成したり、データを抽出したりすることができる │
│機能です。 │
│ │
│実際は、クエリを作成すると、SQLが自動で生成されて │
│それがデータベースエンジンに送信されてテーブルが生成され│
│ています。(テーブルはそういう意味で仮想的なものです) │
│ │
└────────────────────────────┘
┌────────────────────────────┐
│■フォーム │
│ │
│フォームとは、インターフェース画面を作成するためのもの │
│です。具体的には、テーブルやクエリで作成したテーブルを │
│もとに、カードタイプやリストタイプなどでデータを入力 │
│したり、表示したりするための画面を作る機能です。 │
│ │
│ │
│テーブルを選択してフォームを作成するだけで、自動で │
│それなりの表示画面ができますが、そのレイアウトは自由に │
│変更することができます。 │
│ │
└────────────────────────────┘
┌────────────────────────────┐
│■レポート │
│ │
│レポートとは、結果として抽出したデータをきれいに印刷 │
│できるように印刷レイアウトをつくるための機能です。 │
│データを表示させるだけでなく、レポート上で計算したり │
│集計したりすることもできます。 │
│ │
│ │
│テーブルを選択してフォームを作成するだけで、自動で │
│それなりの印刷レイアウトができますが、そのレイアウトは │
│自由に変更することができます。 │
│ │
└────────────────────────────┘
■選挙データはアクセスの材料として最適です
選挙が近づくといつも候補者のデータをインターネットからしこしこと
コピーして、エクセルの表をつくります。
インターネットでは、地域別とか、政党別とか、あいうえお順とかで
さまざまなテータが断片的に表示されていますが、それらの断片的なデータ
をコピーして、エクセルのシートに1つの表としてまとめます。
そのままの状態では使えないので、エクセル側で書式を解除したり、
セルの結合の解除、リンク部分などの解除をして、通常のエクセルの表
として整えます。
さらに、インターネットの選挙特集のページはたくさんありますので
利用できるデータはすべてエクセル上にまとめて表にします。
今回は、インターネットでの選挙特集から2種類のエクセルの表を作成
しました。
今回参考にさせていただいた選挙特集のサイトは以下の2箇所です。
TBS「乱!総選挙2009」
http://www.tbs.co.jp/senkyo2009/candidate/
「FNNスーパー選挙2009」
http://www.fnn-news.com/senkyo/senkyo2009/meibo/search/aiueo_01.html
これらの2つの表をアクセスにテーブルとしてインポートして、クエリで
候補者名をリンクキーとして2つの表を結合しました。
まだ、投票前なので、得票数と当落の結果はでていませんが、あらかじめ
それらの列も作っておきました。
クエリで作成した表をエクセルで書き出して、以下のエクセルファイルを
作成しました。
(1)小選挙区立候補者一覧表
(2)比例立候補者一覧表
ちなみに、これらの一覧表をまとめて新規のエクセルファイルを作成し、
Webページ書き出しを行い、ホームページとしてアップしました。
http://www.aki-art.com/2009senkyo/
興味のある方は、これらのデータをコピーしてエクセルにコピーして
いただければそのまま使えると思います。
このデータに得票数と当落を入れて、エクセルのピボットグラフなどで
選挙の解析を行うことができます。
アクセスはこのようにエクセル書き出しが簡単にできることから、
エクセルデータを一旦アクセスに読み込み、アクセス上でテーブルを結合
してから、再びエクセルに書き出して新たな表を作成するようなことも
できます。
■アクセスにもピボットグラフがあります
データの解析を行うためのピボットグラフは、アクセスにもあります。
アクセスの場合は、「フォーム」の機能の中にピボットグラフの機能が
あります。
エクセルのピボットグラフは、データを作成してピボットグラフを作成した
後に、データを追加や変更することはできませんが、アクセスの場合は
追加したデータに応じてピボットグラフが自動で更新されるようになります。
データをリアルタイムで更新・追加しながらデータ分析ができるので
アクセスのピボットグラフはエクセルのピボットグラフより優秀です。


