24

ER図で次のことを表示しようとしています。

There are instructors and courses, a course is taught by only one instructor
whereas an instructor can give many courses.

ここに画像の説明を入力

ここに画像の説明を入力

私の質問は、2 つの図に違いはありますか、つまり、どの線を矢印に変えるか、または矢印の方向だけが重要なのかということです。

また、マッピングのカーディナリティについて考えてみます。それは1対多ですか、それとも多対1ですか?コースで考えれば多対1ですが、インストラクターで考えれば1対多です。これをどのように決定しますか?ありがとうございました。

4

4 に答える 4

44

関係が示されているER図では、矢印は使用されていません。一部のインストラクターは、カーディナリティを決定したいときにこの矢印を使用しますが、それは単にカーディナリティを取得するためのものです (1:1、1:M、および N:M)

これのER図をChen記法で添付しました。Crow記法を使用すると、どちらも使用できます。

ER図

リレーションシップのカーディナリティを決定することは実用的なシナリオであり、それを取得するための厳密な規則はありません。あなたがする必要があるのは、リレーションシップの一方の側から始めて、1 つのタプル (インスタンス) を取得し、他のエンティティからのタプルがリレーションシップに参加する数を確認することです。次に、その逆を行います。次に、各エンティティから関係へのタプルの参加数がわかります。カーディナリティ (つまり、インストラクターのセット、コースのセット、および教師のセットの関係タイプ) を決定するときに、数学の集合論と関数について考えてみてください。これはとても簡単ですが、数学のバックグラウンドを持っていない場合は、実際のシナリオを考えてみてください。

例えば

a) 1 人のインストラクターに対して、彼または彼女は多くの (M) コースを教えることができます

b) 1 コースにつきインストラクターは 1 人のみです。

したがって、インストラクター側では a) と b) に常に 1 がありますが、コースでは a) と b) に M と 1 があり、インストラクター:コースのカーディナリティは 1:M です。

于 2013-04-09T12:59:21.630 に答える
1

他の答えが完全に正しいとは思いません。

矢印を使用する必要があり、関係の各方向に意味のある名前を付ける表記を使用する必要があります。この場合、一方は「教える」、もう一方は「教えられる」ということになります。名前の横に矢印を使用するか、名前が参照するエンティティの近くに名前を付けます。1 本の線 (矢印が 2 つ) または 2 本の線 (それぞれに 1 つの矢印) を使用できます。

また、カーディナリティは制約の 1 種類にすぎず、表記法はそれを反映する必要があることもお勧めします。たとえば、関係の 2 つの名前は、「教えている (多くの)」と「教えられている (正確に 1 人)」である可能性があります。重要なのは、「教えている (1 つまたは 2 つ)」または「教えられている (ちょうど 2 つ)」などがあるということです。

制約が実際に何であるかを正確に明示して明確にすることをお勧めします。

于 2015-08-07T15:19:09.837 に答える