| ID | A | B | C |
|---|---|---|---|
| 001 | a1 | b1 | c1 |
| 002 | a1 | b1 | c2 |
| 003 | a1 | b2 | c1 |
| 004 | a2 | b1 | c2 |
| 005 | a2 | b2 | c2 |
関係 R(ID, A, B, C)の A, C への射影の結果と SQL 文で求めた結果が同じになるように,a に入れるべき字句はどれか。ここで,関係 R を表 T で実現し,表 T に各行を格納したものを次に示す。 T 〔SQL 文〕 SELECT [ a ] A, C FROM T
イ. DISTINCT
関係(集合)の射影は重複行を含まない。表TからA,Cだけ取り出すと、(a1,c1)(a1,c2)(a1,c1)…と重複が生じる。SQLのSELECTは既定で重複を残すため、DISTINCTを付けて重複を除けば射影の結果と一致する。よってイが正解。関係モデルの集合演算とSQLの既定動作(マルチセット)の違いを意識することが、DB設計やクエリ最適化の基礎理解になる。
情報処理安全確保支援士試験 平成29年度秋期 午前Ⅰ の過去問一覧へ戻る・問9