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

平成28年度春期 データベーススペシャリスト 午前Ⅰ 問9

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

問題

次の表において,“在庫”表の製品番号に定義された参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。
在庫表と製品表の属性について,主キーを実線,外部キーを破線の下線で示す関係スキーマ。
在庫表と製品表の属性について,主キーを実線,外部キーを破線の下線で示す関係スキーマ。

選択肢

  1. ア
    “在庫”表の行削除
  2. イ
    “在庫”表の表削除
  3. ウ
    “在庫”表への行追加
  4. エ
    “製品”表への行追加
解き方のヒントを見る

参照関係を確認するための視点

参照関係を伴うデータ操作を考えるときは、対象同士の依存関係と操作の目的を分けて整理し、個別の文法や結論を先に当てはめないことが重要です。

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

一つの観点として、操作の前後で参照される側と参照する側の整合性がどのように関係するかを、問題文の条件に沿って確認してください。

視点

参照関係を扱う問題では、まず関係する対象と依存の向きを整理し、そのうえで操作が既存の関係に与える影響を確認します。許可や制限を判断するときは、目的、対象、タイミングを混同せず、与えられた条件との対応を丁寧に見比べます。

確認ポイント

  • 操作によって参照関係の整合性に影響が生じるかを確認する。
  • 参照される対象と参照する対象の関係を図式化して整理する。
  • 操作の目的と適用される条件が問題文の記述と一致するかを確認する。
正解と解説を見る

正解

ウ

解説

在庫表の製品番号は製品表の製品番号を参照する外部キーです。したがって、参照先に存在しない製品番号を在庫表へ登録すると、参照制約によって拒否される可能性がある。

理由

在庫表の製品番号には破線の下線が付いており、製品表の製品番号を参照する外部キーです。製品表に存在しない製品番号を持つ行を在庫表へ追加すると、参照先のない値になるため、参照制約により拒否される可能性がある。

比較

在庫表の行削除は、参照元の行を取り除く操作なので、通常は参照先を欠落させない。在庫表自体の削除も参照元をなくす操作であり、製品表への行追加は新しい参照先を作る操作です。このため、設問の正答は在庫表への行追加となる。

選択肢ア

これは不正解だよ。在庫表の行削除は、製品表の製品番号を参照している行を取り除く操作である。参照元の行がなくなるだけなので、製品表に存在しない製品番号を新たに作ることはなく、通常、この外部キーの参照制約によって拒否される操作には該当しない。

選択肢イ

これは不正解だよ。在庫表の表削除は、製品表を参照している側の表そのものを削除する操作である。参照元がなくなるため、製品表に残る製品番号を未参照にする問題は生じない。したがって、設問の外部キー制約が拒否する可能性のある操作ではない。

選択肢ウ(正解)

これは正解だよ。在庫表への行追加では、製品番号の値を新たに登録する。在庫表の製品番号は製品表の製品番号を参照する外部キーなので、参照先に存在しない製品番号を指定した場合、参照整合性が失われる。そのため、参照制約によって拒否される可能性がある。

選択肢エ

これは不正解だよ。製品表への行追加は、製品表に新しい製品番号を登録する操作である。主キーとして重複しない値を追加する限り、在庫表の外部キーが参照できる候補を増やすことになる。したがって、この操作自体は参照制約によって拒否される対象ではない。

学習のポイント

外部キー制約では、参照先の主キーと参照元の値の整合性を確認する。

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

関連する過去問一覧

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