2

以下のような単純な 2 項関係は、左から右に読み取られることを理解しています。ユーザーは 1 つ以上の写真を持っている可能性があります。また、右から左に読むと... 画像は 1 人のユーザーだけに属している必要があります。 ここに画像の説明を入力

ただし、次のように表示されると、少し混乱します。このタイプの関係をどのように読んでいるのか、誰か教えていただけますか? また、右下の画像に続く画像では、同じことを別の方法で言っているのですか? ここに画像の説明を入力

ここに画像の説明を入力

そして最後に、ユーザーが別のユーザーの友人になることができるこの再帰的な関係では、両端をオプションの多として指定することは理にかなっていますか?

私が見る方法は、ユーザーが0人または多くの友達を持つことができる場合、ユーザーAがユーザーBと友達である場合、ユーザーBには0人の友達を持つオプションがなくなるため、1人または多くの友達を持つべきであるということです。この仮定は正しいですか、それとも間違っていますか?

概念的なデータ モデリングに関する本を読んでいて、次に進んで実際のテーブルで練習する前に、これを本当に理解したいと思っています。

4

2 に答える 2

2

ここで開梱することがたくさんあります。Jo Douglass からの回答は、多くの分野をカバーしています。

あなたの混乱の一部は、人々が ER 図を使用して 2 つの非常に異なる種類のモデルを描写しているという事実から来ていると思います。1 つ目はエンティティ関係モデルで、ER モデルとしてよく知られています。2 つ目はリレーショナル モデルです。表面的には、2 つのモデルはほとんど同じに見えます。しかし、それらには異なる機能があり、異なる目的のために構築されています。

ER モデルは、データベース設計者と対象分野の専門家の間のコミュニケーションを容易にします。対象分野の専門家は、データがどのように見えるか、何を意味するか、なぜ重要なのか、どのように使用されるのかなど、データを深く理解している場合があります。その同じ主題の専門家は、外部キー、参照整合性、データの正規化などの技術的なトピックにはほとんどまたはまったく関心がない場合があります。

リレーショナル モデルは、SQL Server、Oracle、その他多数の一般的な SQL データベースのいずれかでデータベースを設計および構築しようとする設計者にとって、予備的な結果として優れています。

最後の図は、[ユーザー] というラベルの付いたボックスだけで、非常に簡潔で明確です。これは、関係の多対多の性質を強調しています。ER モデルでは完全に有効ですが、リレーショナル モデラーは、それは正当ではなく、ジャンクション ボックスが必要であると言うでしょう。

ただし、関係、つまり友情の名前がありません。関係に名前を付けると、それ以外は同一の関係が 2 つある場合に役立ちます。また、属性を掛けるための名前も提供します。場合によっては、特定の友情が始まった日付に関心があるかもしれません。

関係が必須かオプションかは、主題を分析しているか、ソリューションを設計しているかによって異なります。それがこれらの最初のものである場合は、主題を調べて、それが必須かどうかを確認します。ここにいる技術専門家はあなたの質問に答えることができません。

ソリューションを設計している場合は、別の観点から検討することをお勧めします。データを過度に制約していませんか? 拘束不足ですか?

これがあなたが取り組んでいることのいくつかに対処することを願っています. データベースの設計は複雑ではありません。しかし、それは抽象的です。

于 2016-11-08T13:26:43.287 に答える