本文へスキップ

平成21年度 春期 ITパスポート試験 問93

この問題の解説と、これまでの解答の記録です。

問93
頻出度★★☆

フィットネスジムに勤める A さんは,会員管理システムのデータを基に,PC のデータベースソフトを利用して,利用状況の分析を行うことにした。図 1 に示す構造をもつ会員管理システムの会員表及び入館表から,20 代 ~ 50 代の会員についてのデータを 1 か月分取得した。 図1 会員表及び入館表のデータ構造 - 会員表:会員番号,会員名,性別,年齢 - 入館表:会員番号,日付,入館時刻 利用状況の分析を始めるために,取得した会員表及び入館表から図 2 に示す構造をもつ会員利用分析表を作成した。 図2 会員利用分析表のデータ構造 - 会員利用分析表:会員番号,会員名,性別,年齢,日付,入館時刻 作成した会員利用分析表のデータを基に,表に示す性別年代別利用者数一覧を作成した。人数は延べ人数であり,1 か月間の利用回数を表している。 表 性別年代別利用者数一覧

性別年代人数(人)
男性20 代56
男性30 代114
男性40 代227
男性50 代295
男性小計692
女性20 代100
女性30 代215
女性40 代348
女性50 代227
女性小計890

図2に示す会員利用分析表の作成方法について,適切なものはどれか。

出典 平成21年度 春期 ITパスポート試験 問93
解説

問 93関係データベースの基本演算は三つ

  • ア

    正解 正解は ア。作りたい会員利用分析表の項目は「会員番号,会員名,性別,年齢,日付,入館時刻」であり、このうち会員名・性別・年齢は会員表にしかなく、日付・入館時刻は入館表にしかない。つまり二つの表にまたがる項目を 1 行にまとめる必要がある。関係データベースでこれを行う演算が結合 (join) であり、両表に共通して存在する会員番号を結合キーにすれば、入館表の 1 件ごとの入館記録に、その会員番号をもつ会員表の会員名・性別・年齢がひも付いた行ができあがる。こうして初めて「誰が (性別・年代)」「いつ入館したか」を同じ行で扱えるようになり、表に示された性別年代別の延べ利用者数を数え上げられる。なお会員 1 人は 1 か月に何度も入館しうるので、結合結果の行数は入館記録の件数分になり、これがそのまま延べ人数の集計につながる。

  • 不正解イ

    整列 (ソート) は表の行の並び順を変えるだけで項目 (列) は増えず、射影は 1 つの表から必要な列だけを取り出す演算である。会員表を会員番号で並べ替え、入館表から列を取り出しても、両者は別々の表のままで 1 行に統合されない。会員名・性別・年齢と日付・入館時刻を同じ行に並べることはできない。

  • 不正解ウ

    選択 (selection) は 1 つの表から条件に合う行を取り出す演算で、取り出せる列はその表がもつ列だけである。入館表の会員番号を条件にして会員表を選択しても、結果に含まれるのは会員表の「会員番号,会員名,性別,年齢」だけで、分析に必要な日付・入館時刻が得られない。行を絞る演算と、列をつなぎ合わせる結合を混同している。

  • 不正解エ

    入館表を会員番号で整列しても行の順序が変わるだけであり、続けて会員表を選択しても得られるのは会員表の列だけである。ウ と同様に日付・入館時刻と会員属性が 1 行にそろわず、図2 の構造は作れない。整列は分析の前処理にはなり得るが、表どうしを結び付ける演算ではない。

ここがポイント
  • 関係データベースの基本演算は三つ。選択 = 条件に合う「行」を取り出す、射影 = 必要な「列」を取り出す、結合 = 共通の項目をキーにして複数の表を 1 つの表に合わせる。必要な項目が複数の表にまたがっているときに使うのは結合である。
  • 結合キーは両方の表に共通して存在する項目を選ぶ。本問では会員表と入館表の双方にある会員番号がキーで、会員 1 件に対し入館記録が複数件対応するため、結合結果は入館件数分の行になり、延べ利用回数の集計に使える。
用語

解答の記録