データベースを設計するときは、ER図と呼ばれる図面を引いてテーブル同士の関連性やテーブルに入れるデータの属性などを可視化します。ER図を作図する際には多重度も考慮して行われるのですが、今回はER図と多重度について解説していきます。
ER図
ER図のほかにもデータベースの図式はありますが、当ブログでは一般的に使われているER図について説明します。
ER図とは、実体(テーブルのこと)と関連を図として表現するものです。テーブルを設計する前にER図を作成し、各テーブル間の関係性を分かりやすく表現します。以下の図は顧客情報マスタテーブルをER図にしたものです。
ER図の要素
実体(エンティティ)
実体はシステム上で管理するデータを表し、名刺で表現できるものであり、データベースに含まれるテーブル自体のことを指します。ER図では長方形で表現されます。
関連(リレーションシップ)
テーブル同士の関係を表し、片方の情報が確定すると関係するもう一方の情報も確定するような関係性を表します。ER図ではテーブルとテーブルを結ぶ線と記号で表現されます。
属性(フィールド)
テーブル、リレーションシップは付属する情報を持つことができ、その情報のことを属性といいます。データベース上ではテーブルのレコードが持つフィールドのことを指します。また、ER図では長方形の中に項目として表現されます。
多重度
多重度とは、ある実体(テーブル)の1件あたりのデータが他の実体(テーブル)のいくつのデータに関連するのかを表すものです。
例えば、顧客情報マスタテーブルと注文履歴テーブルが関連しているという前提で、顧客情報マスタテーブルにあるひとつのレコードに対し、注文履歴テーブルに含まれるレコードがいくつ関連しているかを表すものです。ER図ではリレーションシップの両端に記号を付加して表現します。
多重度(1:1の関係)
テーブルAに対して対応するテーブルBがのフィールドが1つしかなく、逆の場合もデータを指定すると関連するデータが一意に定まるテーブル同士の関連を「1:1の関係」であると言います。
例)社員番号に対応する社員
多重度(1:Nの関係)
テーブルAに対してテーブルBのフィールドが複数存在し、テーブルBに対してはテーブルAのフィールドが1つしか存在しないような関連の場合、「1:Nの関係」であると言います。
例)部署に対応する社員
多重度(N:N)の関係
テーブルAに対して、テーブルBのフィールドが複数存在し、テーブルBに対してもテーブルAのフィールドが複数存在するような関連の場合、「N:Nの関係」であると言います。
例)社員に対する作業
※N:Nの関係は、システム化する上で拡張性に問題を抱えることが多いので、モデルの再検討が必要になる場合があります。
連関エンティティ
RDBでは通常、N:Nの関係を1:Nの関係に直すためにN:Nの関係の間に新たにテーブルを設けて間接的に関係を結ぶケースがあります。これを連関エンティティと言います。