令和4年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問9
テクノロジ/データベースSQL 文 1 と SQL 文 2 を実行した結果が同一になるために,表 R が満たすべき必要十分な条件はどれか。 〔SQL 文 1〕 SELECT * FROM R UNION SELECT * FROM R 〔SQL 文 2〕 SELECT * FROM R
出典:令和4年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問9
- ア値に NULL をもつ行は存在しない。
- イ行数が 0 である。
- ウ重複する行は存在しない。
- エ列数が 1 である。
正解:ウ
解説
UNIONは集合演算であり,重複する行を除去した結果を返します。R UNION Rの結果がRそのものと一致するのは,Rの中に重複する行が元々存在しない場合に限られます。
選択肢ごとの解説
- ア誤り。NULLの有無はUNIONによる重複除去の判定に直接影響せず,NULLを含む行同士が完全に一致すれば重複として除去されるため,この条件は必要十分条件ではありません。
- イ誤り。行数が0であれば確かにSQL文1と2の結果は一致しますが,これは特殊な場合の一つに過ぎず,一般に成り立つ必要十分条件ではありません。
- ウ正しい。UNIONは重複行を除去するため,Rに重複行が存在しなければR UNION RはRと完全に一致し,重複があれば行数が減って一致しなくなります。
- エ誤り。列数が1であることはUNIONの重複除去の判定とは無関係であり,列数に関わらず重複行がなければ結果は一致します。