多重度の拡張

多重度を指定する場合、これまでは関係オカレンス数の上限のみを指定しました。たとえば、次の図の多重度は、1 つのプロジェクトに最大 m 人の従業員を割り当てることができて、1 人の従業員が最大 n 個のプロジェクトに参加できることを表しています。

上限/下限 (1)

この上限のほかに、下限を使用して、関係オカレンスの最小数を指定することもできます。この目的で、多重度を一組の文字 (a, b) で表すことができます (Scheer 著『Business Process Engineering』を参照)。次の図の (a1, b1) は、すべてのプロジェクトが最低 a1 個、最高 b1 個の [参加する] タイプの関係オカレンスに参加できることを表しています。つまり、各プロジェクトには、最低 a1 人、最高 b1 人の従業員を割り当てることができます。もう 1 つの組の文字 (a2, b2) は、1 人の従業員が最低 a2 個、最高 b2 個のプロジェクトに参加できることを表しています。

上限/下限 (2)

このように、すべての関係は 2 つの複雑度 (最小, 最大) で定義されます。下限には、通常 0 または 1 の値を割り当てます。上限には、1 <= max <= * (* はワイルドカード) の値範囲を指定します。

min = 0 という下限は、1 つのエンティティが 1 つの関係に参加することができるが、必須ではないことを表します。min = 1 という下限は、1 つのエンティティが少なくとも 1 つの関係に参加する必要があることを表します。

次の図では、従業員は関係に参加することができるが必須ではない (min = 0) ことが下限により表されます。一方、プロジェクトは少なくとも 1 つの関係に参加する必要がある (min = 1) ことを表します。つまり、プロジェクトに割り当てられていない従業員がいてもいいことを表しています。逆に、各プロジェクトには、少なくとも 1 人の従業員が割り当てられなければなりません。

上限/下限 (3)

最小値が 0 または 1、最大値が 1 または * であるとすると、(min,max) 表記には、(1,1)、(1,m)、(0,1)、(0,m) の 4 つのパターンが考えられます。または、次の省略形を使用することができます (Schlageter/Stucky 著『Database systems』(1983 年)、51 ページを参照)。

次の図に、省略形を使用して上記のグラフィック例を示します。

上限/下限 (4)