主キーとは、リレーショナルデータベースにおいて、テーブル内の各レコードを一意に識別するためのカラムのことです。主キーを選択する際には、すべての行に対して一意な値を含むカラムを選択する必要があります。すべての行が主キーのカラムに値を持ち、その値が変化してはいけません。すべてのルールに適合する自然な主キーが見つからない場合は、サロゲートキーを作成することができます。このWikiHowでは、データベースの主キーを選択する方法を説明します。
1
主キーのすべてのレコードが一意であることを確認します。これは、他の行で繰り返されることのない、ある種の一意な識別子を含むカラムを選択したいことを意味します。複数の行で同じ値が含まれるカラムは、主キーにすべきではありません。
- 例えば、従業員のデータベースを構築していて、各従業員がユニークな従業員番号を持っている場合、従業員ID番号を含むカラムを主キーとして使用することができます。
- 複数のカラムを使用する主キーである複合キーの使用を検討するのもよいでしょう。複数のカラムをキーに結合することで (たとえば、DateofBirth、CountryofOrigin、EmployeeID を結合する)、重複入力の可能性を減らすことができます。
2
変更されない値を選択します。いったんカラムを主キーに割り当てると、そのカラムの値は変更できません。静的なもの、つまり更新する必要がないとわかっているものを選びましょう。
- 例えば、従業員IDの例では、従業員IDカラムを主キーとして使用するのは、その従業員に別の従業員IDが割り当てられる可能性がない場合に限られます。
- その他にも、人の名前、住所、電話番号、アドレスなどが変更される可能性があります。主キーを選択する際には、これらの情報は避けてください。
3
主キーにヌル値は許されない。すべての行に識別子を持たなければなりませんが、どの行の主キーカラムにもNULL値を持つことはできません。
- 例えば、患者情報を含むデータベースを作成するとします。社会保障番号は一意であり、変更されることがないため、このようなカラムは秘密キーの良い候補のように思えるかもしれません。しかし、すべての患者に社会保障番号のエントリが必要です。もし患者が社会保障番号を提供していない場合、そのカラムをプライマリキーにすると、テーブルに追加することができません。
4
代理キーの使用を検討します。自然キーとは、社会保障番号や従業員ID番号など、実際のデータを含むキーのことです。前述のすべての条件を満たすものを見つけるのは難しいかもしれません!自然な)主キーとして機能するカラムが見つからない場合は、サロゲートキーを試してみましょう:
- サロゲートキーには、新しいレコードが入力されたときに生成される一意な値が含まれます。サロゲートキーを使うには、実際のデータを反映しない新しいカラムを作成する必要があります。例えば、顧客のリストがある場合、CustomerIDという新しいカラムを作成し、各顧客の一意なデータベース識別子としてのみ使用します。
- CustomerIDの例では、新しい顧客をデータベースに入力するたびに、その顧客の永続的な一意識別子となる新しいCustomerIDを割り当てます。番号ジェネレータを使用することもできますし、前の値に1を足してユニークな新しい顧客IDを作ることもできます。
コメント
最新を表示する
NG表示方式
NGID一覧