web-dev-qa-db-ja.com

ER図の1対多の関係

私はER図に次を表示しようとしています:

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

enter image description here

enter image description here

私の質問は、2つの図に違いはありますか、言い換えれば、どちらの線を矢印に変えるかは重要ですか、それとも重要なのは矢印の方向だけですか?

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

15
yrazlik

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

このためのERダイアグラムをチェン表記で添付しました。また、Crow表記を使用すると、どちらでも使用できます。

ER Digram

関係のカーディナリティを決定することは実用的なシナリオであり、関係を取得するのに難しいルールはありません。行う必要があるのは、リレーションシップの一方の側から開始し、1つのタプル(インスタンス)を取得して、他のエンティティからのタプルがリレーションシップに参加する数を確認することです。その後、逆も同様です。次に、各エンティティから関係へのタプルの参加数がわかります。カーディナリティー(インストラクターのセット、コースのセット、およびティーチの関係タイプのセット)を決定するとき、数学の集合理論と機能について考えてください。これはとても簡単ですが、数学の背景からではない場合は、実際のシナリオを考えてください。

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

b)1コースの場合、インストラクターは1人のみ

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

32
Dulantha

私は他の答えが完全に正しいとは思わない。

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

また、カーディナリティーは制約の1種類にすぎず、表記にはそれを反映する必要があることもお勧めします。たとえば、関係の2つの名前は、「teaches(many)」と「is teached(exactly one)」です。重要なのは、「授業(1つまたは2つ)」または「教えられている(2つだけ)」などであるということです。

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

1
debater

「管理」として設定された関係を持つ「従業員」エンティティセットと「部門」エンティティセットを考えます。 Employee ------------- Manage -------------------- Department(entity set)(Relationship set)(entity set)One to多くの関係は、従業員セットの1つのエンティティを部署エンティティセットの複数のエンティティに関連付けることができることを意味しますが、部署セットのエンティティは従業員エンティティセットの最大1つのエンティティに関連付けることができます。つまり、従業員と部門のエンティティセットの間に1対多の関係がある場合、各従業員は複数の部門を管理でき、同時に各部門は最大1人の雇用者によって管理されます。

0
Naveesh Kumar V

両方ともまったく逆のカーディナリティを持っています

シンプルなクリーンラインは多くの意味です。

????矢印は1を意味します。

同じカーディナリティの両方を考慮する場合

次に、2番目の規則に従って多対多を表す必要があります(関係セットには菱形、エンティティセットには長方形を想定してください)

   INSTRUCTOR <---- TEACHES -----> COURSE 

実際には意味がありません。

カーディナリティが反対の両方を考慮する場合

次に、2番目の規則に従って多対多を表す必要があります(関係セットには菱形、エンティティセットには長方形を想定してください)

  INSTRUCTOR ----- TEACHES ------ COURSE

明示的な矢印は、常に多対多とは見なされません。したがって、それは正しいです(両方を反対と考える場合のみ)

0
Yogendra