リレーショナルデータベースにおける外部キーの力

データベース設計者は、開発時にキーを幅広く利用します リレーショナルデータベース. これらのキーの中で最も一般的なものには、主キーと外部キーがあります。 データベース外部キーは、別のテーブルの主キー列と一致するリレーショナルテーブルのフィールドです。 外部キーがどのように機能するかを理解するために、リレーショナルデータベースの概念を詳しく見てみましょう。

リレーショナルデータベースのいくつかの基本

リレーショナルデータベースでは、データは行と列を含むテーブルに格納されるため、検索と操作が簡単になります。 リレーショナルデータベース(1970年にIBMのE.F. Coddによって提案された関係代数)の概念の背後にはいくつかの深刻な数学がありますが、それはこの記事のトピックではありません。

実用的な目的(および非数学者)のために、リレーショナルデータベースは 関連データ 行と列で。 さらに、興味深い点はここにあります。ほとんどのデータベースは、あるテーブルのデータが別のテーブルのデータにアクセスできるように設計されています。 テーブル間の関係を作成するこの機能は、リレーショナルデータベースの真の力です。

外部キーの使用

ほとんどのテーブル、特に大規模で複雑なデータベースのテーブルには、主キーがあります。 他のテーブルにアクセスするように設計されたテーブルにも、外部キーが必要です。

一般的に引用されているNorthwindsデータベースを使用するために、Productテーブルからの抜粋を次に示します。

製品番号 商品名 CategoryID 数量PerU 単価
1 チャイ 1 10箱×20袋 18.00
2 チャン 1 24〜12オンスのボトル 19.00
3 アニスシロップ 2 12-550mlボトル 10.00
4 シェフ・アントンのケイジャン調味料 2 48-6オンスの瓶 22.00
5 シェフのアントンのガンボミックス 2 36箱 21.35
6 おばあちゃんのボイセンベリースプレッド 2 12〜8オンスの瓶 25.00
7 ボブおじさんのオーガニックドライナシ 7 12-1ポンドのパッケージ。 30.00
Northwindデータベースの製品テーブルの抜粋

NS 製品番号 列はこのテーブルの主キーです。 各製品に一意のIDを割り当てます。

このテーブルには、外部キー列も含まれています。 CategoryID. Productテーブルのすべての製品は、その製品のカテゴリを定義するCategoriesテーブルのエントリにリンクしています。

データベースのCategoriesテーブルからの次の抜粋に注意してください。

CategoryID 種別名 説明
1 飲料 ソフトドリンク、コーヒー、紅茶、ビール、エール
2 調味料 甘くておいしいソース、レリッシュ、スプレッド、調味料
3 お菓子 デザート、キャンディー、スイートブレッド
5 乳製品 チーズ
Northwindデータベースのカテゴリテーブルの抜粋

コラム CategoryID この列の主キーです。 (別のテーブルにアクセスする必要がないため、外部キーはありません。)Productテーブルのすべての外部キーは、Categoriesテーブルの主キーにリンクしています。 たとえば、製品チャイにはカテゴリ「飲料」が割り当てられ、アニスシロップはカテゴリ調味料に割り当てられます。

この種のリンクは、リレーショナルデータベースのデータを使用および再利用するための無数の方法を作成します。