『独習データベース設計』を読んで勉強中です。
データベース設計では、概念モデルのキーはできるだけナチュラルキーを使う。
概念モデルでは人工キーを設定しない。
ナチュラルキーの例
予約
顧客番号 予約年月日時刻 |
人工キーの例
予約
予約ID(意味なし連番) |
予約番号 |
概念モデルから人工キーを使うと、本来何を持って一意に定まるのかがわからなくなってしまう。
概念設計段階では、意味的に分かりやすいナチュラルキーを使用する。
なお、実装する時は必要に応じてサロゲートキーを使う。
他人のブログを見ていると、概念設計や論理設計と物理設計を区別せずに、ナチュラルキーとサロゲートキーを論じているものがあるので注意が必要すること。