代理キーとは?だいりキー
代理キーとは、業務上の意味を持たず、行を識別するためだけに採番する主キー。連番やUUIDを用い、値が変わり得る業務キーや長い複合キーの代わりに置く。外部キーが1列で短くなるため結合や索引が軽くなる一方、キーの値を見ても業務的な意味は読み取れなくなる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
業務上のコードは変わる。電話番号は引っ越しで変わり、社員番号は制度改定で振り直され、自治体コードは合併で消える。主キーが変わると、それを参照しているすべての子表の外部キーを追いかけて直さなければならない。識別のためだけの不変な値を別に用意しておけば、業務側のコードがどう変わっても参照関係は壊れない、というのが代理キーの狙いである。
具体例
PostgreSQLのIDENTITY列やOracle Databaseのシーケンスで採番した会員IDを主キーに置き、メールアドレスや「支店コード+口座種別+口座番号」の側にはUNIQUE制約を付ける。
試験での引っ掛け
代理キーを主キーにしても、業務上の一意性は制約として残さなければならない。残し忘れると同じ顧客が別IDで二重登録され、識別できるが重複している表ができる。代理キーを付けたこと自体は正規化ではない点にも注意。
関連用語
出た過去問
出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5(IPA)
あるエンティティを関係データベース上に実装しようとしたとき、その主キーが多くの属性から構成される複合キーとなることが分かった。主キーとして扱う属性を少なくして扱…
正解:連番などを値としてとる列を新たに設けて主キーとし、複合キーの代理キー(surrogate key)とする。
要点:長い複合主キーは連番の代理キーに置き換える
多数の属性から成る複合主キーは、参照する側の外部キーも同じ数だけ列を持つことになり、結合条件も長くなって扱いにくい。この場合は業務的な意味を持たない連番などの単一列を新たに設けて主キーとし、もとの複合キーは一意性制約を課した候補キーとして残す。この新設した人工的な主キーが代理キー(サロゲートキー)である。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 2. データベース設計 > (2) データベースの設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。