スポンサーリンク

55-02.テーブル/レコード/フィールド/主キー/外部キー

スポンサーリンク
テーブル、レコード、フィールド、主キー、外部キー ITパスポート
●このページで解説する内容
テーブル:関係データベースののこと
フィールド:テーブルの縦の
レコード:テーブルの横の
主キー:1つのレコードを特定できるフィールド
[関連用語]一意性制約NOT NULL制約
・外部キー複数のテーブルを関係づけるフィールド
[関連用語]参照制約
スポンサーリンク

データベース設計

データベース設計に関連する用語として、「テーブル/フィールド/レコード」「主キー」「外部キー」について解説をします。

テーブル/フィールド/レコード

関係データベース(RDB:リレーショナルデータベース)では、表形式でデータを整理します。この自体のことテーブルと呼びます。

また、テーブルの縦の列フィールド(項目)横の行レコードといいます。

テーブル、フィールド、レコード

上の表は、各社員の「社員番号」「社員名」および「所属の支店番号」「支店名」を整理した表です。この表を「社員テーブル」とします。

この「社員テーブル」の「社員番号」「社員名」「所属の支店番号」「支店名」の各列がフィールドです。項目自体の名称はフィールド名(項目名)と呼びます。

更に、「社員テーブル」では、各社員の情報は1つの行で整理されています。例えば、2行目の「社員番号:0002」は、「社員名:山田」で「支店番号:02」の「支店名:神奈川支店」に所属することが分かります。この1行がレコードになります。

このように、関係データベースは、テーブルと呼ばれる表形式で整理し、縦の列のフィールドと横の行のレコードから構成されます。

主キー

主キーとは、テーブルの1つのレコードを特定できるフィールドです。主キーはテーブルに1つだけ設定できます。また、複数のフィールドで1つの主キーとすることもできます。

主キー

例えば、上のテーブルでは、「社員番号」のフィールドで社員と所属する支店を特定できるので、「社員番号」が主キーになります。

主キーは、「一意性制約」「NOT NULL制約」の2つの制約を満たす必要があります。

一意性制約、NOT NULL制約
・一意性制約
主キーの値が重複しない
・NOT NULL制約
主キーの値にNULLがない

一意性制約とは、主キーの値が重複しないことです。例えば、「社員番号:0003」が重複している場合を考えます。社員番号「0003」のレコードを選択した場合、「佐藤」と「斉藤」の2名(2つのレコード)が特定されます。

主キーは、1つのレコードを特定するので、テーブル内で値が重複しない一意性制約を満たす必要があります。

さらに、主キーの値は、NULL(空白)ではいけない、NOT NULL制約も満たさなければなりません。

このように、テーブルの1つのレコード(行)を特定できるフィールド(項目)を主キーと呼び、「一意性制約」「NOT NULL制約」を満たす必要があります。

外部キー

外部キーとは、複数のテーブルを関係付けるフィールドです。1つのテーブルに複数設定できます。

外部キー

2つの表で考えると、「社員テーブル」の「支店番号」のフィールドで、「支店テーブル」を紐づけ、支店名が分かります。つまり、「社員テーブル」の「支店番号」のフィールドは、外部キーになります。また、「支店テーブル」の「支店番号」は主キーです。

外部キーは、「参照制約」を満たす必要があります。

参照制約
・参照制約
外部キーの値が、関係づけるテーブル(表)の主キーの値に存在する

例えば、「社員テーブル」の「支店番号:48」というレコードがあると仮定します。しかし、「支店テーブル」には、「支店番号:48」は存在しないため、2つのテーブルを関係づけられません。したがい、外部キーの値が関係づけるテーブルの主キーに存在する必要があり、このことを参照制約と呼びます。

このように、複数のテーブルを関係付けるフィールド外部キーと呼び、「参照制約」を満たす必要があります。

[補足]インデックス

インデックスは、日本語で索引といいます。索引の本来の意味は、書籍に出てくる用語を五十音順で並べたものです。索引により、用語の検索が容易になります。

データベースも同じ考え方があり、検索を高速化するためのテーブルインデックス(索引)といいます。

例えば、「社員テーブル」の「社員名:相内」のレコードを検索する場合、上から順番に1つずつ確認するので、時間がかかります。

続いて、インデックスとして、社員名を五十音順に並べたテーブルを用意した場合を考えます。

「社員名:相内」なので、インデックスの「あ行」から検索します。インデックスの検索結果より、「社員名:相内」は「社員番号:9999」と判明します。この検索結果から、「社員番号:9999」を「社員テーブル」で検索し、レコードを特定できます。

このように、データベースのレコードを効率的に検索するためテーブルがインデックスです。

スポンサーリンク

【まとめ】テーブル/レコード/フィールド/主キー/外部キー

それでは最後におさらいをしておきましょう!

用語説明
テーブル関係データベースの表のこと
フィールドテーブルの縦の列
レコードテーブルの横の行
主キー1つのレコードを特定するフィールド
テーブルに1つだけ設定
複数のフィールドで主キーとしてもよい
一意性制約テーブル内で主キーの値が重複しない
NOT NULL制約主キーの値にNULLがない
外部キー複数のテーブルを関係づけるフィールド
テーブルに複数設定できる
参照制約外部キーの値が、関係づけるテーブルの主キーの値に存在する
インデックス検索を高速化するためのテーブル

コメント

タイトルとURLをコピーしました