データベース設計において、複合キーとは、2つ以上の属性[1] [2] [3] (テーブル列) から構成される候補キーであり、これらが組み合わさってエンティティの発生(テーブル行)を一意に識別します。
複合キーとは、キーを構成する各属性がそれ自体で外部キーとなる複合キーである。 [4] [5]
利点
複合キーは、多くの場合複数の自然キー属性から構成されるため、自然キーと同様の利点があります。
ストレージ
複合キーは、代理キー列を定義する場合と比べて、ディスク領域の使用が少なくなります。これは、複合キーが既にテーブル内の属性として存在し、一意の識別のためだけにテーブル内で定義する必要がないためです。これにより、テーブルが簡素化され、領域も節約されます。
実装と使用が簡単
複合キーは、その構成要素がデータベース内で既に名前の付いた項目であるため、データベース スキーマに簡単に実装できます。複合キーが自然キーでもある場合、実際のシナリオでは直感的に理解しやすいことがよくあります。複合キーは、非複合キーではレコードを一意に識別できない場合によく使用されます。たとえば、個人名は特定のデータベース内で一意であることが多いですが、常に一意であるとは限りません。また、生年月日などの他のフィールドを追加して、一意性をさらに高めることもできます。
デメリット
要件の変更
ビジネス要件とルールは変化する可能性があり、それによって現実世界の特定のエンティティの形式が変化する可能性があります。複合キーは、現実世界に関連する複数の自然キーで構成されており、現実世界での形式が変化すると、データベース内の形式も変化します。複合キーの属性の数が変化し、すべての外部キーを更新する必要があるため、これは不便です。
複雑さとストレージ
複合キーは複数の属性で構成され、複合キーは複数のテーブルで外部キーとして参照されます。この場合、外部キーとして 1 つの列だけでなく複数の列が格納されるため、大量のディスク領域が使用されます。これによりスキーマが複雑になり、クエリの CPU コストが高くなります。これは、結合ごとに DBMS が 1 つの自然キーの場合の 1 つの属性ではなく 3 つの属性を比較する必要があるためです。
例
例として、各学生が大学で受講しているモジュールを表すエンティティがあります。このエンティティには、主キーとしてstudentIDとmoduleCode があります。主キーを構成する各属性は、1 つのインスタンスで学生を識別し、別のインスタンスでモジュールを識別するときに一意の参照を表すため、単純キーです。したがって、このキーは複合キーです。
対照的に、同じ例を使用して、学生をfirstName + lastNameで識別するとします(人によって名前が異なると想定)。学生を表すテーブルでは、主キーはfirstName + lastNameになります。学生は同じfirstNameまたは同じlastNameを持つことができるため、これらの属性は単純なキーではありません。学生の主キーfirstName + lastNameは複合キーです。
参照
参考文献
- ^ Connolly, Thomas M.; Begg, Carolyn E. (2015). 「12.3.4 キー」。データベース システム: 設計、実装、管理への実践的アプローチ(6.、グローバル版)。ボストン コロンバス インディアナポリス: ピアソン。p. 416。ISBN 978-1-292-06118-4。
- ^ Elmasri, Ramez; Navathe, Sham (2017). 「17.4 複数キーのインデックス」。データベースシステムの基礎(第 7 版、グローバル版)。ボストン、コロンバス、インディアナポリス、ニューヨーク、サンフランシスコ、ホーボーケン、アムステルダム、ケープタウン、ドバイ、ロンドン、マドリード、ミラノ、ミュンヘン、パリ、モントリオール、トロント、デリー、メキシコシティ、サンパウロ、シドニー、香港、ソウル、シンガポール、台北、東京: ピアソン。p. 661。ISBN 978-1-292-09761-9。
- ^ Coronel, Carlos; Morris, Steven (2015)。「用語集」。データベースシステム: 設計、実装、管理(第 12 版)。Cengage Learning。p. 770。ISBN 978-1-305-62748-2。
- ^ ダンカン、ジョイス; ラクリー、レスリー; ウォーカー、アレクサンドリア (1995)、ダンカン、ジョイス; ラクリー、レスリー; ウォーカー、アレクサンドリア (編)、「ステップ 340 — 必要な論理データ モデルの強化」、SSADM in Practice: バージョン 4 テキスト、ロンドン: Macmillan Education UK、pp. 61– 70、doi :10.1007/978-1-349-10341-6_6、ISBN 978-1-349-10341-6、2024-10-25取得
- ^ Sikora, ZM (1997)、Sikora, ZM (編)、「設計の実装」、Oracle Database Principles、ロンドン: Macmillan Education UK、pp. 74– 84、doi :10.1007/978-1-349-14693-2_7、ISBN 978-1-349-14693-2、2024-10-25取得
外部リンク
- 複合逆関数特性: セマンティックウェブにおける同等の概念
- リレーションデータベースの用語、キー: RDBMS のさまざまなタイプのキーの概要
- データベース内のさまざまな種類のキー: RDBMS で使用されるすべての種類のキーの概要
