データベースの基礎

社員表(社員番号, メールアドレス, 氏名, 部署)で、社員番号とメールアドレスはどちらも社員ごとに異なり、NULLにならない。氏名と部署は、ほかの社員と同じになることがある。この表の候補キーをすべて挙げたものはどれか。

  1. A社員番号だけ
  2. B社員番号、およびメールアドレス(それぞれ単独で候補キー)
  3. C社員番号、および社員番号と氏名の組
答えと解説を見る

正解:B. 社員番号、およびメールアドレス(それぞれ単独で候補キー)

候補キーは、行を一意に識別でき、しかもそこから列を1つでも除くと一意に識別できなくなる、最小限の列の組です。この表では、社員番号もメールアドレスも、それだけで社員を一意に識別できるので、どちらも候補キーです。候補キーの中から1つを選んで主キーにし(ここでは社員番号を選ぶのが自然です)、選ばれなかったメールアドレスは代替キーと呼ばれます。代替キーにUNIQUE制約とNOT NULL制約を付けておくと、重複を防げます。社員番号と氏名の組も行を一意に識別できますが、氏名を除いても一意性が保たれるので最小ではなく、候補キーではありません。このように、一意に識別できるが最小とは限らない列の組はスーパーキーと呼ばれます。

  • A. 主キーに選ぶのは1つでも、候補キーはメールアドレスも含めて2つあります。
  • B. 正しい。どちらも単独で行を一意に識別でき、最小なので候補キーです。
  • C. 社員番号と氏名の組は、氏名を除いても一意性が保たれるので、最小ではなく候補キーではありません。
この分野を解く 分野ページへ

関連する計算ツール

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

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

データベースの基礎のほかの問題

  1. 履修表(学生番号, 科目番号, 成績)は、どの学生がどの科目を履修し、どんな成績だったかを記録する。1人の学生は複数の科目を履修し、1つの科目は複数の学生が履修する。同じ学生が同じ科目を2回登録することはないとき、この表の主キーとして適切なものはどれか。
  2. 顧客表(顧客ID, 氏名)の主キーは顧客IDで、注文表(注文ID, 顧客ID)の顧客IDは、顧客表の顧客IDを参照する外部キーとして定義されている。顧客表には顧客IDが'C1'と'C2'の行だけがある。この状態で INSERT INTO 注文 VALUES ('O9', 'C5') を実行したときの結果として正しいものはどれか。
  3. SQLの文は、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)に分けられる。DDLに分類されるものはどれか。
  4. 商品表に、(商品名, 価格)が(ペン, 120)、(ノート, 250)、(消しゴム, 80)、(ファイル, 300)、(定規, 150)の5行がある。SELECT 商品名 FROM 商品 WHERE 価格 >= 150 ORDER BY 価格 DESC の結果として、返される行を順に並べたものはどれか。
  5. 社員表の部署の列に、上の行から順に 営業、開発、営業、総務、開発、営業 の値が入っている(全6行)。SELECT DISTINCT 部署 FROM 社員 の結果は何行になるか。