web-dev-qa-db-ja.com

多重度とカーディナリティ

データモデルとデータベースについて話すとき、カーディナリティという用語は、特定のセットで許可される要素の数を表すためによく使用されます。

UMLは、多くの場合、多重度と同じプロパティを参照します。

これら2つの用語に違いはありますか、それとも同義語ですか?

26
Sam Shiles

最も簡単な説明は次のように言うことです:

多重度=カーディナリティ+参加

カーディナリティ:特定のエンティティが参加できる関係の発生の最大数を示します(単純な用語:最大)。

参加:すべてまたは一部のエンティティオカレンスが関係に参加するかどうかを示します(少なくとも簡単には)。

例: enter image description here

9
Suleka_28

マーティン・ファウラーは彼のウェブサイトでこの主題について話しました。引用:

データモデリングメソッドが関係について話すとき、それらはカーディナリティという用語を使用して、いくつのエンティティがリンクされる可能性があるかを示します。したがって、注文と顧客の間に関係があり、関係のカーディナリティーは1対多であると言えます。または、注文に対する顧客のカーディナリティが0対多であると聞くかもしれません。

UMLは、カーディナリティという用語が多重度の使用を好むことを回避します。多くの場合、カーディナリティはデータモデリングサークルで非常に広く使用されているため、データモデリングのバックグラウンドを持つ人々はこれに驚いています。

変更の理由は、カーディナリティのディクショナリ定義が「特定のセットまたは他のグループ化の要素数」(OED)であるためです。これによると、データモデリングの使用法は実際には間違っています。優れたUMLリファレンスマニュアルでは、Rumbaughは多重度を「許容されるカーディナリティ値の範囲の仕様-サイズ-セットが想定する可能性がある」と定義しています。 UMLは、プロパティ(関連付けまたは属性)のために、また複合構造内のパーツの多重度を表示するために、さまざまな場所で多重度を使用します。正式には下限と上限として定義されています。関連付け(データモデリングサークルの関係に相当するUML)には、各方向に多重度があります。

ソース

19
LMeyer

簡単に言うと、多重度は下位と上位のカーディナリティで構成されます。カーディナリティは、セットに含まれる要素の数です。したがって、多重度は、セットの許可される最小および最大メンバーを示します。それらは同義ではありません。

16
Jim L.

上記の質問と回答をありがとう。

今朝、本当にこれらの用語と混同されました(コーヒーは役に立ちませんでした)。

以下の例を考えます:

0-1 ---------- 1- *

多重度:

最初の多重度左エンティティ:0-1

2番目の多重度右のエンティティ:1- *

最初の多重度の基数:

下位カーディナリティ:0

上部カーディナリティ:1

2番目の多重度のカーディナリティ:

下位カーディナリティ:1

上部カーディナリティ:*

1
Matt

多重度は関連付けオブジェクトのコレクションに対する制約であり、カーディナリティはコレクション内のオブジェクトのカウントです。

多重度は、実際にはカーディナリティの制約です。

0
JATIN AHUJA