自然キーとは?
しぜんきー
自然キーとは、データ自体が持つ実世界の意味のある属性(メールアドレスや社員番号など)をそのままテーブルの主キーとして利用する設計手法です。
自然キー(Natural Key)とは、データベース設計において、エンティティが現実世界で持つ意味のある属性をそのまま主キー(Primary Key)として使用する方式です。例えば、社員テーブルでは「社員番号」、商品テーブルでは「JANコード」、ユーザーテーブルでは「メールアドレス」などが自然キーの典型例です。
対照的な概念として「代理キー(サロゲートキー)」があります。こちらはデータ本来の意味とは無関係に、データベースが自動採番する連番IDなどを主キーとする方式です。
自然キーのメリットとデメリットを整理します。
- メリット:ビジネス的な意味がキーに直接現れるため可読性が高く、外部システムとのデータ連携が容易になります。
- デメリット(変更への脆弱性):メールアドレスや社員番号は業務変更により変わる可能性があり、主キーの変更は関連テーブルへの連鎖的な更新を引き起こします。
- デメリット(一意性の保証困難):現実世界の属性は「一見ユニークそう」でも、例外的な重複が生じることがあります。
- デメリット(結合コスト):文字列など長いキーをJOINに使うと、整数の代理キーに比べてパフォーマンスが低下することがあります。
実際の設計では、業務の安定性や外部連携の要件に応じて自然キーと代理キーを使い分けることが重要です。複合的な一意性を表現する場合は両者を組み合わせるケースもよく見られます。
使い方・例文
社員マスタで「社員番号」を主キーにする設計は自然キーの典型ですが、組織再編で社員番号体系が変わると全関連テーブルの更新が必要になるリスクがある点で注意が必要です。
この用語をシェア
最終更新: