ITパスポート試験 / 平成28年度 秋期 ITパスポート試験 公開問題 / 問95
certification-simodake-work

平成28年度 秋期 ITパスポート試験 公開問題 問95 解説 関係データベースの主キー

関係データベースにおける主キーに関する記述のうち,適切なものはどれか。

  1. 主キーに設定したフィールドの値に1行だけなら NULL を設定することができる。
  2. 主キーに設定したフィールドの値を更新することはできない。
  3. 主キーに設定したフィールドは他の表の外部キーとして参照することができない。
  4. 主キーは複数フィールドを組み合わせて設定することができる。 ✓ 正答

解説

主キーの正体を理解して正解を導く

この問題は、関係データベースにおける「主キー(Primary Key)」の定義を正確に暗記しているかを問うものです。主キーのルールは以下の2点に集約されます。

  1. 一意性:同じ値を持つデータが重複して存在してはいけない
  2. 非NULL性:値が空(NULL)であってはいけない

これらのルールを満たせるのであれば、単一の列(フィールド)だけでなく、複数の列を組み合わせて一つの主キーとすることが認められています。これを「複合主キー」と呼びます。

主キーのルールを詳しく解説

主キーとは、データベースの表(テーブル)の中にあるデータを一意に特定するための「目印」です。選択肢を一つずつ検討し、なぜその記述が誤りなのかを確認しましょう。

・主キーに設定したフィールドの値に1行だけならNULLを設定することができる 誤りです。主キーは「どのデータか」を特定するためのIDのようなものです。データが空(NULL)だと特定できないため、NULLは一切許されません。

・主キーに設定したフィールドの値を更新することはできない 誤りです。主キーは原則として不変であることが望ましいですが、データベースの設計や運用の都合上、値を更新(変更)することは技術的に可能です。ただし、他のテーブルから参照されている場合は、整合性を保つために慎重に行う必要があります。

・主キーに設定したフィールドは他の表の外部キーとして参照することができない 誤りです。主キーはむしろ、他のテーブルから参照されるために存在するといっても過言ではありません。他のテーブルにその値を保持させることで、テーブル同士を関連付ける仕組みを「外部キー」と呼びます。

複合主キーの活用シーン

なぜ一つの列ではなく、複数の列を組み合わせた主キーが必要になるのでしょうか。それは「一つの列だけではデータの重複を防げない場合」があるからです。

例えば、生徒の成績を管理するテーブルを考えてみましょう。「生徒ID」だけで主キーを作ると、一つの生徒に対して複数の教科の成績が登録できないため、主キーとして機能しません。ここで、「生徒ID」と「科目コード」を組み合わせて主キーにすることで、「どの生徒の、どの科目の点数か」を一意に特定できるようになります。

このように、業務システムのデータベース設計では、単一の列で特定が難しい場合に複数の情報を組み合わせてキーを作る手法が頻繁に使われます。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう