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

問9

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

〔SQL文1〕
SELECT * FROM R UNION SELECT * FROM R
〔SQL文2〕
SELECT * FROM R
  • 値にNULLをもつ行は存在しない。
  • 行数が0である。
  • 重複する行は存在しない。
  • 列数が1である。

分類

テクノロジ系 » データベース » データ操作

正解

解説

SQL文1の結果は関係Rと関係Rとの和集合となり、SQL文2の結果は関係Rそのものとなります。UNION句では、複数の結果の集合を得るという性質上、統合する際に重複している行を除外しますから、結果表が元の関係Rと同一になるためには、元の関係Rに重複する行が存在しないことが条件となります。

したがって「ウ」が正解です。
  • 「NULLを持つ行が存在しない ⇒ 結果が同一」と「結果が同一 ⇒ 値にNULLを持つ行が存在しない」はともに成立しません。よって、十分条件でも必要条件でもありません。
  • 「行数が0 ⇒ 結果は同一」は成立するので十分条件ですが、「結果が同一 ⇒ 行数は0」は成立しないので必要条件ではありません。
  • 正しい。「重複する行が存在しない ⇒ 結果は同一」は成立するので十分条件、「結果が同一 ⇒ 重複する行が存在しない」も成立するので必要条件でもあります。
  • 「列数が1 ⇒ 結果が同一」と「結果が同一 ⇒ 列数が1」はともに成立しません。よって、十分条件でも必要条件でもありません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop