1LINEはじめに主キー、候補キー、スーパーキー、外部キーの違いについて具体例を使ってまとめました。動画での解説もしているのでこちらも参考にしていただければと思います。主キー、候補キー、スーパーキー、外部キーの違いとは関係(テーブル)において、タプル(レコード)を一意に識別するための属性(カラム)をキーといい、このキーについて説明していきます。key)とは主キーは関係(表)の中で一つだけ設定します。候補キーの中から最もふさわしいものが選ばれます。社員を識別するために一意に振られるような社員番号などがあります。key)とは候補キーは関係(表)の中に複数存在することがあります。主キーの候補となるキーが候補キーで、候補キーの条件は、タプル(行)を一意に識別できること極小であること(スーパーキーの中で極小のもの)主キーとは異なり、NULLを許可する属性を持つ(もしくは含む)ものも許可します。key)とは関係(表)の中に、候補キーの数以上に存在し、タプル(行)を一つに特定できるという条件(極小でなくていい)さえ満たせばスーパーキーになります。候補キーに、様々な組み合わせで他の属性を付け足したものになります。(関係(表)の、全ての属性もスーパーキーの一つになります。次の表のような1人の社員に対して複数のタプル(行)を管理しているテーブルがあります。社員番号と連番、もしくは、電話番号だけで一意になります。この場合、主キー、候補キー、スーパーキーはそれぞれ以下のようになります。}スーパーキーの中で、タプルを一意に識別できる極小の{社員番号、連番}、{電話番号}が候補キーとなり、さらに、NULLを許可しない属性のみからなる候補キーの{社員番号、連番}が主キーになります。主キー、候補キー、スーパーキーの関係を絵にするとこうなります。key)とは他の関係(表)の主キー(または候補キー)を参照する項目を外部キーといいます。片方の主キーをもう片方に入れて外部キーとすることがあります。関連が1対多の場合、関係A(1側)の主キーを関係B(多側)に入れて外部キーとします。関係が多対多の場合、新たに関連エンティティを設けます。これをエンティティCとおき、関係A、Bのそれぞれの主キーを関係Cに入れて外部キーとします。まとめ今回はデータベースのいろいろなキーの違いについて具体例を使いながらまとめてみました。テーブル設計をする上でキーを決めていく作業は重要なので押さえておく必要があります。合格、おめでとうございます。あと、勉強になりました。ありがとうございます。候補キーの追加の条件について、質問があります(すでにおっしゃっていたら申し訳ありません)。「候補キーはスーパーキーの中で最小のもの」とありました。最初の一文、「追加」ではなく、「厳密」の間違いでした。2020年5月19日ご質問ありがとうございます。例のように社員番号と連番でテーブルのレコードが一意に特定できる場合、{社員番号、連番}がテーブルのレコードを一意に特定できる最小の組み合わせ(候補キー)で、スーパーキーと言うのはいくらでもあって。本当は{社員番号、連番}の組み合わせで一意に特定できるけど、他の項目を追加で組み合わせても一意にさえなればスーパーキーです。回答になってますでしょうか。2021年1月14日はじめまして。TomoProgと申します。疑問に思った点があったため、質問させていただきます。2021年1月19日ご質問ありがとうございます。仰る通り、考え方は合っています。この例だと電話番号でも候補キーになります。混乱させてしまいましたね。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。