【4】第二章 一日目

 ここはX社の会議室。
 ノートを広げて、神妙に狭山さんを待っている、山上君と松本さんがいる。
「山上君、今日はAccessについて教えてもらうのよね?」
 目つきの鋭い松本さんが、山上君に言った。
「うん、そのはずなんだけれどね」
 と山上君も歯切れの悪い返事。
「でも、そうなら、何で『パソコンなんかは持って来なくて良いので、管理している帳票類と、筆記用具を持ってきて』ってことになるの?」
「そ、そうなんだよね。実は僕も不思議に思っているんだけれど」
「そう思っているのなら、事前にちゃんと聞いておいてよ」
「はい。すみません」
 と、早くもうなだれ気味の山上君。

 そこへ、狭山さんがやって来た。
「遅くなってすみません。では、早速始めましょう。では、改めまして、これからAccessに関して説明させていただきます、狭山と申します。よろしくお願いいたします」
「営業部第一課の松本です。こちらこそよろしくお願いいたします」
「営業部第二課の山上です。先日は無理を言ってすみませんでした。よろしくお願いします」

「いえいえ。では、早速始めましょう」
 と、狭山さんはホワイトボードの前にやって来た。
「これから何回かに渡って、皆さんに説明するのは『現在、皆さんが担当されている、顧客情報の管理業務を、Accessデータベースを使用して効率化するための様々な知識』です。で、その知識を使って、実際にAccessを使用したコンピューター・システムを作るのは、皆さんです。まず、この点は、よろしいですか?」
 二人は、そろって頷いた。

「では、最初に、『そもそもAccessとはどんなソフトウェアか?』を説明しましょう」
 と、狭山さんがホワイトボードに書き出した。

■Microsoft Access

データベース管理システム:Database Management System。(略語はDBMS)
Microsoft Office:Accessを、WordやExcelなどと共にしたパッケージ。

「Accessは、マイクロソフト社が販売しているデータベース管理システムと呼ばれる種類のソフトウェアです。Accessは、単体で販売されてもいますが、文書作成ソフトウェアであるワード(Microsoft Word)、表計算ソフトウェアであるエクセル(Microsoft Excel)などと共に、オフィス(Microsoft Office)というソフトウェア・パッケージに組み込んで販売もしています」

「ハイ!」
「はい。なんですか山上さん」
「そもそも“データベース”って何なのでしょうか?」
「良い質問ですね。では、まず、Accessでいう“データベース”から説明していきましょう。でも、まずは“フィールド”から説明していきます」
 と、狭山さんがホワイトボードに書き出した。

フィールド

「データベース上で、あるデータの値が記録される器(うつわ)を“フィールド”と言っています。ここには、『必ず一つの値しか記録できない』という前提があります」

レコード

「次に、フィールドに記録されたデータの値が、すべてある特定の管理対象から出ている場合、この『値の記録されたフィールドの集まり』を“レコード”と呼んでいます。この図では、“社員の加藤さん”というある特定の管理対象の様々なデータ、例えば、社員№や氏名、性別などが記録されているフィールドを集めると、これが“加藤さんを表すレコード”ということになります」

テーブル

「さらに、“加藤さんを表すレコード”や“木村さんを表すレコード”など、『社員を表すレコード』という“同じ種類のレコード”を集めると、これが『社員を表すテーブル』ということになります」

データベース

「そして、テーブルが1つに集まったもの、これが、Accessでいう“データベース”なのです。これらは全て『データの値を入れておく器』とみなすことができます。そこで、私は良く『データベースは、巨大な器』と言っています」
「ハイ」
「はい。松本さん」
「私は、業務でExcelを使っているのですが、ここでも“データベース”という言葉が出てきています。Excelも、データベース管理システムなのですか」
「良い質問です。実は、Access上でテーブルを作成し、この中のレコードを表示させると、Excelで作成した様な表の形でレコードが表示されます。Excelでいう“データベース”は、Excel上で、テーブルに似せた管理ができる様にしたものです」

Accessのテーブル

「まず、Accessのテーブルですが、図の様な特徴があります。これに対して、Excelのテーブルは、次の様な特徴を持っています」

Excelのテーブル

「ハイ」
「はい。松本さん」
「特徴の3番目が分かりにくいのですが」
「そうですね。例えば、次の例などがあります」

Excelのテーブルへの操作

「この例では、“性別”欄の頭1文字を、式を使って操作し、“性”欄に表示させようとしていますが、それには式を“すべてのセルに”同じ様に設定しなければなりません。万一、図の様に、設定ミスがあると、正しい結果が表示されません。これに対して、Accessでは、同様の操作を、“クエリ”というものの上で『性別という項目を使った式1つだけを設定する』だけで良いのです」

Accessのテーブルへの操作

「あっ。こういったこと、Excelでは、良く起こります。Excelだと、個々のセルにどういった式が設定されているか、パッとは分からないので。Accessだと、こういうミスはなくなるんですね」
「そうですね」
「ハイ!ハイ!」
「はい。山上さん」
「特徴の4番目も分かりにくいです」
「これも良く誤解されることですので、例をあげておきましょう」

レコードの順序を意識したExcel操作

「この例の様に、Excelでは『すぐ上』とか『上の行のここから、ここまで』といった、今見えているレコードの順序を意識した操作を指定することができます。ですが、Accessでは、今見えているレコードの順序を意識した操作はできません。それは『テーブル内では、レコードの順序は管理されない』からです」
「えっ、でも、仕事をするには、レコードの順序は意識しないと」
「そう。でも、必要とされるレコードの順序は1つでは無いのです。業務の目的によって、様々な並びが必要とされるのです。では、例をあげてみましょう」

レコードの順序を意識した操作の例1

「これは、先程と同様の例です。ここでは、支店ごとに、年月の変化をみるため、まず支店ごとにレコードが並んでいなければなりません。では、別の例を見てみましょう」

レコードの順序を意識した操作の例2

「今度は、年月ごとに、支店の売上額の割合(構成比)を見ています。そのため、まず年月ごとにレコードが並んでいなければなりません。」
「そうか。業務の目的が違うと、必要な並びも変わるのか」
「でも、“構成比”の方は、並び順というよりは、『年月ごとにグループ化する』っていう意味が強いんじゃない?」
「松本さん、良いところに気づかれましたね。では、これらの例を、Accessでは、どの様に取得するかを見ていきましょう。但し、今のところは詳しい操作や指定の仕方は省略して、『順序を意識しないで、前月比や構成比を得る方法』を見ていきます。まずは、例1です」

例1をAccessで求める手順

「続けて、例2も見てみましょう」

例2をAccessで求める手順

「例1では、個々のレコードで“前年月”を求めてから、それと同じ値の年月の売上額を取得します。その後、当年月の売上額と、前年月の売上額との差を求めて、前月比とします。また、例2では、年月ごとの売上総額を記録する“別のテーブル”を作成し、これを参照することによって、構成比を求めています。こうすることによって、レコードの順序に関係なく、必要な値を得ることができるのです」
「う~ん。Excelほど単純ではないですね」
「でも、やろうとしていることは同じじゃない? Excelの場合は『たまたま、前年月のレコードが、すぐ上の行にあった』とか『たまたま、同じ年月のレコードが固まっていた』から、簡単な指定で済んでいた様に思えるし」
「松本さん、良い発言です。Excelでデータ管理をされている方が陥り易いのは、例1と例2のために『順序が異なるだけのデータを、別々に記録しておく』という状況を作り出してしまうことなのです」
「あっ、これ私の課では良くやっています。おかげで、何か一つデータを変更しようとすると『あちらのExcelシートも直し、こちらのExcelシートも直し』っていう様に、無駄な作業をする羽目になっているんです」
「えっ、第一課もそうなの? ウチの課も同じだよ。なるほど。それで僕らがここにいる訳だ」
「そのようね」
「さて、この様にAccessではレコードの順序を意識しないでデータをテーブル上で管理しています。そして、レコードの並び替えや個々のデータの操作に関しては、クエリなどを使用することで対応しています。ここまでは良いですか?」
「(二人そろって)ハイ」

Accessの考え方:元になるデータは一ヶ所で管理

「ハイ!」
「はい分かりました、山上さん。今度は“特徴の5番目”でしょう?」
「その通りです」
「では、テーブルのキーについて説明していきましょう、と言いたいところですが、これは後日、別の機会にします」
「え~。出し惜しみしないで下さいよ」
「いえ。実は、このキーというものは非常に重要な意味を持っていて、ここで一般的な話をするよりは、実際にテーブルを皆さんと設計する際にお話しした方が、より深く理解して頂けるものと考えているからです」
「分かりました。いいよね、山上君」
「ハイハイ」
「では、次に移りましょう。Accessはテーブルで、様々なデータを管理する訳ですが、さて実際に皆さんが必要とするデータとは何でしょうか。また、どうやれば、その答えを得ることができるのでしょうか。松本さん、どう思われますか」
「う~ん。たぶん、『今の業務で使っているデータ』ということになるのでしょうか」
「その通りです。では、それはどこから見つけ出せば良いのでしょうか」
「う~ん。たぶん、『今の業務で使っている帳票から』ということでしょうか」
「その通りです。ということで、皆さんには、今の業務で使用している帳票類を持って来て頂きました」
「そうだったんですか。でも、私のところと、山上君の第二課で、別々の帳票がありますが」
「その点は、『同様の目的で使用している帳票を統合する』積りで臨みます。では、まず、各帳票を使用して、“概念情報フロー”を作成していきましょう」
「“概念業務フロー”って、“業務フロー”とは違うのですか」
「そうです。本来は、皆さんに作って頂きたいのですが、今回は、私が皆さんにヒアリングしながら作ってみましょう」

コンテンツの残りを閲覧するにはログインが必要です。 お願い . あなたは会員ですか ? 会員について