generated at
ナチュラルキー
業務に関連するデータを用いた主キー
組である場合もある
対概念は、サロゲートキー



その値が本当にキーとして使えるかはちゃんと検討する必要がある
ビジネスが扱う範囲によって変わってくるはず
例えば、一般に人名は重複するのでキーとして使えないが、過去のグループとかなら使えるかもしれない
IDのライフサイクルも吟味する必要がある
基礎年金番号や、アメリカの社会保障番号は、数年経つと変わることもある(?)
ISBNとかは、新板と旧版に同じものが振られて、重複することがある
そのIDが何を特定するものかに着目する
emailは世界でユニークだが、人を特定するものではない
emailと人は1:1にはなっていない
「ただユニーク」なだけでそれをナチュラルキーにしてはいけない


1つの値をナチュラルキーにする例
Twitterを作っていて、user tableを設計する事を考える
user名(e.g. mrsekut )は、Twitter上でユニークなので、これを主キーにする
とした場合、これはナチュラルキーである
社員を特定するために使っている社員コード(e.g. 0012 )はユニークなので、これを主キーにする


複数の値をナチュラルキーにする例
注文tableを設計していて、
業務的に意味のある3つのデータの組 (userId, productId, date) で、1つの注文を特定できるので、この組を複合キーにする



具体例
ISBN
ISBNは重複しているので使えない




参考