本文へスキップ

サロゲートキーとは?

さろげーときー

サロゲートキーとは、データベース設計においてデータの内容とは無関係に人工的に割り当てられる識別子(主キー)のことで、自動採番のIDがその代表例です。

サロゲートキー(Surrogate Key)とは、リレーショナルデータベース設計において、レコードを一意に識別するために人工的に付与される主キーです。データ自体の属性(名前・番号コードなど)は使わず、システムが自動生成した連番やUUIDなどを識別子として採用します。

対照概念はナチュラルキー(自然キー)で、社員番号・マイナンバー・ISBNコードなどビジネス上の意味をもつ値を主キーにする方式です。

サロゲートキーを使うメリットは以下のとおりです。

  • ビジネスルールの変更(番号体系の変更など)がDBの構造に影響しない
  • 複合キーが不要になりテーブル設計がシンプルになる
  • 外部キー参照が単純なINT型やUUID一本で済む
  • 結合クエリのパフォーマンスが向上しやすい

一方で、サロゲートキー自体は業務上の意味をもたないため、意味のある識別子を別途管理する必要があります。また、UUIDを使う場合はインデックスサイズが大きくなるトレードオフもあります。

多くのWebフレームワーク(LaravelのEloquent、Ruby on RailsのActiveRecordなど)では、自動採番のサロゲートキーがデフォルトの主キーとして採用されており、現代のWebアプリケーション開発では標準的な設計手法となっています。

使い方・例文

ユーザーテーブルに「id: 1, 2, 3…」と自動採番で付与されるIDカラムが典型的なサロゲートキーで、ユーザーが名前を変えてもIDは不変のままレコードを追跡できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語