基本情報

基本情報 2022 サンプル問題 問24|テクノロジ系に関する問題

問題

基本情報 | 2022 サンプル問題 | 分野:テクノロジ系

関係モデルにおいて表 X から表 Y を得る関係演算はどれか。 表 X 商品番号 | 商品名 | 価格 | 数量 A01 | カメラ | 13,000 | 20 A02 | テレビ | 58,000 | 15 B01 | 冷蔵庫 | 65,000 | 8 B05 | 洗濯機 | 48,000 | 10 B06 | 乾燥機 | 35,000 | 5 表 Y 商品番号 | 数量 A01 | 20 A02 | 15 B01 | 8 B05 | 10 B06 | 5

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は B
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

答えは b「射影(projection)」 です。

元の表 X には「商品番号・商品名・価格・数量」の4列ありました。一方、できあがった表 Y には「商品番号・数量」の2列だけ残っています。行(レコード)はそのまま全部、列だけ取り出したわけですね。

このように「ほしい列だけタテに切り抜く」操作を射影(しゃえい/projection)といいます。SQL でいうと `SELECT 商品番号, 数量 FROM X` の世界です。

👉 覚え方:射影=列を選ぶ(タテに切る)/選択=行を絞る(ヨコに切る)。

ほかの選択肢:a 結合は2つの表をくっつける操作/c 選択は条件に合う行(横)を絞る操作/d 「併合」は関係代数の標準用語ではない(ダミー)。

なぜこれが正解か

正解は b。射影(projection)は指定した列だけを抜き出す関係演算。問題では表 X(商品番号・商品名・価格・数量)から表 Y(商品番号・数量)が得られており、列の取捨選択のみで行数は変わっていない。よって射影。SQL では `SELECT 商品番号, 数量 FROM X`。

各選択肢の解説

  • a 結合(join):2つ以上の表を共通項目で連結する演算。本問は1表からの変換なので不該当。
  • c 選択(selection):条件に合致する行を抽出する演算(SQL の `WHERE` 句)。列ではなく行を絞る点で射影と対照的。
  • d 併合(merge):関係代数の標準用語ではない。ダミー選択肢。和(union)と混同を狙った引っかけ。

覚え方・ひっかけ注意

関係演算の核心4演算:

  • 射影(π):列を絞る(タテ切り)
  • 選択(σ):行を絞る(ヨコ切り)
  • 結合(⋈):2表を連結
  • 和・差・積:集合演算

「シャエイ=ヨコ列(列を写す)/センタク=行を選ぶ」と呪文化。SQL の `SELECT 句=射影/WHERE 句=選択` と対応させると盤石。

理論的背景

関係代数(relational algebra)は E.F. Codd が1970年代に提唱した関係データベースの数学的基盤。基本演算は8種類:

  • 和(∪)/差(−)/直積(×)/射影(π)/選択(σ)(基本5演算)
  • 共通(∩)/結合(⋈)/商(÷)(基本演算から導出可能)

射影は記号 π(パイ)で表記し、`π_{商品番号,数量}(X)` のように属性集合を指定する。数学的定義では重複行を除去する点が SQL の `SELECT` と異なる(SQL はデフォルト重複保持、`SELECT DISTINCT` で除去)。

実務での使われ方

  • 列指向ストレージ(Parquet、ORC、ColumnStore 等)は射影クエリに特化。必要な列だけ読み出すため、I/O が大幅削減され分析クエリ高速化。
  • クエリ最適化:オプティマイザは「射影の早期適用(push-down)」で中間結果のサイズを削減し、メモリ使用量と JOIN コストを抑制。
  • データ匿名化:個人特定列を射影で除外することで k-匿名化・GDPR 対応に活用。
  • ビュー定義:列限定ビューは射影の典型応用、アクセス制御に直結。

試験での位置づけ

基本情報・応用情報のデータベース理論分野で必出。関係代数 vs 関係論理(タプル関係論理/ドメイン関係論理)、SQL との等価変換、結合の種類(自然結合・等結合・外部結合・θ結合)まで体系で押さえる。データベーススペシャリスト試験では、関係代数式 → SQL 変換、SQL → 関係代数式変換が直接出題される。

選択肢の発展補足

  • a 結合:自然結合(NATURAL JOIN)、等結合(=条件)、θ結合(任意比較)、外部結合(LEFT/RIGHT/FULL OUTER)の使い分け。性能観点では Nested Loop Join/Hash Join/Sort Merge Join のアルゴリズム比較も頻出。
  • c 選択:選択条件を結合より先に評価する選択の押し下げ(selection push-down)は最適化の基本テクニック。
  • 派生演算:商(division)は「全ての X を含む Y」を求める演算で、SQL では `NOT EXISTS` を二重否定で実装。応用情報では商演算が選択肢に紛れることがある。
  • 代数的等価性:`σ_p(π_A(R)) ≡ π_A(σ_p(R))`(p が A の属性のみ参照する場合)等の書換規則がオプティマイザの基礎。
この問題の根拠出典:IPA(情報処理推進機構)公式 基本情報技術者試験 2022 サンプル問題 問24
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 2022 サンプル問題 問24/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。