本文へスキップ

自然キーとは?

しぜんきー

自然キーとは、データ自体が持つ実世界の意味のある属性(メールアドレスや社員番号など)をそのままテーブルの主キーとして利用する設計手法です。

自然キー(Natural Key)とは、データベース設計において、エンティティが現実世界で持つ意味のある属性をそのまま主キー(Primary Key)として使用する方式です。例えば、社員テーブルでは「社員番号」、商品テーブルでは「JANコード」、ユーザーテーブルでは「メールドレス」などが自然キーの典型例です。

対照的な概念として「代理キー(サロゲートキー)」があります。こちらはデータ本来の意味とは無関係に、データベースが自動採番する連番IDなどを主キーとする方式です。

自然キーのメリットとデメリットを整理します。

  • メリット:ビジネス的な意味がキーに直接現れるため可読性が高く、外部システムとのデータ連携が容易になります。
  • デメリット(変更への脆弱性):メールアドレスや社員番号は業務変更により変わる可能性があり、主キーの変更は関連テーブルへの連鎖的な更新を引き起こします。
  • デメリット(一意性の保証困難):現実世界の属性は「一見ユニークそう」でも、例外的な重複が生じることがあります。
  • デメリット(結合コスト):文字列など長いキーをJOINに使うと、整数の代理キーに比べてパフォーマンスが低下することがあります。

実際の設計では、業務の安定性や外部連携の要件に応じて自然キーと代理キーを使い分けることが重要です。複合的な一意性を表現する場合は両者を組み合わせるケースもよく見られます。

使い方・例文

社員マスタで「社員番号」を主キーにする設計は自然キーの典型ですが、組織再編で社員番号体系が変わると全関連テーブルの更新が必要になるリスクがある点で注意が必要です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語