主キーとは

しゅきー

表の中の1行を一意に識別するための列、または列の組。値が重複せず、NULLを含まないという制約を持つ。行を一意に識別できる最小限の列の組(候補キー)の中から1つを選んで主キーにする。

「主キー」は、1分野の8問の練習問題に出てきます(データベースの基礎など)。

この用語の分野: データベースの基礎

主キーの練習問題に挑戦

関係データベースの表で、主キーに指定する列(または列の組)が満たさなければならない条件はどれか。

  1. A値が数値であること
  2. B表の最初の列であること
  3. C値が表の中で重複せず、NULLを含まないこと
答えと解説を見る

正解:C. 値が表の中で重複せず、NULLを含まないこと

主キーは、表の中の1行を一意に識別するための列、または列の組です。そのため、主キーの値はほかの行と重複してはならず(一意性)、値が決まっていないことを表すNULLも認められません(非NULL)。SQLの CREATE TABLE で PRIMARY KEY を指定すると、DBMS(データベース管理システム)がこの2つの制約を守らせ、重複した値やNULLを入れようとする操作はエラーになります。主キーの値は社員番号のような数値でも文字列でもかまいませんし、列の位置にも決まりはありません。行を一意に識別できる最小限の列の組を候補キーと呼び、候補キーの中から1つを選んだものが主キーです。

履修表(学生番号, 科目番号, 成績)は、どの学生がどの科目を履修し、どんな成績だったかを記録する。1人の学生は複数の科目を履修し、1つの科目は複数の学生が履修する。同じ学生が同じ科目を2回登録することはないとき、この表の主キーとして適切なものはどれか。

  1. A学生番号
  2. B科目番号
  3. C学生番号と科目番号の組
答えと解説を見る

正解:C. 学生番号と科目番号の組

1人の学生が複数の科目を履修するので、学生番号だけでは同じ値の行が複数でき、行を一意に識別できません。同様に、1つの科目を複数の学生が履修するので、科目番号だけでも一意になりません。学生番号と科目番号を組み合わせれば、同じ学生が同じ科目を2回登録しないという条件から、1行が一意に決まります。このように複数の列を組み合わせた主キーを複合キー(連結キー)と呼び、SQLでは PRIMARY KEY (学生番号, 科目番号) のように列を並べて指定します。履修表の学生番号と科目番号は、それぞれ学生表と科目表の主キーを参照する外部キーにもなり、この表は学生と科目の多対多の関係を表しています。

解説の中の「主キー」

「主キー」が出てくる問題(8問)

  1. 関係データベースの表で、主キーに指定する列(または列の組)が満たさなければならない条件はどれか。
  2. 履修表(学生番号, 科目番号, 成績)は、どの学生がどの科目を履修し、どんな成績だったかを記録する。1人の学生は複数の科目を履修し、1つの科目は複数の学生が履修する。同じ学生が同じ科目を2回登録することはないとき、この表の主キーとして適切なものはどれか。
  3. 顧客表(顧客ID, 氏名)の主キーは顧客IDで、注文表(注文ID, 顧客ID)の顧客IDは、顧客表の顧客IDを参照する外部キーとして定義されている。顧客表には顧客IDが'C1'と'C2'の行だけがある。この状態で INSERT INTO 注文 VALUES ('O9', 'C5') を実行したときの結果として正しいものはどれか。
  4. 受注表(受注番号, 商品番号, 数量, 顧客番号, 顧客名)の主キーは{受注番号, 商品番号}で、関数従属は {受注番号, 商品番号} → 数量、受注番号 → 顧客番号、顧客番号 → 顧客名 である。この表を第3正規形まで正規化した結果として正しいものはどれか。
  5. 社員表(社員番号, 氏名, 部署コード, 部署名)の主キーは社員番号で、どの列も1つの値だけを持つ。関数従属は 社員番号 → 氏名、社員番号 → 部署コード、部署コード → 部署名 である。この表の正規形として正しいものはどれか。
  6. 関係データベースの用語で、表(リレーション)の1行に当たるものはどれか。
  7. 社員表(社員番号, メールアドレス, 氏名, 部署)で、社員番号とメールアドレスはどちらも社員ごとに異なり、NULLにならない。氏名と部署は、ほかの社員と同じになることがある。この表の候補キーをすべて挙げたものはどれか。
  8. E-R図で、学生と科目の間に「1人の学生は複数の科目を履修し、1つの科目は複数の学生が履修する」という多対多の関係がある。この関係を関係データベースの表で実現する方法として、適切なものはどれか。

データベースの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

半導体・電子回路・情報の計算ツール

関連する用語

外部キー 関係データベース SQL 第3正規形 正規化 E-R図 ACID特性 インデックス トランザクション 2相ロック

用語集の一覧へ