応用情報技術者試験 応用情報技術者試験 平成29年度秋期 午前28: 関係 R(ID, A, B, C)の A,C への射影の結果と SQL 文で求めた結果が同じになるように,a に入れるべき字句はどれか。ここで,関係 R を表

応用情報技術者試験 平成29年度秋期 午前
Q 2828 / 80
関係 R(ID, A, B, C)の A,C へのの結果と SQL 文で求めた結果が同じになるように,a に入れるべき字句はどれか。ここで,関係 R を表 T で実現し,表 T に各行を格納したものを次に示す。
IDABC
001a1b1c1
002a1b1c2
003a1b2c1
004a2b1c2
005a2b2c2
〔SQL 文〕 SELECT a A, C FROM T
この問の正解率:68.03%(1,267件)

問題本文

関係 R(ID, A, B, C)の A,C への射影の結果と SQL 文で求めた結果が同じになるように,a に入れるべき字句はどれか。ここで,関係 R を表 T で実現し,表 T に各行を格納したものを次に示す。 〔SQL 文〕 SELECT a A, C FROM T

選択肢

  • .ALL
  • .DISTINCT
  • .ORDER BY
  • .REFERENCES

正解

. DISTINCT

解説

関係モデルの射影は,指定した列だけを取り出した結果から重複行を取り除いた『集合』を返す。表 T の A,C を取り出すと (a1,c1)(a1,c2)(a1,c1)(a2,c2)(a2,c2) となり,重複を除くと (a1,c1)(a1,c2)(a2,c2) の3行になる。SQL でこの重複除去を行うキーワードが DISTINCT なので,イが正しい。SELECT DISTINCT A, C とすると射影と同じ結果が得られる。

選択肢ごとの解説

  • .誤り。ALL は重複行をそのまま残す指定(既定の動作)で,重複を含む5行が返り,重複を除く射影の結果(3行)とは一致しない。
  • .正しい。DISTINCT は重複行を取り除くため,射影と同じ重複なしの結果(3行)が得られる。
  • .誤り。ORDER BY は結果を並べ替える句で,列名の直前に置く字句ではなく構文として成立しない。重複除去の働きもない。
  • .誤り。REFERENCES は外部キー制約の定義に使うキーワードで,SELECT 文で行を選択する用途には用いない。

応用情報技術者試験 平成29年度秋期 午前過去問一覧へ戻る・問28