SAシステムアーキテクト試験 午前Ⅰ

平成22年度秋期 システムアーキテクト 午前Ⅰ 問11

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

問題

次の表定義において、“在庫”表の製品番号に定義された参照制約によって拒否される可能性のある操作はどれか。ここで、実線は主キーを、破線は外部キーを表す。 在庫(在庫管理番号、製品番号、在庫量) 製品(製品番号、製品名、型、単価)
在庫(在庫管理番号,製品番号,在庫量)と製品(製品番号,製品名,型,単価)の表定義。実線は主キー,破線は外部キーを示す。
在庫(在庫管理番号,製品番号,在庫量)と製品(製品番号,製品名,型,単価)の表定義。実線は主キー,破線は外部キーを示す。

選択肢

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

参照関係を整理するための視点

この問題では、個々の操作結果を暗記するよりも、操作の前後で関連するデータ間の整合性がどう扱われるかに注目し、条件と影響を順に整理して考えます。判断の根拠を一つずつ分けて確認しましょう。

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

一つの操作を見たとき、対象となるデータだけでなく、それと結び付く別のデータへどのような影響が及び得るかを、制約との関係で確認してください。操作前後の状態を比べることが重要です。

視点

操作の可否を判断するときは、操作そのものの目的と、既存の関係を保てるかという観点を分けて整理します。まず関係するデータの状態を捉え、次に操作後にも一貫性が維持されるかを確認し、必要なら許容条件や影響範囲を比較します。

確認ポイント

  • 操作前に、どのデータ同士が関連しているかを確認する
  • 操作後に、関連するデータ間の整合性が保たれるかを考える
  • 可否を決める条件と、想定される影響の範囲を分けて見る
正解と解説を見る

正解

ウ

解説

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

理由

在庫表の製品番号は、製品表の製品番号を参照する外部キーです。したがって、在庫表へ行を追加する際に、参照先である製品表に存在しない製品番号を指定すると、参照整合性が失われるため拒否される可能性がある。

比較

在庫表の行削除は参照元の行を取り除く操作なので、製品表への参照を新たに不正にすることはない。在庫表自体の削除や製品表への行追加も、この設問の参照制約による拒否条件には該当しない。

選択肢ア

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

選択肢イ

これは不正解だよ。在庫表の表削除は、外部キーを含む参照元の表そのものを削除する操作である。設問で示された参照制約が原因となって不正な参照値を持つ行を生じさせる操作ではないため、該当しない。なお、実際のDBMSで別の依存関係により拒否される場合とは区別する。

選択肢ウ(正解)

これは正解だよ。在庫表の製品番号は、製品表の製品番号を参照する外部キーである。そのため、製品表に存在しない製品番号を指定した行を在庫表へ追加すると、参照先が見つからず参照整合性に違反するので、操作が拒否される可能性がある。

選択肢エ

これは不正解だよ。製品表への行追加は、参照される側に新しい製品番号を登録する操作である。既存の在庫表の行が参照する製品番号を無効にするものではなく、この操作だけで在庫表の外部キーによる参照制約違反は発生しない。

学習のポイント

外部キーによる参照整合性と、行追加・行削除の関係を学ぶ。

出典:独立行政法人 情報処理推進機構(IPA)平成22年度秋期 システムアーキテクト試験 午前Ⅰ 問11(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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