talosのプログラミング教室

【基本・応用情報技術者】データベースの候補キー、主キー、複合キー、外部キー

スポンサーリンク

こんにちは。たろすです。

今回は候補キー、主キー、複合キー、外部キーについて説明します。

候補キー

タプル(行)を一意に識別できる属性(列)の集合のうち極小のものを候補キーといいます。

下のテーブルでは{社員番号}、{社員名}、{社員番号,社員名}でタプルを特定できますが、社員番号か社員名のどちらかのみで特定できるため候補キーは{社員番号}と{社員名}になります。

f:id:talosta:20210612093627p:plain

主キー

候補キーのうちの一つが主キーとなります。

主キーには以下の条件があります。

一意性制約(ユニーク制約):その列の中に重複するデータがあってはならない

非ナル制約:その列の中にNULLがあってはならない


先程のテーブルでは候補キーが二つあってどっちを主キーにすればいいの?となると思いますが、一般的には社員番号を主キーにします。

なぜなら社員名は今後社員が増えたときに絶対に重複しないとは言えないからです。


主キーの属性名には下線を引くことで主キーであることを示します。

f:id:talosta:20210612100143p:plain

複合キー

主キーは一つの属性であるとは限りません。

属性の組み合わせを主キーとする場合もあります。

そのときの主キーを複合キーと呼びます。

例えば下のテーブルでは商品番号だけではタプルを一意に識別できません。

なので商品番号と連番の複合キーとなります。

f:id:talosta:20210612100011p:plain

外部キー

他のテーブルの主キーを参照する属性を外部キーといいます。

外部キーとなる属性のデータは必ず参照先の列に存在しなくてはなりません。

f:id:talosta:20210612102248p:plain

なお外部キーの属性名には点線を引きます。

おわりに

今回はデータベースのキーについて説明しました。

午後のデータベースには必須の知識になるので覚えておきましょう。