SC情報処理安全確保支援士試験 午前Ⅱ

平成22年度秋期 情報処理安全確保支援士 午前Ⅱ 問21

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

問題

和両立である表 R (ID、 NAME)、 S (NO、 NAMAE) がある。差集合 RーS を求めるSELECT文とするために、 a に入れるべき適切な字句はどれか。ここで、 下線部は主キーを表す。また、 NAMEとNAMAEはNULL不可とする。

選択肢

  1. ア
    SELECT * FRON R MHERE| 。 |
  2. イ
    (SELECT * FROM S MHERE S.NO = R.TD AND S.NAMAE = R.NAME)
  3. ウ
    EXISTsイNOT EXISTSウNOT TINエR.ID NOT IN
  4. エ
    ー12一
解き方のヒントを見る

データベースの引き算!テーブルRのデータの中から「テーブルSにも載っているデータ」を取り除く(差集合)

データベース(関係代数)の「差集合( R - S )」をSQL文や論理式でどう書くかという問題だよ。これは「テーブルRには入っているけれど、テーブルSには入っていないデータだけを残す」という操作なんだ。SQL文で表すなら、 R.キー NOT IN (SELECT S.キー...) や、 EXISTS を使って「S側に同じキーが存在しないこと」という条件を書いて、Rのデータだけを抽出するんだよ。

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

差集合の概念を理解した上で、「表Rの行を抽出しつつ、副問い合わせなどで『表Sの行と一致するものは除く(含まれない)』」という条件式を正しく記述している選択肢を見つけよう。

差集合の SQL 発想

R の各行について、対応する S の行があるかを調べます。無ければ、その行を結果に残します。これが差集合の基本形です。

R の各行\nS に一致行が無い\n-> 結果に残す

確認ポイント

  • 存在する行を取る `EXISTS` では、差集合になりません。
  • NULL の影響を受けやすい `NOT IN` より、ここでは `NOT EXISTS` が素直です。
  • S に一致行が存在しない条件を選びます。
正解と解説を見る

正解

イ

解説

IPA 公式公開の過去問です。

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

この選択肢は間違いの選択肢だよ。

選択肢イ(正解)

この選択肢は間違いの選択肢だよ。

選択肢ウ

この選択肢は間違いの選択肢だよ。

選択肢エ

この選択肢は間違いの選択肢だよ。

学習のポイント

解答例や採点講評と合わせて根拠を確認してください。

出典:独立行政法人 情報処理推進機構(IPA)平成22年度秋期 情報処理安全確保支援士試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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