2022 サンプル問題24テクノロジ系

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

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

  • a結合(join)
  • b射影(projection)正答
  • c選択(selection)
  • d併合(merge) - 16 -
正答:B射影(projection)

AI解説(初心者・標準・上級)

理解度に合わせて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/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。