複合キーとは?
複合キーとは、複数の属性を組み合わせて1件を識別するキー。連関表のように、両側の実体の識別子をそろえて初めて行が定まる場合に自然に現れる。構成列のどれかを欠くと一意性が崩れる点が単一列のキーと異なる。
データベーススペシャリスト試験の過去問では2回出題されています(2024年度〜2025年度)。
ふくごうきー
複合キーの意味
複数の属性を組み合わせて1件を識別するキー。連関表のように、両側の実体の識別子をそろえて初めて行が定まる場合に自然に現れる。構成列のどれかを欠くと一意性が崩れる点が単一列のキーと異なる。
複合キーの具体例
受講表を「学生番号+科目コード」で識別する。この組合せなら同じ学生が別科目を取る行と共存できる。ただし外部表からこの表を参照するときは、外部キーも2列そろえて持たせる必要がある。
複合キーは試験でどう引っ掛けられる?
構成列の一部だけで他の属性が決まる場合、それは部分関数従属であり第2正規形を満たさない。列を並べただけでキーになるとは限らず、極小性(どの列も外せないこと)の確認が必要。
複合キーと関連する用語
複合キーが出た過去問
あるエンティティを関係データベース上に実装しようとしたとき、その主キーが多くの属性から構成される複合キーとなることが分かった。主キーとして扱う属性を少なくして扱…
正解:連番などを値としてとる列を新たに設けて主キーとし、複合キーの代理キー(surrogate key)とする。
要点:長い複合主キーは連番の代理キーに置き換える
多数の属性から成る複合主キーは、参照する側の外部キーも同じ数だけ列を持つことになり、結合条件も長くなって扱いにくい。この場合は業務的な意味を持たない連番などの単一列を新たに設けて主キーとし、もとの複合キーは一意性制約を課した候補キーとして残す。この新設した人工的な主キーが代理キー(サロゲートキー)である。
出典:令和6年度 秋期 データベーススペシャリスト試験 am2 問5(IPA)次の表に対して、第3正規形まで正規化を行った場合、少なくとも幾つの表に分割されるか。ここで、顧客の1回の注文に対して一つの受注番号が割り当てられ、顧客は1回の注…
正解:4
要点:部分関数従属と推移的関数従属を除くと4表になる
まず受注番号と商品コードの複合キーに対し、顧客や受注日は受注番号だけで定まる部分関数従属なので、受注の見出し部分と明細部分に分ける。次に商品名と単価は商品コードに、顧客名は顧客コードに従属する推移的関数従属なので、それぞれ独立した表に切り出す。受注金額は単価と受注数から計算できる導出項目である。結果として受注・受注明細・商品・顧客の4つの表になる。
出典:令和7年度 秋期 データベーススペシャリスト試験 am2 問6(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。