【RDB】関係スキーマとキー - 関係スキーマの表記ルールとキーの種類

【RDB】関係スキーマとキー - 関係スキーマの表記ルールとキーの種類

関係スキーマとキーはデータベース設計に関わる重要な項目です。

ここでは関係スキーマとキーについて解説します。

関係スキーマ

関係スキーマは“関係名とその属性を示したモノ”です。

イメージとしては、表形式のデータ構造をテキストによって示したモノになります。

関係スキーマの表記ルールは次の形式です。

関係名(属性1,属性2 ...)

例えば、商品価格(店名,住所,商品名,価格)のように表記します。

表形式のデータ構造に照らし合わせると、関係名は表名、属性は列名に一致し、次のような表の構造となります。

商品価格
店名 住所 商品名 価格
ABC店 東京都〇〇区●● りんご ¥150
ABC店 東京都〇〇区●● みかん ¥80
XYZ店 神奈川県〇〇市●● メロン ¥2,500
XYZ店 神奈川県〇〇市●● みかん ¥100

キー

キーは“意味を持つ属性の集合”です。

表記方法は次のように属性を波括弧で括り、属性が複数ある場合はカンマ(,)で区切ります。

{属性1,属性2 ...}

キーには『スーパーキー』や『候補キー』、『主キー』、『外部キー』などの種類があり、次のように表記します。

スーパーキー

スーパーキーは“データ(1行)を一意に識別するキー(複数可)”です。

多数の属性の組み合わせで表現でき、上記の商品価格でのスーパーキーの例は次のようになります。

  • {店名,住所,商品名,価格}
  • {店名,住所,商品名}
  • {店名,商品名}
  • {住所,商品名}
  • ...

候補キー

候補キーは“データ(1行)を一意に識別する属性数が最小のキー(複数可)”です。

属性数が最小のスーパーキーと同じになり、次のようになります。

  • {店名,商品名}
  • {住所,商品名}

主キー

主キーは“データ(1行)を一意に識別するキー”です。

候補キーから最も適したキーを選び決定します。

例えば、{店名,商品名}です。

ただし、一般的にはデータを識別するためにIDを割り振り、IDを主キーとする方法が用いられます。

主キーは『PK』(Primary Key)と略称表記されることがあり、属性名の下に実線を引いて表現します。

商品価格( ID , 店名 , 住所 , 商品名 , 価格 )

外部キー

外部キーは“別属性を参照するキー”です。

例えば、商品価格を店舗と商品の2つに分けます。

  • 店舗(ID,店名,住所)
  • 商品(店舗ID,名前,価格)
店舗
ID 店名 住所
0001 ABC店 東京都〇〇区●●
0002 XYZ店 神奈川県〇〇市●●
商品
店舗ID 名前 価格
0001 りんご ¥150
0001 みかん ¥80
0002 メロン ¥2,500
0002 みかん ¥100

商品の店舗ID属性は店舗のID属性を参照する外部キーとすることができます。

外部キーは参照先の属性値のみを持てることを想定し、このようにすることで、IDに基づいて、店舗情報と商品情報を識別することが可能です。

また、外部キーは『FK』(Foreign Key)と略称表記されることがあり、属性の下に破線を引いて表現します。

  • 店舗( ID , 店名 , 住所 )
  • 商品( 店舗ID , 名前 , 価格 )