戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2017年 秋期 午前228


問題文

関係R (ID, A, B, C)の A,Cへの射影の結果と SQL文で求めた結果が同じになるように、a に入れるべき字句はどれか。ここで、関係Rを表Tで実現し、表Tに各行を格納したものを次に示す。
応用情報技術者 2017年 秋期 午前2 問28の問題画像

選択肢

ALL
ORDER BY(正解)
DISTINCT
REFERENCES

関係RのA,Cへの射影とSQL文の結果一致問題【午前2 解説】

要点まとめ

  • 結論:A,Cへの射影結果とSQLの結果を一致させるには、重複行を排除する
    DISTINCT
    を使う必要があります。
  • 根拠:射影は関係の特定の属性だけを抽出し、重複を除いた集合を返す操作だからです。
  • 差がつくポイント:SQLの
    SELECT
    文で重複を排除しないと、関係の射影結果と異なるため、
    DISTINCT
    の理解が重要です。

正解の理由

選択肢イの
ORDER BY
は結果の並び順を指定する句であり、重複排除とは無関係です。
正解はウの
DISTINCT
で、これを指定することでSQLの結果から重複行が除かれ、関係の射影結果と一致します。
したがって、
SELECT DISTINCT A, C FROM T
が正しいSQL文です。

よくある誤解

  • ORDER BY
    を重複排除と勘違いしやすいですが、並び替えのみで重複は除きません。
  • ALL
    はデフォルトで重複を許すため、射影結果とは異なります。

解法ステップ

  1. 射影とは関係の特定の属性だけを抽出し、重複を除く操作であることを確認する。
  2. SQLの
    SELECT
    文で重複を除くキーワードが何かを思い出す。
  3. 選択肢の意味を整理し、重複排除に該当するのは
    DISTINCT
    であると判断する。
  4. SELECT DISTINCT A, C FROM T
    が射影結果と一致するSQL文であると結論づける。

選択肢別の誤答解説

  • ア:
    ALL
    は重複を許すため、射影結果と異なる。
  • イ:
    ORDER BY
    は並び替え句であり、重複排除には関係ない。
  • ウ:
    DISTINCT
    は重複を排除し、射影の結果と一致するため正解。
  • エ:
    REFERENCES
    は外部キー制約の指定であり、SQL文の選択句として不適切。

補足コラム

関係代数の射影は、指定した属性だけを抽出し、重複を除いた集合を返します。SQLの
SELECT
文はデフォルトで重複を許すため、射影と同じ結果を得るには
DISTINCT
を使う必要があります。
ORDER BY
は結果の並び順を制御する句であり、結果の内容には影響しません。

FAQ

Q: SQLの
SELECT
文で重複を除くにはどうすればよいですか?
A:
SELECT DISTINCT
を使うことで、重複行を除いた結果を取得できます。
Q:
ORDER BY
句は射影の結果に影響しますか?
A: いいえ。
ORDER BY
は結果の並び順を変えるだけで、重複の有無には影響しません。

関連キーワード: 射影、DISTINCT, SQL, 重複排除、関係代数
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について