SQL
 Computer >> コンピューター >  >> プログラミング >> SQL

DBMSのキーの種類を徹底解説|候補キー・主キー・外部キーなどの違いを具体例で理解しよう

DBMSにおけるさまざまなキーの種類とは?

リレーショナルデータベースでは、テーブル内の各行(レコード)を正確に識別し、テーブル同士の関係を適切に結び付けるために「キー」が重要な役割を果たします。ここでは、DBMSで使われる代表的な6つのキーについて、それぞれの定義と役割をわかりやすく解説します。

候補キー(Candidate Key)

候補キーとは、テーブル内の任意のデータ行を一意に識別できる、最小限の属性セットのことです。1つのテーブルに対して、複数の候補キーが存在する場合もあります。

主キー(Primary Key)

主キーは、複数ある候補キーの中から1つが選ばれた、テーブルを代表する識別キーです。主キーはテーブル内のすべてのデータ行を一意に識別でき、重複した値やNULL値は許されません。

スーパーキー(Super Key)

スーパーキーは主キーの上位集合(スーパーセット)です。主キーを含む属性の集合のうち、テーブル内の任意のデータ行を一意に識別できるものすべてがスーパーキーに該当します。

複合キー(Composite Key)

テーブル内の単一の属性だけでは行を一意に識別できない場合があります。そのようなときは、2つ以上の属性を組み合わせて1つのキーを作成します。このように複数の属性から構成されるキーを複合キーと呼びます。

代替キー(Secondary Key)

候補キーのうち、主キーとして選ばれなかった残りのキーを代替キー(セカンダリーキー)と呼びます。

外部キー(Foreign Key)

外部キーとは、あるテーブルの属性値が、別のテーブルでは主キーとして機能しているものです。外部キーを介して2つのテーブルを関連付けられるため、リレーションシップの構築に不可欠な存在です。ただし、外部キーの列に誤ったデータを入力すると、テーブル間の関係が無効になってしまうため、データの登録には十分な注意が必要です。

具体例で学ぶ各キーの違い

ここからは、次の3つのテーブルを例に、それぞれのキーがどこに該当するのかを確認していきましょう。

<STUDENT>(学生テーブル)

学生番号氏名電話番号科目番号
1Andrew661592728410
2Sara658365486520
3Harry464756746310

<SUBJECT>(科目テーブル)

科目番号科目名担当講師
10DBMSKorth
20AlgorithmsCormen
30AlgorithmsLeiserson

<ENROLL>(履修テーブル)

学生番号科目番号
110
220
310

各テーブルのスーパーキー

<STUDENT>テーブルのスーパーキーは以下のとおりです。

{学生番号}
{電話番号}
{学生番号, 氏名}
{学生番号, 電話番号}
{学生番号, 科目番号}
{電話番号, 氏名}
{電話番号, 科目番号}
{学生番号, 氏名, 電話番号}
{学生番号, 電話番号, 科目番号}
{学生番号, 氏名, 科目番号}
{電話番号, 氏名, 科目番号}

<SUBJECT>テーブルのスーパーキーは以下のとおりです。

{科目番号}
{科目番号, 科目名}
{科目番号, 担当講師}
{科目番号, 科目名, 担当講師}
{科目名, 担当講師}

<ENROLL>テーブルのスーパーキーは次の1つのみです。

{学生番号, 科目番号}

各テーブルの候補キー

  • <STUDENT>テーブル:{学生番号} または {電話番号}
  • <SUBJECT>テーブル:{科目番号} または {科目名, 担当講師}
  • <ENROLL>テーブル:{学生番号, 科目番号}

各テーブルの主キー

  • <STUDENT>テーブル:{学生番号}
  • <SUBJECT>テーブル:{科目番号}
  • <ENROLL>テーブル:{学生番号, 科目番号}

複合キーと代替キー

  • <ENROLL>テーブルの複合キー:{学生番号, 科目番号}
  • <STUDENT>テーブルの代替キー:{電話番号}
  • <SUBJECT>テーブルの代替キー:{科目名, 担当講師}

外部キーの関係

{科目番号} は<SUBJECT>テーブルでは主キーとして機能し、<STUDENT>テーブルでは外部キーとして扱われます。このように、外部キーを介して2つのテーブルが関連付けられていることがわかります。

まとめ

DBMSのキーには、候補キー・主キー・スーパーキー・複合キー・代替キー・外部キーの6種類があり、それぞれ役割が異なります。主キーはテーブルの行を一意に識別する基盤となり、外部キーはテーブル間の関係を構築するために使われます。これらの違いを正しく理解しておくことは、データベースの正規化やリレーション設計を行ううえで非常に重要です。

  1. Chromebookでファンクションキー(F1〜F12)を使う方法【ショートカット早見表つき】

    Chromebookユーザーの多くが最初に戸惑うのが、その独特なキーボード配置です。検索キーが搭載されている一方で、Caps Lockキーやファンクションキー(F1〜F12)の列など、従来のPCにはあった多くのキーが省略されています。Googleは大胆にも定番のファンクションキーを廃止しましたが、その分の機能性を犠牲にしたわけではありません。Chromebookでは、賢いキーの組み合わせによって、省略されたキーの機能にアクセスできるようになっています。ファンクションキー(F1〜F12)の入力方法ファンクションキーはさまざまなプラットフォームで広く使われており、Chromebookでもアプリやツ

  2. 【徹底解説】Microsoftプロダクトキーの種類と意味|CUS・MAK・KMS・OEMなどの違い

    多くのソフトウェアは、インストール時に「プロダクトキー」の入力を求めます。プロダクトキーとは、英数字が組み合わされた文字列で構成される認証コードのことです。このキーによってソフトウェアの正規性が確認され、開発元はそのコピーが正規に購入されたものであり、海賊版ではないことを保証できます。しかし、Microsoftのプロダクトキーには実は複数の種類が存在し、それぞれの意味を理解していないと、購入やライセンス管理の際に戸惑ってしまうこともあります。本記事では、各種プロダクトキーの違いについて詳しく解説します。Microsoftプロダクトキーの種類一覧Microsoftのプロダクトキーには、以下のよう