候補キー列挙について
浅学さん
(No.1)
初歩的な質問かと思いますが、候補キーの説明が理解できません。
ご助力いただけますと非常にありがたいです。
「2024年版データベーススペシャリスト 三好康之」P323にて以下のような記述がありました。
-----------------------
社員番号|連番| 氏名 |電話番号 |住所
0001 | 01 |三好康之 |072-xx〜 |兵庫県〜
0001 | 02 |三好康之 |090-yy〜 |兵庫県〜
0002 | 01 |松田幹子 |03-zz〜 |NULL
0003 | 01 |山下慎吾 |090-ww〜|東京都〜
0003 | 02 |山下慎吾 |NULL |神奈川県〜
※自宅の電話番号は家族共有の場合があるので一意にはならない前提
候補キーは次のようになる
{社員番号,連番}
{社員番号,電話番号,住所}
-----------------------
この候補キー列挙に際して、
{連番,氏名} {連番,住所} {連番,電話番号}
{氏名,電話番号,住所} など
他の候補もあるように思えるのですが、なぜこの2つだけとなるのでしょうか。
ご助力いただけますと非常にありがたいです。
「2024年版データベーススペシャリスト 三好康之」P323にて以下のような記述がありました。
-----------------------
社員番号|連番| 氏名 |電話番号 |住所
0001 | 01 |三好康之 |072-xx〜 |兵庫県〜
0001 | 02 |三好康之 |090-yy〜 |兵庫県〜
0002 | 01 |松田幹子 |03-zz〜 |NULL
0003 | 01 |山下慎吾 |090-ww〜|東京都〜
0003 | 02 |山下慎吾 |NULL |神奈川県〜
※自宅の電話番号は家族共有の場合があるので一意にはならない前提
候補キーは次のようになる
{社員番号,連番}
{社員番号,電話番号,住所}
-----------------------
この候補キー列挙に際して、
{連番,氏名} {連番,住所} {連番,電話番号}
{氏名,電話番号,住所} など
他の候補もあるように思えるのですが、なぜこの2つだけとなるのでしょうか。
2024.09.11 03:05
浅学さん
(No.2)
〔追記〕
自分なりに考えたのですが
・{連番,氏名} →同姓同名の際不適
・{連番,住所}
・{連番,電話番号}
・{連番,電話番号,住所}
→兄弟/夫妻など住所・電話番号が同一の別人がいる際不適
ということでしょうか。
しかし{氏名,電話番号,住所}が不適となる理由は分かりません。"同姓同名の同棲"なんてものは想定できないのですが…
それとも社員番号を必ず使用するという制約などあるのでしょうか。
自分なりに考えたのですが
・{連番,氏名} →同姓同名の際不適
・{連番,住所}
・{連番,電話番号}
・{連番,電話番号,住所}
→兄弟/夫妻など住所・電話番号が同一の別人がいる際不適
ということでしょうか。
しかし{氏名,電話番号,住所}が不適となる理由は分かりません。"同姓同名の同棲"なんてものは想定できないのですが…
それとも社員番号を必ず使用するという制約などあるのでしょうか。
2024.09.11 03:13
GinSanaさん
★DB ゴールドマイスター
(No.3)
>{氏名,電話番号,住所} など
>"同姓同名の同棲"なんてものは想定できないのですが
たぶん、三好の仮定が甘かっただけです。それはそれで候補キーとしてはアリだと思います。
この連番って最初履歴用か?と思いましたが、本人の電話がいくつあるかということになるようです。もし履歴なら、たとえば住所がhoge→fuga→hogeと引っ越した場合に{社員番号,電話番号,住所}の場合成立しなくなるので純粋に{社員番号,連番} だけしか残らないはず。
2024.09.11 08:01
toshtechさん
(No.4)
{氏名,電話番号,住所}だと同姓同名、NULL、NULLとなった場合に一意にならないのではないでしょうか。
社員番号|連番| 氏名 |電話番号 |住所
0004 | 01 |鈴木一郎 |NULL |NULL
~
0008 | 01 |鈴木一郎 |NULL |NULL ←0004とは別人の鈴木一郎さん
↓このように同じ社員で電話番号と住所が同じなのは登録できないようですね。
社員番号|連番| 氏名 |電話番号 |住所
0004 | 01 |鈴木一郎 |NULL |NULL
0004 | 02 |鈴木一郎 |NULL |NULL
社員番号|連番| 氏名 |電話番号 |住所
0004 | 01 |鈴木一郎 |NULL |NULL
~
0008 | 01 |鈴木一郎 |NULL |NULL ←0004とは別人の鈴木一郎さん
↓このように同じ社員で電話番号と住所が同じなのは登録できないようですね。
社員番号|連番| 氏名 |電話番号 |住所
0004 | 01 |鈴木一郎 |NULL |NULL
0004 | 02 |鈴木一郎 |NULL |NULL
2024.09.12 06:05
浅学さん
(No.5)
GinSana様
履歴というのは考えつきませんでした!
今後はそうした着目もしていきたいと思います。
新しい視点をいただくことができました、ありがとうございます!!
toshtech様
仰る通り双方NULLの場合は記載の通りになりそうです!
引っかかっていた教本内の解説でしたが納得がいきました、ありがとうございます!!
履歴というのは考えつきませんでした!
今後はそうした着目もしていきたいと思います。
新しい視点をいただくことができました、ありがとうございます!!
toshtech様
仰る通り双方NULLの場合は記載の通りになりそうです!
引っかかっていた教本内の解説でしたが納得がいきました、ありがとうございます!!
2024.09.28 02:19
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。