Skip to main content

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

Google Japanで働くとは?プロダクトとビジネスを支えるテクニカルサービスチーム (六月 2026)

Google Japanで働くとは?プロダクトとビジネスを支えるテクニカルサービスチーム (六月 2026)
Anonim

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

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

リレーショナルデータベースでは、データが行と列を含むテーブルに格納され、検索と操作が容易になります。リレーショナルデータベース(リレーショナル代数、E.F.

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

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

外部キーの使用

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

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

Northwindデータベースの製品表の抜粋
製品番号商品名CategoryIDQuantityPerU単価
1チャイ110箱×20袋18.00
2チャン124〜12オンスのボトル19.00
3アニシードシロップ212 - 550 mlボトル10.00
4シェフアントンのケージン調味料248 - 6オンスのジャー22.00
5シェフアントンのガンボミックス236箱21.35
6おばあちゃんのボイセンベリースプレッド212 - 8オンスのジャー25.00
7おじさんのオーガニック乾燥梨712 - 1ポンドpkg。30.00

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

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

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

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

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

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