リレーショナル データベースのコンテキストでは、外部キーはエンティティ間の関係を確立および強制し、データベース テーブル間の参照整合性を保証する重要な要素です。外部キーは、別のテーブルの主キー列を参照する、あるテーブル内の列または列のセットです。外部キーを含むテーブルは参照テーブルまたは子テーブルと呼ばれ、主キーを含むテーブルは参照テーブルまたは親テーブルと呼ばれることがよくあります。
強力なno-codeプラットフォームであるAppMasterは、データベース スキーマの設計と管理への包括的なアプローチの一部として外部キーを利用し、ユーザーがコードを書かずに効率的でスケーラブルなリレーショナル データベース構造を作成できるようにします。 AppMaster外部キーを利用することで、ユーザーがアプリケーションのデータ エンティティ間の複雑な関係と依存関係をモデル化できるようにし、基礎となるビジネス ドメインの正確かつ一貫した表現を保証します。
外部キーの主な目的は、リレーショナル データベース内の参照整合性を維持することです。参照整合性は、関連するテーブル内のデータが正確で一貫性を保つことを保証する一連のデータ一貫性ルールと制約です。これらのルールでは、子テーブルの外部キー列の値は親テーブルの主キー列の既存の値に対応する必要があると規定しています。つまり、外部キー制約は、子テーブル内に孤立したレコードが作成されるのを防ぎます。
Customers と Orders という 2 つのテーブルを含むデータベースの簡単な例を考えてみましょう。各注文には、その注文を行った顧客が含まれています。このシナリオでは、Customers テーブルには、各顧客を一意に識別するための「Customer_ID」などの主キー列が含まれます。一方、Orders テーブルには、各注文を対応する顧客にリンクするための「Customer_ID」などの外部キー列が含まれます。この外部キー制約により、Orders テーブル内のすべての注文には、Customers テーブルに存在する有効な顧客が関連付けられている必要があります。したがって、存在しない顧客に対して注文を作成することは不可能となり、潜在的なデータの不一致を防ぐことができます。
参照整合性の維持に加えて、外部キーを使用してエンティティ間の関係を定義することもできます。これらの関係は、1 対 1、1 対多、および多対多の 3 つのタイプに分類できます。 1 対 1 の関係は、2 つのエンティティ間の厳密な関連付けを定義します。親テーブルの各エンティティは、子テーブルの最大 1 つのエンティティにリンクされます。 Customers と Orders の例で示したように、1 対多の関係では、子テーブルの複数のレコードを親テーブルの 1 つのレコードに関連付けることができます。中間テーブルまたはジャンクション テーブルを必要とする多対多のリレーションシップでは、参加している各テーブルの複数のレコードを他のテーブルの複数のレコードにリンクできます。
外部キー制約は、データベースが関連レコードの更新または削除を処理する方法を決定するカスケード アクションを強制することもできます。 4 つの主要なカスケード アクションは、CASCADE、SET NULL、SET DEFAULT、および NO ACTION または RESTRICT です。 CASCADE オプションは、親テーブルの主キー値に加えられた変更または削除を、子テーブルの関連するすべての外部キー値に反映します。 SET NULL は、親テーブルの対応する主キー値が更新または削除されたときに、子テーブルの外部キー値を NULL に設定します。 SET DEFAULT も同様に動作しますが、子テーブルの外部キー値を NULL ではなくデフォルト値に割り当てます。最後に、NO ACTION または RESTRICT は、子テーブル内の関連レコードを孤立させる主キー値への変更を防ぎます。
要約すると、外部キーはリレーショナル データベースの構築と管理において重要な概念であり、一貫性があり、正確で、相互接続されたデータ表現を保証します。 AppMaster 、データベース スキーマ設計に対する直感的で視覚的なアプローチを通じて、外部キーのパワーと柔軟性を採用し、ユーザーがコードを 1 行も記述することなく、スケーラブルで効率的かつ信頼性の高いデータベース構造を作成できるようにします。 AppMasterデータベース設計に外部キーを組み込むプロセスを簡素化するだけでなく、より迅速でコスト効率の高いソフトウェア開発にも貢献します。