RDBMSにおける一意キーとは?主キーとの違いを徹底解説
多くのユーザーは、どちらもテーブルの行を一意に識別する役割を持つことから、主キー(Primary Key)と一意キー(Unique Key)を同一視しがちです。しかし実際には、両者にはいくつかの重要な相違点があります。最も代表的な違いはNULL値の扱いであり、一意キーはNULL値を許容しますが、主キーにはNULL値を設定できません。
本記事では、主キーと一意キーをさまざまな観点から比較し、それぞれの概念と使い分けのポイントをわかりやすく解説します。
用途の違い
一意キーは、特定の列に重複した値が登録されることを防ぐために使用されます。一方、主キーはテーブル全体の行を一意に識別するためのものであり、テーブルに対して一意性を保証する役割を果たします。
NULL値の扱い
主キーはNULL値を受け入れることができません。これが一意キーとの決定的な違いです。一意キーでは、1つだけNULL値を許容することができます。
設定できる数
1つのテーブルに設定できる主キーは1つだけです。それに対し、一意キーは必要に応じて複数の列に設定することが可能です。
重複データの防止
一意キーは、データベース内の異なる行間でデータが重複することを防ぎます。ただし、一意キーが設定された列では、NULL値を持つ行が存在する場合があります。
変更の可否
主キーは一度設定すると変更することができませんが、一意キーは後から変更・修正することが可能です。
まとめ
主キーと一意キーは、どちらもデータの一意性を保証するための重要な制約ですが、NULL値の扱い、設定できる数、変更の可否といった点で大きく異なります。テーブル設計の際には、各レコードを一意に識別する「顔」となる列には主キーを、それ以外で重複を防ぎたい列には一意キーを使い分けるのが基本です。両者の特性を正しく理解し、適切に活用しましょう。
-
RDBMSの主要用語を徹底解説!データベース・主キー・外部キーの基礎知識
RDBMS(リレーショナルデータベース管理システム)には、データベース、テーブル、カラムなど、押さえておきたい重要な用語が数多くあります。ここでは、それぞれの用語の意味と役割を、具体例とともにひとつずつわかりやすく解説していきます。データベース(Database)データベースとは、「Student(学生)」や「Professors(教授)」などの複数のテーブルをまとめて管理する集合体のことです。システム全体のデータを格納する土台となる存在です。テーブル(Table)テーブルは、行(レコード)と列(カラム)で構成されるデータの集合です。例えば、学生情報を管理するテーブルは以下のようになります。S
-
RDBMSの外部キー(Foreign Key)とは?主キーとの関係を具体例で解説
外部キー(Foreign Key)とは外部キー(Foreign Key)とは、複数のテーブル同士をつなぐリンクを作成するための仕組みです。あるテーブルの列が、別のテーブルの主キー(Primary Key)を参照することで、テーブル間の関連性を表現できます。外部キーを設定することで、データベースは「参照先に存在しない値」の登録を防ぎ、データの一貫性(参照整合性)を保つことができます。ここでは、Employee(従業員)テーブルの「DeptID」を例に、外部キーの働きを見ていきましょう。テーブル例1:Employee(従業員テーブル)EmpIDEmpNameEmpAgeDeptIDテーブル例2:D