複合キーとは?ふくごうきー
複合キーとは、複数の属性を組み合わせて初めて1件を識別できるキー。多対多を分解した連関表のように、両側の実体の識別子がそろって初めて行が定まる場合に自然に現れ、構成する列を1つでも欠くと一意性が崩れる。主キーが複数あるという意味ではなく、1つの主キーが複数の列で構成されている状態を指す。
最終更新:2026-10-06
この語が出る過去問を解く →背景
正規化は「どの属性がどの属性を決めるか」を突き止める作業であり、その出発点が候補キーの特定にある。キーが複数列になると、キー全体ではなくその一部だけで決まってしまう属性が紛れ込みやすく、第2正規形の判定はまさにこの状況を扱う。複合キーを取り違えたまま先へ進むと、以降の分解の結論がすべてずれるため、記述式では最初に問われる。
具体例
受注明細表を「受注番号+行番号」で識別すると、一つの受注に複数の商品行が並んでも一意になる。この表を別の表から参照するときは、外部キーの側も2列そろえて持たせないと参照先の行を特定できない。
試験での引っ掛け
構成する列の一部だけで他の属性が決まるなら、それは部分関数従属であり第2正規形を満たさない。また列を並べただけでキーになるとは限らず、どの列も外せないという極小性を確かめる必要がある——一意になるからといって余分な列を含めたものは候補キーではなく、単なるスーパキーにとどまる。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5(IPA)
あるエンティティを関係データベース上に実装しようとしたとき、その主キーが多くの属性から構成される複合キーとなることが分かった。主キーとして扱う属性を少なくして扱…
正解:連番などを値としてとる列を新たに設けて主キーとし、複合キーの代理キー(surrogate key)とする。
要点:長い複合主キーは連番の代理キーに置き換える
多数の属性から成る複合主キーは、参照する側の外部キーも同じ数だけ列を持つことになり、結合条件も長くなって扱いにくい。この場合は業務的な意味を持たない連番などの単一列を新たに設けて主キーとし、もとの複合キーは一意性制約を課した候補キーとして残す。この新設した人工的な主キーが代理キー(サロゲートキー)である。
出典:令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問6(IPA)解説で登場
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。