基本情報

基本情報 平成25年度 春期 問27|テクノロジ系に関する問題

問題

基本情報 | 平成25年度 春期 | 分野:テクノロジ系

列A1〜A5から成るR表に対する次のSQL文は,関係代数のどの演算に対応するか。 SELECT A1,A2,A3 FROM R WHERE A4 = 'a'

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

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

答え合わせ

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

自信の3択

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

解説

答えは c「選択と射影」 です。

SQLの `SELECT A1,A2,A3 FROM R WHERE A4='xx'` を関係代数で読み解くと:

  • `WHERE A4='xx'`:条件に合う行を選び出す → 選択
  • `SELECT A1,A2,A3`:欲しい列だけ取り出す → 射影

つまり「行を選ぶ+列を絞る」の組合せ。

👉 覚え方:WHEREは『選択』(行)/SELECTは『射影』(列)。

ほかの選択肢:a 結合=表をくっつける/b 差=引き算/d 和=足し算。今回の式には複数表や集合演算がないのでこれらは違います。

なぜこれが正解か

正解は c。関係代数の基本演算とSQLは次のように対応する:

  • 選択(Selection, σ)= `WHERE` 句で行を絞り込む
  • 射影(Projection, π)= `SELECT` 句で列を絞り込む

本問SQL `SELECT A1,A2,A3 FROM R WHERE A4='xx'` は σ_A4='xx'(R) で行選択 → π_A1,A2,A3(...) で列射影、つまり選択と射影の合成。

各選択肢の解説

  • a 結合(Join)と射影:結合はJOIN句または複数表のFROMが必要。本問は単一表。
  • b 差(Difference)と選択:差はEXCEPT/MINUSが必要。
  • d 和(Union)と射影:和はUNIONが必要。

覚え方・ひっかけ注意

「WHERE=選択(行)/SELECT=射影(列)」は鉄板。日本語の「選択」が`SELECT`に対応すると勘違いしがちだが逆。関係代数の「選択σ」は行抽出、「射影π」は列抽出。基本5演算は選択・射影・直積・和・差、追加2演算が結合・商。

理論的背景

関係代数(Relational Algebra)はE.F.Coddが提唱した関係モデルの基礎理論で、関係(テーブル)に対する閉じた演算系を成す。基本演算は和(∪)・差(−)・直積(×)・選択(σ)・射影(π)の5つ。ここから派生演算として結合(⋈、自然結合 etc.)・商(÷)・共通集合(∩)が定義される。任意のSQLクエリは関係代数式に変換可能で、これがRDBMSのクエリ最適化の理論的基盤となる。

実務での使われ方

RDBMSのオプティマイザはSQL文をパース→関係代数の論理プラン化→等価変換規則による書換え(push-down最適化など)→物理プラン選択、という流れで実行計画を生成する。例えば選択の前倒し(σの早期適用)で中間結果を減らす最適化は、関係代数の等価変換`σ_p(R⋈S) = σ_p(R)⋈S`に基づく(p がRの属性のみに依存する場合)。射影も同様に早期適用でデータ転送量を削減できる。

試験での位置づけ

FE午前のデータベース分野で頻出。①関係代数演算記号σ/π/⋈/∪/−/×の理解、②SQLとの対応関係、③等価変換の理解、の3レベルで問われる。AP・高度(DBスペシャリスト)では結合の種類(自然結合・等結合・外結合・半結合)、商演算の意味、関係完備性(リレーショナル完全性)まで踏み込む。

選択肢の発展補足

SQL の `GROUP BY` +集約関数は関係代数の「拡張」演算(集約γ)で扱う。標準関係代数では表現できない演算(集約・順序・外部結合)はSQL92以降に拡張された。NULL の三値論理(True/False/Unknown)はSQLでの選択演算結果に影響し、`WHERE col = NULL` が常にUnknownになる罠は実務で頻発。理論と実装の差異を理解することがDB設計の鍵。

この問題の根拠出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成25年度 春期 問27
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

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