基本情報 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 -
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解説です。