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

外部キーがデータの世界全体に扉を開く

データベース設計者は、リレーショナルデータベースを開発するときにキーを幅広く使用します。 これらのキーの最も一般的なものには、主キーと外部キーがあります。 データベース外部キーは、別のテーブルの主キー列と一致するリレーショナルテーブル内のフィールドです。 外部キーの仕組みを理解するために、リレーショナルデータベースの考え方を詳しく見てみましょう。

リレーショナルデータベースの基本

リレーショナルデータベースでは、 データが行と列を含むテーブルに格納されているため、検索と操作が容易です。リレーショナルデータベースの概念の背後にある深刻な数学があります(リレーショナル代数、EF

IBMのCodd(1970年))、これはこの記事の話題ではありません。

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

外部キーの使用

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

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

Northwindデータベースの製品表の抜粋
製品番号 商品名 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テーブルの抜粋に注意してください。

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

CategoryID列は、この列の主キーです。 (別のテーブルにアクセスする必要がないため、外部キーはありません)。Productテーブルのすべての外部キーは、Categoriesテーブルの主キーにリンクします。 たとえば、製品Chaiには「Beverages」カテゴリが割り当てられ、Aniseed Syrupには「Condiments」カテゴリが割り当てられます。

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