平成29年度秋期 応用情報技術者試験 午前 問28

分野:データベース|実際に出題されたIPA過去問題

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

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  ALL
  2.  DISTINCT
  3.  ORDER BY
  4.  REFERENCES
解答・解説を見る

正解:イ

AI解説

正解はイ。関係モデルにおける「射影」は関係(集合)から特定の属性列を取り出す演算であり,集合なので結果に重複行(タプル)は存在しない。一方SQLのSELECTは既定では重複行をそのまま返すため,射影と同じ結果にするにはDISTINCTを指定して重複行を排除する必要がある。 ア: ALLは重複行をそのまま残す指定であり,SELECTの既定動作と同じ。射影の結果(重複なし)とは一致しない。 イ: 正しい。DISTINCTは結果から重複行を取り除くキーワードで,関係代数の射影(集合演算)と同じ結果を得られる。 ウ: ORDER BYは結果の並べ替えを指定する句であり,重複排除の機能はない。またSELECT句の直後に書く構文でもない。 エ: REFERENCESは表定義(CREATE TABLE)で外部キー制約の参照先を指定するキーワードであり,問合せには使わない。 💡 「関係モデルは集合=重複なし,SQLの表はマルチ集合=重複あり」という理論と実装のギャップを突く定番問題。射影と同じにする=DISTINCT,と即答できるように。

出典:平成29年度 秋期 応用情報技術者試験 午前 問28 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース)の過去問