foreignkey・とは?中学生にもわかるデータベースの基本と使い方共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
foreignkey・とは?中学生にもわかるデータベースの基本と使い方共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


foreignkeyとは

データベースの世界では情報を整理して結びつける仕組みがとても大切です。ここで登場するのが 外部キー という考え方です。foreignkey とは、あるテーブルの列が別のテーブルの主キーを指し示す仕組みのことを指します。これを使うと、2つのテーブルの間に「関係性」を作ることができ、データの整合性を保ちながら情報を結びつけることができます。

簡単に言うと、外部キーは“参照元”と“参照先”をつなぐ橋の役割をします。参照先の主キーが削除されたり変更されたりすると、参照元のデータが不正になる可能性があります。そこで 参照整合性 を守るための仕組みとして外部キーが使われます。

主キーと外部キーの違い

データベースには行を一意に識別する 主キー があります。これは各行を特定する「ID」のようなものです。一方、外部キー は他のテーブルの主キーを指す列であり、2つのテーブルを結びつける“手がかり”になります。これにより、同じ情報を重複して保存せずに済み、データの整合性を保てます。

具体例で見る仕組み

以下の例で仕組みをイメージしてみましょう。顧客テーブル注文テーブルを用います。顧客テーブルには顧客の情報と 主キーとなる id があり、注文テーブルには 外部キーとしての customer_id があり、これは顧客テーブルの id を参照します。

テーブル 役割 キーの説明
customers 顧客情報を管理 id 主キー
orders 注文情報を管理 customer_id 外部キー 参照 customers.id

この関係を使うと、例えばある注文がどの顧客によって出されたのかをすぐに確認できます。実務では FOREIGN KEY の定義と 参照整合性 の設定が重要です。

SQLのイメージ

実際のデータベース設計では次のような定義が使われます。外部キーを作るときは、参照するテーブルと列を指定します。例として以下のイメージを挙げます。

テーブルの作成時に外部キーを定義するイメージ:FOREIGN KEY (customer_id) REFERENCES customers(id)。これにより、orders テーブルの customer_id は必ず customers テーブルの id に対応する値になります

外部キーの運用で気をつけたいポイント

外部キーを使うときにはいくつかのポイントがあります。まず NULL 値の扱い です。必ずしも全ての orders に customer_id が入るとは限らない場合、外部キー列を NULL 可にするかどうかを設計段階で決める必要があります。次に ON DELETEON UPDATE の動作です。親テーブル(参照先)の行が削除・更新されると、子テーブル(参照元)にもどのような影響を与えるかを事前に決めておくと、データの不整合を防げます。最後にパフォーマンスの観点として、外部キーを作ると結合処理が多くなるため、適切なインデックスの設計が重要です。

まとめ

외部キーはテーブル間の関係を作る橋であり、データの整合性を保つための基本的な仕組みです。主キーを指すことで参照先を特定し、データの重複を減らし、関係情報を効率的に引き出せます。初めて学ぶときは、顧客と注文のような身近な例から始めて、実際に SQL の文を作ってみると理解が深まります。外部キー参照整合性 の考え方を押さえると、データベース設計の土台がしっかりとできます。


foreignkeyの同意語

外部キー
他のテーブルの主キー(または候補キー)を参照する列です。テーブル間の関係を作り、参照先のデータが存在するかをデータベースが保証します(参照整合性の制約を伴うことが多い)。
FK
Foreign Keyの略。実務では短く“FK”と表記して、テーブル定義やクエリで使われることが多い用語です。
外部参照キー
他のテーブルのキーを参照する役割を持つ列の別称。外部キーとほぼ同義で使われることがあります。
参照キー
別のテーブルのキーを参照するためのキー。文脈次第で外部キーと同義として使われます。
外部キー制約
外部キーとして機能することをデータベースが保証する制約。参照先のデータが存在するかを検証します。
FK制約
FKの正式名称である“Foreign Key制約”の略語。参照整合性を担保する制約を指します。
外部参照制約
外部参照を許容する制約の総称で、外部キー制約と同じ意で使われることがあります。

foreignkeyの対義語・反対語

主キー(プライマリキー
テーブル内の行を一意に識別するキー。外部キーは他テーブルを参照するのに対し、主キーは自テーブル内での識別子として用いられます。
参照先キー(親キー)
外部キーが参照する先のテーブルの主キー。いわば外部キーの“相手側のキー”です(参照される側のキー)。
自己参照外部キー
同じテーブル内の別の行を参照する外部キー。テーブル内での自己参照を表す、外部キーの一種です。
内部キー(ローカルキー)
このテーブル内だけで使われるキー。外部テーブルとの参照を目的としない、内部的な識別子・指標として使われます。
一意キー(UNIQUEキー/制約)
このテーブル内で値の重複を禁止する制約。外部テーブルとの参照には使われません。
候補キー
主キーに実際になり得るキーの集合。複数の属性の組み合わせで構成され、最終的に主キーとして選ばれることがあります。
代替キー(Alternate Key)
主キーとして選ばれなかった候補キー。機能的には主キーの代わりとして使える場合があります。

foreignkeyの共起語

外部キー制約
テーブル間の関係性をデータベース側で保証する仕組み。参照元テーブルの外部キー列が、参照先テーブルの主キーまたは一意キーを必ず指すようにします。
主キー
テーブル内の行を一意に識別する列または列の組み合わせ。外部キーは通常、これを参照します。
参照整合性
外部キーの参照先が必ず存在し、データの整合性を保つ仕組みのこと。挿入・更新・削除時のルールを決めます。
参照元テーブル
外部キーを持つ側のテーブル。他のテーブルを参照する役割を果たします。
参照先テーブル
外部キーの参照先となるテーブル。通常は主キーを提供します。
外部キー
参照元テーブルの列または列の組み合わせで、別のテーブルの主キー/一意キーを参照する制約のこと。
自己参照外部キー
同じテーブル内の列が別の列を参照する外部キーのこと。
複合外部キー
複数列を組み合わせて1つの外部キーとして参照を張るケース。
ON DELETE CASCADE
参照先の行が削除された場合、参照元の対応する行も自動的に削除される挙動。
ON UPDATE CASCADE
参照先の主キーが更新された場合、参照元の対応するFK値も自動的に更新される挙動。
ON DELETE SET NULL
参照先の行が削除された場合、参照元のFK列をNULLに設定する挙動。
ON UPDATE SET NULL
参照先の主キーが更新された場合、参照元のFKをNULLに設定する挙動。
ON DELETE NO ACTION
削除が参照整合性を崩す場合、エラーを返して実行を止める挙動(実装によってNO ACTIONと表示されることも)。
ON DELETE RESTRICT
削除を参照元のFKが存在する場合に禁止する挙動。
DEFERRABLE
制約の検証をデフォルトでは遅延させず、トランザクションの終わりまで延期できる機能。
INITIALLY DEFERRED
トランザクション開始時点で遅延検証を適用する設定。
INITIALLY IMMEDIATE
トランザクション開始時点で即時検証を適用する設定。
MATCH SIMPLE
複合外部キーで、各列を個別に検証する標準的な検証ルール
MATCH FULL
複合外部キーで、全ての列がNULLでない状態でのみ検証する等、厳密な検証ルール
REFERENCES
外部キーの参照先テーブルと列を指定するSQLの構文。例: REFERENCES table(col)。
制約名
外部キー制約に任意の名前を付けて管理・エラー時の参照を容易にする。
インデックス
FK列にインデックスを作ると、結合とFK検証が速くなることが多い。DBMS差がある。
正規化
データを冗長化せず、テーブル間の関係をFKで表現する設計思想。
ER図
実体と関係を図式化した設計図。FKは関係を表す線として描かれる。
データ型整合性
FK列と参照先キーのデータ型・長さ・符号が一致していることが必要。
NULL許容
FK列がNULLを許すかどうか。NULLは「参照なし」を意味し得る。
データベース設計
データの整合性と関係性を定義する設計プロセスの一部としてFKを使います。
JOIN
外部キーを使ってテーブル同士を結び、関連データを横断して取得する操作。
マイグレーション
スキーマ変更を伴う作業。FKの追加・削除は動作差が大きい点に注意。
外部キー列
子テーブルに存在する、参照先を指す列。
参照先キーのデータ型一致
FKと参照先キーのデータ型が一致していることが前提。
自然キー vs サロゲートキー
FKの参照先として、自然キーを使うか代替キー(自動生成キー)を使うかの設計選択。
リート/更新時の挙動選択
FOREIGN KEYのON DELETE/ON UPDATE句で、削除・更新時の挙動を定義します。
外部キーの命名規則
制約名をつける場合の命名ルール。読みやすさと運用性を意識します。
データ整合性エラー
FK違反などの整合性エラーが発生すると、処理が中断されます。

foreignkeyの関連用語

外部キー
ある表の列が別の表の主キーを参照する制約。データ同士のつながりを保ち、整合性を担保します。
主キー
テーブル内の各行を一意に識別する列または列の組み合わせ。外部キーはこれを参照します。
外部キー制約
外部キーを設定するためのデータベース上の規則。参照先の行の存在と削除・更新の挙動を決めます。
参照整合性
参照関係が崩れないようデータを整える性質。FKが核心的な役割を果たします。
親テーブル
外部キーが参照する側のテーブルのこと。通常は一意な主キーを持ちます。
子テーブル
外部キーを持ち、親テーブルの主キーを参照するテーブルのこと。
参照先
外部キーが参照しているテーブル(通常は親テーブル)のこと。
参照元
外部キー列を持つテーブルのこと(通常は子テーブル)。
ジャンクションテーブル
多対多の関係を実現するための中間テーブル。主キーは複数列で構成されることもあります。
一対多
1つの親が複数の子を持つ関係。FKは多側のテーブルに配置されます。
多対一
数の子が1つの親を参照する関係。実質は同義の表現です。
多対多
2つのテーブルが互いに多数の行を参照し合う関係。通常は中間テーブルを使います。
正規化
データの重複を減らし、整合性を高める設計手法。FKは正規化の要点です。
第1正規形
データを原子値に分解し、行と列だけで表現する基本形。
第2正規形
1NFに加え、非キー属性が主キー全体に依存する形にします。
第3正規形
非キー属性が他の非キー属性に依存しない形にします。
カスケード削除
レコードの削除時に子レコードも自動で削除する設定。
カスケード更新
親の主キー更新を子のFKにも自動で伝搬させる設定。
ON DELETE CASCADE
親を削除したとき、関連する子を自動的に削除します。
ON UPDATE CASCADE
親の主キーを更新したとき、子のFKも自動更新します。
ON DELETE SET NULL
親を削除したとき、FKをNULLに設定します。
ON UPDATE SET NULL
親の主キーを更新したとき、FKをNULLに設定します。
ON DELETE RESTRICT
親の削除を禁止して参照整合性を守ります。
ON UPDATE RESTRICT
親の主キーの更新を制限します。
NULL許容
FK列にNULLを許すかどうか。NULLを許すと必須参照ではなくなります。
自己参照外部キー
同じテーブル内で自分自身を参照するFKのこと。
インデックス
検索を速くするためのデータ構造。FKにはインデックスを作ると結合が速くなります。
制約名
FOREIGN KEY 制約に付ける識別名。エラーメッセージや管理に使います。
自然キー
業務上そのまま使えるキー。主キーとして使われることがあります。
サロゲートキー
人工的に作る代替キー。整数など一意性を保つキーとして使います。
デファラブル制約
制約を遅延して検証できる設定。特に PostgreSQL などで使われます。
遅延検証
トランザクション終了時に整合性を検証する設定。
参照アクション
ON DELETE / ON UPDATE など、FKの挙動を指示する設定の総称。
参照整合性違反
FK参照が成立しないデータが存在する状態。挿入時などにエラーになります。
実行時整合性チェック
データベースが自動で整合性を維持する機能。
INNER JOIN
共通のキーを持つ行だけを結合して取り出します。
LEFT JOIN
左側のテーブルの全行を保持し、右側の一致する行を結合します。
RIGHT JOIN
右側のテーブルの全行を保持します(データベースによってはサポート状況が異なることがあります)。
FULL JOIN
両方のテーブルの全行を結合して結果を作ります。
ジョイン
複数のテーブルを結合して1つの結果セットにする操作全般。

foreignkeyのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14213viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2189viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1037viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
764viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
746viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
677viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
587viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
549viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
527viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
505viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
470viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
463viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
445viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
413viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
397viws
select句・とは?初心者でも分かるSQLの基本と使い方共起語・同意語・対義語も併せて解説!
372viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
362viws
ダイレクトチャットとは?初心者向けガイドで使い方と注意点を徹底解説共起語・同意語・対義語も併せて解説!
336viws
wi-fiとは?初心者向けにわかりやすく解説する基礎ガイド共起語・同意語・対義語も併せて解説!
290viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
289viws

新着記事

インターネット・コンピュータの関連記事