今回のコラムは、前回コラム「エンティティと関連」で説明した関連に伴う多重度の説明になります。
今回説明する「多重度」とは、下の図に説明する「部署」と「従業員」の「所属する」と言う関連において、「一つの部署が何人の従業員と関連を持つか」、「一人の従業員がいくつの部署と関連を持つか」を表現するものです。
なお、「多重度」は、カーディナリティ
(cardinality)と英語で呼ばれる場合もありますが意味は同じです。
先ず、部署側から考えて見ましょう。
総務部とか経理部とかシステム部とか、部署は色々ありますが、任意の一部署を想定すると、普通は何人かの従業員が所属しています。
その状態をビジネスルールで
『一つの「部署」にはn人(nは1以上の任意の数を表します)の「従業員」が所属している』と表現し、ER図では以下のように描きます。
「あれ?、部署側の多重度を書き忘れている」と思った方居ませんか。 書き忘れている訳ではありません。
関連の多重度は、基準とするエンティティ側(ここでは部署側)は常に1で考えているのでER図上には表現する必要が無いのです。
と言う訳で、前述のビジネスルールで描けるER図はここまでになります。
次に、従業員側から考えて見ます。
山田さん、佐藤さん、田中さんと従業員は大勢いますが、任意の一従業員を想定すると、普通は何れか一つの部署にのみ所属しています。
その状態をビジネスルールで
『一人の「従業員」は一つの「部署」に所属している』と表現し、ER図では以下のように描きます。
そして、ER図では、「部署」と「従業員」の双方向からの関連を表現しているので、前述の2つのビジネスルールが図上で合成され次のER図として表現されます。
両方のエンティティそれぞれから見た、2つのビジネスルールを合成していると言うことについては良いでしょうか。
これをまとめて表現すると『「部署」と「従業員」の間に1:nの関連がある』などとなりますが、これは最初に説明したビジネスルール
『一つの「部署」にはn人(nは1以上の任意の数を表します)の「従業員」が所属している』とは違うので注意しましょう。
多重度は、簡単ですが落ち着いて考えないと混乱するので、多重度を設定する場合は、自分が今どちらのエンティティを基準に考えているのかをはっきり認識しながら、こちらのエンティティ1件に対して関連する相手エンティティの数(厳密に表現するとインスタンスの数)を、関連を表わす線の相手側に書きます。
以上、関連名に意味のある、リソースエンティティ間の関連について、多重度を説明してきました。
続いて、多重度の種類について説明します。