IPA過去問ドリル

令和4年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問9

テクノロジ/データベース

SQL 文 1 と SQL 文 2 を実行した結果が同一になるために,表 R が満たすべき必要十分な条件はどれか。 〔SQL 文 1〕 SELECT * FROM R UNION SELECT * FROM R 〔SQL 文 2〕 SELECT * FROM R

出典:令和4年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問9

正解:ウ

解説

UNIONは集合演算であり,重複する行を除去した結果を返します。R UNION Rの結果がRそのものと一致するのは,Rの中に重複する行が元々存在しない場合に限られます。

選択肢ごとの解説

  • 誤り。NULLの有無はUNIONによる重複除去の判定に直接影響せず,NULLを含む行同士が完全に一致すれば重複として除去されるため,この条件は必要十分条件ではありません。
  • 誤り。行数が0であれば確かにSQL文1と2の結果は一致しますが,これは特殊な場合の一つに過ぎず,一般に成り立つ必要十分条件ではありません。
  • 正しい。UNIONは重複行を除去するため,Rに重複行が存在しなければR UNION RはRと完全に一致し,重複があれば行数が減って一致しなくなります。
  • 誤り。列数が1であることはUNIONの重複除去の判定とは無関係であり,列数に関わらず重複行がなければ結果は一致します。
データベーススペシャリストの過去問を演習モードで解く