外部キーがデータの世界全体に扉を開く
データベース設計者は、リレーショナルデータベースを開発するときにキーを幅広く使用します。 これらのキーの最も一般的なものには、主キーと外部キーがあります。 データベース外部キーは、別のテーブルの主キー列と一致するリレーショナルテーブル内のフィールドです。 外部キーの仕組みを理解するために、リレーショナルデータベースの考え方を詳しく見てみましょう。
リレーショナルデータベースの基本
リレーショナルデータベースでは、 データが行と列を含むテーブルに格納されているため、検索と操作が容易です。リレーショナルデータベースの概念の背後にある深刻な数学があります(リレーショナル代数、EF
IBMのCodd(1970年))、これはこの記事の話題ではありません。
実際の目的(および非数学者)のために、リレーショナルデータベースは「関連する」データを行および列に格納する。 また、ここでは興味深いところがあります。ほとんどのデータベースは、あるテーブルのデータが別のテーブルのデータにアクセスできるように設計されています。 テーブル間の関係を作成するこの能力は、リレーショナルデータベースの真のパワーです。
外部キーの使用
ほとんどのテーブル、特に大規模で複雑なデータベースのテーブルには、主キーがあります。 他のテーブルにアクセスするように設計されたテーブルには、外部キーも必要です。
一般的に引用されているNorthwindsデータベースを使用するには、Productテーブルの抜粋を以下に示します。
製品番号 | 商品名 | CategoryID | QuantityPerU | 単価 |
---|---|---|---|---|
1 | チャイ | 1 | 10箱×20袋 | 18.00 |
2 | チャン | 1 | 24〜12オンスのボトル | 19.00 |
3 | アニシードシロップ | 2 | 12 - 550 mlボトル | 10.00 |
4 | シェフアントンのケージン調味料 | 2 | 48 - 6オンスのジャー | 22.00 |
5 | シェフアントンのガンボミックス | 2 | 36箱 | 21.35 |
6 | おばあちゃんのボイセンベリースプレッド | 2 | 12 - 8オンスのジャー | 25.00 |
7 | おじさんのオーガニック乾燥梨 | 7 | 12 - 1ポンドpkg。 | 30.00 |
ProductID列は、このテーブルの主キーです。 各製品に一意のIDを割り当てます。
このテーブルには、外部キー列CategoryIDも含まれています。 製品テーブルの各製品は、製品のカテゴリを定義するカテゴリテーブルのエントリにリンクしています。
このデータベースのCategoriesテーブルの抜粋に注意してください。
CategoryID | 種別名 | 説明 |
---|---|---|
1 | 飲料 | ソフトドリンク、コーヒー、紅茶、ビール、エール |
2 | 調味料 | 甘くて美味しいソース、味わい、スプレッド、調味料 |
3 | お菓子 | デザート、キャンディー、スイートブレッド |
5 | 乳製品 | チーズ |
CategoryID列は、この列の主キーです。 (別のテーブルにアクセスする必要がないため、外部キーはありません)。Productテーブルのすべての外部キーは、Categoriesテーブルの主キーにリンクします。 たとえば、製品Chaiには「Beverages」カテゴリが割り当てられ、Aniseed Syrupには「Condiments」カテゴリが割り当てられます。
この種のリンクは、リレーショナルデータベースでデータを使い、再利用するための無数の方法を作り出します。