DBデータベーススペシャリスト試験 午前Ⅱ

平成23年度特別 データベーススペシャリスト 午前Ⅱ 問17

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

問題

SQLにおいて,A表の主キーがB表の外部キーによって参照されている場合,行を追加・削除する操作の制限について,正しく整理した図はどれか。ここで,△印は操作が拒否される場合があることを表し,○印は制限なしに操作できることを表す。
A表とB表への行の追加・削除が制限なし又は拒否される場合を○と△で示した四つの表。
A表とB表への行の追加・削除が制限なし又は拒否される場合を○と△で示した四つの表。

選択肢

  1. ア
    図ア
  2. イ
    図イ
  3. ウ
    図ウ
  4. エ
    図エ
解き方のヒントを見る

キーと制約の役割を分けて考える

表の設計を読むときは、各制約やキーが何を保証するためのものかを役割ごとに分け、行の識別、値の重複、表どうしの対応という観点を順に整理し、根拠を比較しながら考えます。

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

一つの観点として、表の中の値を一意に見分ける話と、別の表との対応を保つ話を混同しないように、設問の記述がどの関係を扱っているかだけを確認してください。

視点

キーや制約を確認するときは、対象が一つの表の内部にあるのか、複数の表の間にあるのかを区別し、それぞれが保証しようとする関係を言葉で整理します。

確認ポイント

  • 対象となる関係が表の内部か表どうしかを確認する
  • 一意性に関する記述と対応関係に関する記述を分ける
  • 各用語が保証する対象を設問の文脈に照らして確認する
正解と解説を見る

正解

ア

解説

A表の主キーをB表の外部キーが参照する場合、参照整合性を壊す可能性のある操作には制限が生じる。図アがこの関係を正しく整理している。

理由

A表は参照される親側、B表は参照する子側です。A表の行を削除するとB表から参照できなくなる場合があるため、削除には制限が生じる。一方、B表の行削除は参照を消す操作なので、通常この制約を壊さない。

比較

A表への行追加は、他表から参照されるだけなら制限なく行える。B表への行追加は、対応するA表の主キーが存在しないと参照整合性を保てないため、拒否される場合がある。この対応を示すのが図アです。

選択肢ア(正解)

これは正解だよ。図アは、A表について追加は○、削除は△、B表について追加は△、削除は○と示している。A表の削除はB表から参照されている行を無効にする可能性があり、B表の追加は対応するA表の主キーが必要になるため、この整理が参照整合性と一致する。

選択肢イ

これは不正解だよ。図イはA表を追加○・削除△、B表を追加○・削除△としている。A表の削除に制限が生じる点は合っているが、B表の追加を無制限としている点と、B表の削除に制限があるとしている点が、外部キーの参照関係と一致しない。

選択肢ウ

これは不正解だよ。図ウはA表を追加△・削除○、B表を追加○・削除△としている。A表の追加と削除、B表の追加と削除のいずれも、参照整合性から導かれる関係と逆になっている。特にB表は追加に制限が生じ、削除は通常制限されない。

選択肢エ

これは不正解だよ。図エはA表を追加△・削除○、B表も追加△・削除○としている。B表の追加と削除の関係は適切だが、A表では追加に制限はなく、参照中の行を削除する場合に制限が生じるため、A表の示し方が反対である。

学習のポイント

主キーと外部キーの親子関係から、追加・削除の制限を判断する。

出典:独立行政法人 情報処理推進機構(IPA)平成23年度特別 データベーススペシャリスト試験 午前Ⅱ 問17(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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