SC情報処理安全確保支援士試験 午前Ⅱ
平成22年度秋期 情報処理安全確保支援士 午前Ⅱ 問21
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
和両立である表 R (ID、 NAME)、 S (NO、 NAMAE) がある。差集合 RーS を求めるSELECT文とするために、 a に入れるべき適切な字句はどれか。ここで、 下線部は主キーを表す。また、 NAMEとNAMAEはNULL不可とする。
選択肢
- アSELECT * FRON R MHERE| 。 |
- イ(SELECT * FROM S MHERE S.NO = R.TD AND S.NAMAE = R.NAME)
- ウEXISTsイNOT EXISTSウNOT TINエR.ID NOT IN
- エー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による補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針