主キー・外部キーと参照整合性制約とは?
主キー・外部キーと参照整合性制約とは、行を一意に識別する列が主キーで、NULLも重複も許されない。他の表の主キーを参照する列が外部キーで、参照先に存在しない値を持てないという制約が参照整合性である。DBMSに宣言しておけば、アプリの実装漏れによる不整合を防げる。
応用情報技術者試験の過去問では19回出題されています(2016年度〜2025年度)。
しゅきーがいぶきーとさんしょうせいごうせいせいやく
主キー・外部キーと参照整合性制約の意味
行を一意に識別する列が主キーで、NULLも重複も許されない。他の表の主キーを参照する列が外部キーで、参照先に存在しない値を持てないという制約が参照整合性である。DBMSに宣言しておけば、アプリの実装漏れによる不整合を防げる。
主キー・外部キーと参照整合性制約の具体例
受注明細の受注番号が受注表を参照する場合、受注を削除したときの動作をCASCADE(明細も削除)、RESTRICT(削除を拒否)、SET NULL から選ぶ。伝票のような業務データはRESTRICTにして、意図しない一括消去を防ぐのが安全。
主キー・外部キーと参照整合性制約は試験でどう引っ掛けられる?
外部キー列はNULLを許容でき、その場合は参照整合性の検査対象外になる。また外部キーには自動的に索引が作られないDBMSがあり、親の削除時に子表の全走査が起きて性能問題になることがある。
主キー・外部キーと参照整合性制約と関連する用語
主キー・外部キーと参照整合性制約が出た過去問
次の表において,“在庫”表の製品番号に定義された参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。 …
正解:“在庫”表への行追加
要点:外部キーは参照先に存在しない値の登録を拒否する
参照制約は、外部キーの値が参照先の主キーに存在することを要求する。在庫表に行を追加するとき、製品表に存在しない製品番号を指定すると制約違反となり拒否される。
出典:平成28年度 春期 応用情報技術者試験 午前 問29(IPA)第3正規形であることの効果又は影響に関する記述として、適切なものはどれか。
正解:冗長性が排除され、データの整合性を保ちやすくなる。
要点:第3正規形は冗長性を排して更新時の不整合を防ぐ
第3正規形は、非キー属性が主キーに完全関数従属し、かつ推移的関数従属が排除された状態である。同じ事実が複数箇所に重複して保持されなくなるため、更新時の不整合(更新異常)が起こりにくくなり、データの整合性を保ちやすくなる。
出典:平成29年度 秋期 応用情報技術者試験 午前 問27(IPA)“受注明細”表は,どのレベルまでの正規形の条件を満足しているか。ここで,実線の下線は主キーを表す。
正解:第2正規形
要点:非キー属性間の従属が残る表は第2正規形まで
主キーは受注番号と明細番号の組で、商品コードも数量もこの主キー全体に決まるため部分関数従属はなく、第2正規形は満たしている。しかし商品名は非キー属性である商品コードによって決まる推移的関数従属があるため、第3正規形は満たしていない。
出典:平成29年度 春期 応用情報技術者試験 午前 問27(IPA)“部品”表のメーカコード列に対し,B+木インデックスを作成した。これによって,“部品”表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデ…
正解:メーカコードの値が4001以上,4003以下の部品を検索する。
要点:B+木インデックスは範囲検索で最も効果を発揮する
B+木インデックスは値が大小順に並び、葉ノードが順につながっているため、ある範囲に含まれる値をまとめて取り出す範囲検索で効果が大きい。値の種類が多く均一に分散していれば、絞り込まれる行数も少なくて済む。
出典:平成29年度 春期 応用情報技術者試験 午前 問28(IPA)第1,第2,第3正規形とそれらの特徴a〜cの組合せのうち,適切なものはどれか。 a:どの非キー属性も,主キーの真部分集合に対して関数従属しない。 b:どの非キー…
正解:第1正規形=c,第2正規形=a,第3正規形=b
要点:正規化は繰返し排除→部分従属排除→推移従属排除の順。
第1正規形は繰返し属性(同一行内の反復する項目)を排除した形で、これがcに当たる。第2正規形は主キーの一部だけに依存する部分関数従属を排除した形でaに当たり、第3正規形は主キー以外を介した推移的関数従属を排除した形でbに当たる。正規化は繰返しの排除→部分従属の排除→推移従属の排除という順で進む。
出典:平成30年度 秋期 応用情報技術者試験 午前 問28(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。