ITパスポート 2017年 春期 問89
問題文
情報処理に関する用語a〜dのうち、関係データベースの関係演算だけを全て挙げたものはどれか。
a 結合
b 射影
c 順次
d 選択
選択肢
ア:a, b
イ:a, b, c
ウ:a, b, d(正解)
エ:a, d
🔒 解説は解答すると表示されます
関係データベースの関係演算のうち、関係演算だけを選ぶ問題【ITパスポート 解説】
正解の理由
この問題の正しい選択肢は ウ です。理由は次の通りです。
- 関係データベース(表形式でデータを扱うデータベース)で使う基本的な操作、つまり「関係演算(リレーショナル代数:関係データベースに対する基本操作の集合)」には、結合、射影、選択などがあります。
- 結合(ジョイン、複数の表を関連付けて一つの表にする操作)は a に該当します。
- 射影(プロジェクション、表から特定の列だけ取り出す操作)は b に該当します。
- 選択(セレクト、表から条件に合う行だけ取り出す操作)は d に該当します。
- c の「順次」は、関係演算の名称ではなく、順番に処理することを表す一般語であり、関係データベースの標準的な関係演算には含まれません。
したがって a, b, d を含む選択肢 ウ が正解です。
解法ステップ
- 問題文で尋ねている対象を確認:関係データベースの「関係演算」だけを選ぶ。
- 各用語の意味を一つずつ確認する(初学者は短い定義を思い出す)。
- 結合:複数の表をキーでつなぎ合わせる操作。
- 射影:必要な列だけ取り出す操作。
- 選択:条件で行を絞る操作。
- 順次:関係演算の標準的な名前ではない。
- 各選択肢に含まれる用語を上の定義に照らして、関係演算だけを含むものを選ぶ。
- a, b, d を含む ウ が該当するため選ぶ。
選択肢別の誤答解説
- ア: a, b
- 「結合」と「射影」は関係演算ですが、「選択(d)」が抜けています。関係演算の主要な3つ(結合・射影・選択)のうち1つが欠けているため不正解です。
- イ: a, b, c
- c の「順次」は関係演算ではありません。したがって一つ誤った用語が混じっているため不正解です。
- ウ: a, b, d
- 結合、射影、選択の3つは関係データベースの基本的な関係演算です。余分な語が含まれておらず、これが正解です。
- エ: a, d
- 「射影(列を選ぶ操作)」が含まれていないため不完全です。よって不正解です。
よくある誤解
- 「SQLで使うSELECTと射影は同じ」と考える誤解
- SQLのSELECT句は列を指定する機能(射影に相当)ですが、SQL全体のSELECT文は行の絞り込み(WHERE)や結合(JOIN)など複数の操作を組み合わせます。言葉の使い分けに注意してください。
- 「結合=単に横に並べるだけ」だと思う誤解
- 結合は関連するキーに基づいて行を結びつける操作で、ただ横に並べる(カルテシアン積)だけではありません。条件を指定して関連する行だけを結合するのが普通です。
- 「順次も関係演算だ」と勘違いする
- 「順次」は処理の順番を表す一般語で、関係代数の命名には含まれません。
補足コラム
関係演算には今回の結合・射影・選択の他にも次のようなものがあります(参考知識)。
- 和(合併)・差(差集合)・交差(共通する行)
- 直積(カルテシアン積、全ての組み合わせを作る)
- 除算(ある条件をすべて満たすものを求める操作)
関係演算とSQLの対応例(イメージ):
- 射影(列を選ぶ) → SQL: SELECT 列名 FROM ...
- 選択(行を絞る) → SQL: WHERE 条件
- 結合(表同士を結ぶ) → SQL: JOIN ... ON 条件
簡単なSQL例(イメージ):
-- 学生テーブルと成績テーブルを氏名と点数だけ取り出す(射影+結合+選択)
SELECT s.name, g.score
FROM students s
JOIN grades g ON s.id = g.student_id -- 結合
WHERE g.score >= 60 -- 選択(合格者だけ)
FAQ
Q1. 射影と選択の違いは何ですか?
A1. 射影は「列(項目)を選ぶ」操作、選択は「行(レコード)を条件で絞る」操作です。射影は縦方向(列)の削除、選択は横方向(行)の抽出をイメージすると覚えやすいです。
A1. 射影は「列(項目)を選ぶ」操作、選択は「行(レコード)を条件で絞る」操作です。射影は縦方向(列)の削除、選択は横方向(行)の抽出をイメージすると覚えやすいです。
Q2. 結合は必ず使うべき操作ですか?
A2. 関係データベースで複数の表に分けてデータを管理している場合は、関連する情報を組み合わせる際に結合がよく使われます。しかし用途によっては結合を使わず単一表で済ませることもあります。
A2. 関係データベースで複数の表に分けてデータを管理している場合は、関連する情報を組み合わせる際に結合がよく使われます。しかし用途によっては結合を使わず単一表で済ませることもあります。
Q3. 「順次」はプログラミングで出てくる用語ですか?
A3. はい。「順次(シーケンシャル)」は処理を順番に行うという意味で、プログラムの制御や工程の説明で使いますが、関係代数の基本演算名ではありません。
A3. はい。「順次(シーケンシャル)」は処理を順番に行うという意味で、プログラムの制御や工程の説明で使いますが、関係代数の基本演算名ではありません。
関連キーワード: 関係データベース、関係演算、リレーショナル代数、結合、射影、選択、カルテシアン積、SQL、JOIN、プロジェクション

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

