リレーショナルデータベースにおける外部キーの力
データベース設計者は、開発時にキーを幅広く利用します リレーショナルデータベース. これらのキーの中で最も一般的なものには、主キーと外部キーがあります。 データベース外部キーは、別のテーブルの主キー列と一致するリレーショナルテーブルのフィールドです。 外部キーがどのように機能するかを理解するために、リレーショナルデータベースの概念を詳しく見てみましょう。
リレーショナルデータベースのいくつかの基本
リレーショナルデータベースでは、データは行と列を含むテーブルに格納されるため、検索と操作が簡単になります。 リレーショナルデータベース(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 |
NS 製品番号 列はこのテーブルの主キーです。 各製品に一意のIDを割り当てます。
このテーブルには、外部キー列も含まれています。 CategoryID. Productテーブルのすべての製品は、その製品のカテゴリを定義するCategoriesテーブルのエントリにリンクしています。
データベースのCategoriesテーブルからの次の抜粋に注意してください。
CategoryID | 種別名 | 説明 |
---|---|---|
1 | 飲料 | ソフトドリンク、コーヒー、紅茶、ビール、エール |
2 | 調味料 | 甘くておいしいソース、レリッシュ、スプレッド、調味料 |
3 | お菓子 | デザート、キャンディー、スイートブレッド |
5 | 乳製品 | チーズ |
コラム CategoryID この列の主キーです。 (別のテーブルにアクセスする必要がないため、外部キーはありません。)Productテーブルのすべての外部キーは、Categoriesテーブルの主キーにリンクしています。 たとえば、製品チャイにはカテゴリ「飲料」が割り当てられ、アニスシロップはカテゴリ調味料に割り当てられます。
この種のリンクは、リレーショナルデータベースのデータを使用および再利用するための無数の方法を作成します。