ITパスポート 2016年 春期 問95
問題文
表1と表2に、ある操作を行って表3が得られた。行った操作だけを全て挙げたものはどれか。

選択肢
ア:結合
イ:結合、射影(正解)
ウ:結合、選択
エ:選択、射影
🔒 解説は解答すると表示されます
表1・表2から表3が得られた操作は何か【ITパスポート 解説】
正解の理由
表3は「品名」「価格」「棚番号」の3列だけを持っています。表1には「品名」「価格」などがあり、表2には「棚番号」があります。両表を「品名コード」で結びつけて(結合)、結合後に必要な列だけを取り出して(射影)作成されています。したがって選択肢のうち、結合と射影を行うもの、つまり選択肢イが正解です。
ここで使う用語を一言で説明します。
- 結合(join:複数の表を共通の列でつなぎ、1つの表にする操作)
- 射影(projection:必要な列だけを取り出す操作)
- 選択(selection:条件に合う行だけを取り出す操作)
解法ステップ
- 表1と表2を「品名コード」で対応する行同士を合わせる(結合)。
- 表1の「001」と表2の「001(アポストロフィ付き)」は同じコードを指すため結合可能です。
- 結合結果の列は「品名コード」「品名」「価格」「メーカ」「棚番号」などになります。
- 結合結果から表3に必要な列「品名」「価格」「棚番号」だけを残す(射影)。
- 「品名コード」や「メーカ」は不要なので削除するイメージです。
- 結果として表3のような表が得られます。
(関係代数の式で示すと)
SQLの例(イメージ):
SELECT t1.品名, t1.価格, t2.棚番号
FROM 表1 t1
JOIN 表2 t2 ON t1.品名コード = t2.品名コード;
選択肢別の誤答解説
- ア: 結合
- 結合だけでは列は増えますが、表3のように「メーカ」や「品名コード」を取り除く操作(射影)がされていません。よって表3になりません。
- イ: 結合、射影
- 結合で情報を揃え、射影で必要な列だけを残す。表3を正しく作る手順です(正解)。
- ウ: 結合、選択
- 選択は行の絞り込み(例:価格が150以上など)を意味します。表3では行が絞られておらず、行削減目的の条件も無いので不要です。列を削る射影が抜けているため不十分です。
- エ: 選択、射影
- 選択だけでは表1と表2をつなげられないため、棚番号を得られません。結合がないと表2の情報を取り込めないので誤りです。
よくある誤解
- 「結合すれば表3になる」と考えるミス
- 結合で列は増えますが、不要な列(品名コード・メーカなど)が残ります。表3はそれらが無いので、射影(列の選択)が必要です。
- 表2の「001」に付いている小さなアポストロフィ(')を別の値だと誤解する
- アポストロフィは見た目上の表示(例えば先頭0を文字列として保持するため)を示すことが多いです。実際には同じ品名コードとして扱えば結合できます。
- 選択(行条件)と射影(列選択)を混同する
- 選択は「どの行を残すか」/射影は「どの列を残すか」です。目的が列の削除なら射影が必要です。
補足コラム
- 内部結合(inner join)と外部結合(outer join)
- 今回は表1と表2両方に対応する品名コードが存在するため内部結合(両方にある行だけを結合)で問題ありません。もし片方にしかないデータも残したいなら外部結合(左外部結合など)を使います。
- 表示上のアポストロフィ(')について
- 表計算ソフトやデータ入力で先頭の0を消さないように文字列扱いにするために付けることがあります。データ比較(結合)の際は値の型(文字列か数値か)に注意してください。
FAQ
Q1: なぜ「選択」は使わないのですか?
A1: 表3では行の条件で絞り込まれていません(両行とも残っている)。選択は条件に合う行だけを残す操作なので今回の変換には不要です。
A1: 表3では行の条件で絞り込まれていません(両行とも残っている)。選択は条件に合う行だけを残す操作なので今回の変換には不要です。
Q2: 表1の「品名コード」がキー(主キー)になっているのですか?
A2: 表1では「品名コード」が各商品の識別子として機能しており、結合の基準(外部キー・主キーの関係)になっています。主キー(primary key)は表の行を一意に識別する列です。
A2: 表1では「品名コード」が各商品の識別子として機能しており、結合の基準(外部キー・主キーの関係)になっています。主キー(primary key)は表の行を一意に識別する列です。
Q3: 実務での例は?
A3: 商品マスター(表1)と棚配置表(表2)を結合して、棚の位置だけまとめた帳票(表3)を作る場面と同じです。帳票に不要な列があれば射影で削除します。
A3: 商品マスター(表1)と棚配置表(表2)を結合して、棚の位置だけまとめた帳票(表3)を作る場面と同じです。帳票に不要な列があれば射影で削除します。
関連キーワード: リレーショナル代数、結合、射影、選択、JOIN、SELECT、主キー、外部キー、テーブル結合、SQL

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

