サロゲートキーとは?
さろげーときー
サロゲートキーとは、データベース設計においてデータの内容とは無関係に人工的に割り当てられる識別子(主キー)のことで、自動採番のIDがその代表例です。
サロゲートキー(Surrogate Key)とは、リレーショナルデータベース設計において、レコードを一意に識別するために人工的に付与される主キーです。データ自体の属性(名前・番号・コードなど)は使わず、システムが自動生成した連番やUUIDなどを識別子として採用します。
対照概念はナチュラルキー(自然キー)で、社員番号・マイナンバー・ISBNコードなどビジネス上の意味をもつ値を主キーにする方式です。
サロゲートキーを使うメリットは以下のとおりです。
- ビジネスルールの変更(番号体系の変更など)がDBの構造に影響しない
- 複合キーが不要になりテーブル設計がシンプルになる
- 外部キー参照が単純なINT型やUUID一本で済む
- 結合クエリのパフォーマンスが向上しやすい
一方で、サロゲートキー自体は業務上の意味をもたないため、意味のある識別子を別途管理する必要があります。また、UUIDを使う場合はインデックスサイズが大きくなるトレードオフもあります。
多くのWebフレームワーク(LaravelのEloquent、Ruby on RailsのActiveRecordなど)では、自動採番のサロゲートキーがデフォルトの主キーとして採用されており、現代のWebアプリケーション開発では標準的な設計手法となっています。
使い方・例文
ユーザーテーブルに「id: 1, 2, 3…」と自動採番で付与されるIDカラムが典型的なサロゲートキーで、ユーザーが名前を変えてもIDは不変のままレコードを追跡できます。
この用語をシェア
最終更新: