AUシステム監査技術者試験 午前Ⅱ

平成21年度春期 システム監査技術者 午前Ⅱ 問17

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

“学生”表と“学部”表に対し次の SQL 文を実行した結果として,正しいものはどれか。 SELECT 氏名 FROM 学生、学部 WHERE 所属 = 学部名 AND 学部.住所 = '新宿' 学生表 氏名 | 所属 | 住所 合田知子 | 理 | 新宿 青木俊介 | 工 | 渋谷 川内聡 | 人文 | 渋谷 坂口祐子 | 経済 | 新宿 学部表 学部名 | 住所 理 | 新宿 工 | 新宿 人文 | 渋谷 経済 | 渋谷
学生表は合田知子・理・新宿、青木俊介・工・渋谷、川内聡・人文・渋谷、坂口祐子・経済・新宿。学部表は理・新宿、工・新宿、人文・渋谷、経済・渋谷。SQLは両表を所属と学部名で結合し、学部住所が新宿の氏名を選ぶ。
学生表は合田知子・理・新宿、青木俊介・工・渋谷、川内聡・人文・渋谷、坂口祐子・経済・新宿。学部表は理・新宿、工・新宿、人文・渋谷、経済・渋谷。SQLは両表を所属と学部名で結合し、学部住所が新宿の氏名を選ぶ。

選択肢

  1. ア
    氏名 合田知子
  2. イ
    氏名 合田知子 青木俊介
  3. ウ
    氏名 合田知子 坂口祐子
  4. エ
    氏名 合田知子 青木俊介 坂口祐子
解き方のヒントを見る

抽出条件を読むときの一つの視点

SQLの抽出条件と結果を対応づけるときは、条件式が各行のどの属性を参照し、複数条件がどの順序で組み合わされるかに注目します。表全体ではなく行ごとに整理すると、判断の根拠を確認しやすくなります。

この問題で問われていること

確認の中心を、各行が条件を満たすかどうかの判定単位に絞ります。比較対象の列、値の扱い、条件同士の結合関係を行ごとに書き出し、結果欄との対応を落ち着いて見比べてください。

視点

抽出条件を読む際は、条件式を行単位の判定として捉え、参照される列と比較される値を区別します。条件が複数ある場合は、それぞれの判定結果を分けて整理してから、全体の組合せを確認すると、読み違いを減らせます。

確認ポイント

  • 各条件が参照している列を確認する
  • 比較される値や記号の意味を整理する
  • 条件同士の組み合わせ方を確認する
正解と解説を見る

正解

イ

解説

学生表と学部表を所属=学部名で結合し、結合後の学部表の住所が「新宿」である行の氏名を抽出する。理と工に所属する学生が該当する。

理由

SQLは学生表の所属と学部表の学部名が一致する組合せを作り、その中から学部表の住所が「新宿」である組合せを残します。該当する学部は理と工です。

比較

理に所属する合田知子と工に所属する青木俊介は、所属学部の住所が新宿です。一方、人文と経済の住所は渋谷なので、川内聡と坂口祐子は抽出されません。

選択肢ア

これは不正解だよ。合田知子が所属する理学部の住所は新宿なので、この氏名が抽出される点は正しいです。しかし、青木俊介が所属する工学部の住所も新宿であり、同じ条件を満たすため、青木俊介を含めない結果にはなりません。

選択肢イ(正解)

これは正解だよ。合田知子の所属する理学部と、青木俊介の所属する工学部はいずれも学部表で住所が新宿です。所属と学部名を一致させ、学部表の住所条件を適用すると、この2名の氏名が抽出されます。

選択肢ウ

これは不正解だよ。合田知子の理学部は新宿なので抽出されますが、坂口祐子の所属する経済学部の住所は渋谷です。住所条件は学生本人の住所ではなく、結合した学部表の住所に適用されるため、坂口祐子は含まれません。

選択肢エ

これは不正解だよ。合田知子と青木俊介は所属学部の住所が新宿なので抽出されます。一方、坂口祐子の所属する経済学部は渋谷であり、学部表の住所条件を満たしません。そのため、3名を含む結果にはなりません。

学習のポイント

SQLの結合条件と、結合先表の列を使った絞り込みを理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成21年度春期 システム監査技術者試験 午前Ⅱ 問17(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針