平成27年度 春期 ITパスポート試験 公開問題 問88 解説 データベースの調査
入退室管理で用いるデータベースを使って、入退室に関する調査を行うことにした。図1の三つの表のデータを使って行うことができる調査はどれか。
- 1日ごとと区画ごとでの社員の入室と退室の記録回数が一致しない原因別に社員数を集計し、最も多い原因を特定する。
- 一度の解錠で同時に複数の社員が入退室することで、入室と退室の記録回数が一致しなかった社員について、他のどの社員の入室又は退室のときに、一緒に入ったかを調べる。
- 各部署に所属する社員が、各区画に入室した回数を、月ごとに集計する。 ✓ 正答
- 入室が許可されていない区画への社員の入室の回数を、1日ごとと区画ごとに集計する。
解説
データベースのデータ構造とクエリ(検索・集計命令)の組み合わせを考える問題です。この種の問題では「図1」にある各表の項目(列)に注目し、その項目同士を関連付けることができるかを判断します。
今回の図1には「社員表(社員ID、氏名、部署コード)」「部署表(部署コード、部署名)」「入退室記録表(社員ID、区画ID、日時)」があると想定されます。正解以外の選択肢は、表に存在しない情報や、論理的に導き出すのが困難な推論が含まれているため除外されます。
リレーショナルデータベースの結合と集計
この問題の正解が「各部署に所属する社員が、各区画に入室した回数を、月ごとに集計する」である理由は、この分析に必要なデータがすべての表を結合することで揃うからです。
- 部署名は部署表から取得する。
- 社員がどの部署に所属しているかは社員表でわかる。
- どの社員がどの区画に入ったかは入退室記録表にある。
- 日時情報から月を取り出すことができる。
これらを「社員ID」や「部署コード」といった共通するキー項目で結合(JOIN)し、部署・区画・月ごとにグループ化(GROUP BY)して集計(COUNT)すれば、目的の結果が容易に得られます。ITパスポート試験では、このように複数の表を関連付けて、必要な情報を抽出するプロセスの理解が問われます。
データ分析におけるデータベースの役割
データベースの利点は、単独では意味を持たないバラバラのデータから、意味のある情報を引き出せることにあります。
たとえば、選択肢にある「入室と退室の記録回数が一致しない原因」を特定しようとする場合、データベースの記録には「なぜ一致しなかったか」という理由(物理的な故障なのか、誰かの不正なのか、単なる操作ミスなのか)を記録する項目が存在しない限り、集計することはできません。
このように、データベースを活用して調査を行う際は、単に「データがあるから何かできるはずだ」と考えるのではなく、以下の点を確認することが重要です。
・分析したい項目が、データベースのテーブル(表)のどこに含まれているか ・テーブル同士を関連付けるためのキー項目(社員IDなど)が共通して存在しているか ・目的の結果を得るために必要な計算や抽出ルールが明確か
システムエンジニアやデータアナリストは、現場の業務プロセスをシステム上のデータとしてどのように記録し、それをどう集計すれば経営判断や業務改善に役立つ情報を引き出せるかを設計しています。この問題は、データベースを用いた情報分析の第一歩となる「構造の理解」を問う非常に教育的な良問です。