平成29年秋期試験問題 午前問28

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

  • ALL
  • DISTINCT
  • ORDER BY
  • REFERENCES
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データ操作
解説
射影は、関係演算の1つで関係(表)の中から特定の属性(列)の集合を取り出す操作です。

SQLでは1つの表に同じ内容が2回以上出現することを許容しますが、数学の集合論に基づく関係モデルでは要素の重複が許されません。すなわち厳格に言えば、射影は「列の取り出し→重複の排除」を組み合わせた操作だということになります。

これを踏まえると、表TからA、Cを得る射影演算をした結果は次のようになります。
28a.png
これと同じ結果セットをSQLで得るには、SELECT A, Cで列を取り出した後にDISTINCTで重複を取り除くことになります。したがってaにはDISTINCTが入ります。
  • ALLは、選択された行をそのまま(重複行も含めて)返すよう指定する字句です(明記しなくてもデフォルト値)。
  • 正しい。DISTINCTは、選択された行から重複行を取り除くよう指定する字句です。
  • ORDER BYは、結果セットを昇順または降順に整列して表示するために指定する字句です。
  • REFERENCESは、属性に外部キー制約を付けるために指定する字句です。

Pagetop