【なちゅらるきー】
ナチュラルキー とは?
最終更新:
💡 業務ですでに使っている識別子を、データのキーに
社員番号など、業務のデータに元からある識別用の値やその組み合わせを使うキー。主キーに選ぶ場合は、一意でNULLがないことが必要。識別専用に追加するサロゲートキーと区別する。
📌 このページのポイント
ナチュラルキーって、自然派のキーってこと?
たとえば会社で使っている社員番号を、社員データのキーにも使う考え方だよ。名前か番号かではなく、業務ですでに使う識別子か、データベースの識別専用に追加した値かの違いなんだ。
メールアドレスとかもそうなの?
値が変わるとどうなるの?
その値を外部キーで参照していれば、参照先との整合を保つ対応が必要だよ。PostgreSQLなら更新を拒否したり、ON UPDATE CASCADEで参照側にも反映したりできる。全部を手作業で更新するとは限らないけれど、影響の確認は必要なんだ。
じゃあナチュラルキーって使わない方がいいの?
一律には決められないよ。業務上の一意性、値の安定性、参照や履歴の管理などで判断する。同じ社員番号でも、複数の会社のデータをまとめれば重複するかもしれない。その場合は会社と社員番号の組み合わせなども考えるんだ。
サロゲートキーにすれば重複の心配も解決?
まとめ:ざっくりこれだけ覚えればOK!
「ナチュラルキー」って出てきたら「業務に元からある識別子を使うキー」と思えばだいたいOK!
📖 おまけ:英語の意味
「Natural Key」 = 自然キー
💬 識別のためだけに追加する値ではなく、業務のデータが元から持つ識別子を使う、という意味だよ。番号でも業務上の役割があれば候補になるんだ。