web-dev-qa-db-ja.com

概念的なUMLクラス図とERDの違いは?

各クラスが「名前」と「属性」をキャプチャし、「操作」をキャプチャしないような概念的なクラス図を作成する場合、基本的にERDと見なされるものを作成していませんか?私が説明したように概念的なクラス図を作成することと、それをERDと呼ぶことの違いを理解しようとしていますか?これらがまだ2つの異なる動物である場合、誰かが違いが何であるかを説明できますか?

16
Adam

拡張実体関連図(最近最も一般的なケース)を使用する場合、両方の表現力にほとんど違いはありません(属性、クラス、および関連付けの部分にのみ焦点を当てる場合)。

確かに、要素に異なる記号を使用しているため、グラフィックレベルでは非常に異なって見えますが、「セマンティクス」は非常に似ています。それらは両方とも継承(ここでも、EERについて話している)、n項群、連想クラス、...を許可します。

7
Jordi Cabot

クラス図には、オブジェクトモデル内のクラスと、図要素を接続する最終的なリンク/関係が含まれています。ただし、これらのリンクは、ERDダイアグラムのように必ずしも物理的な関係に対応しているわけではなく、論理的な接続を表しています。

クラス図はアプリケーションのオブジェクトモデルにすぎず、永続性固有の情報は含まれていません。クラス図について考えるときは、使用する可能性のあるデータベースやその他のストレージについては忘れてください。

反対側のERDダイアグラムは、(ほとんどの場合)リレーショナルデータベースに存在するエンティティ(テーブル)を表示する永続性固有のダイアグラムです。また、これらのテーブルと他のすべてのデータベース固有の情報との間の物理的な関係(およびカーディナリティ)も表示されます。 ERD図はクラス図に似ている場合がありますが、それはクラス図と同じであるという意味ではありません。

18
Faris Zacina

設計クラス図は、概念モデルとコラボレーション図から作成されます。デザインクラス図は次のとおりです。

  1. クラス、関連付け、属性
  2. メソッド
  3. 属性の種類
  4. 航行可能性
  5. 依存関係
1
sallu

それはあなたがER-Dをしたくないかもしれない状況に依存します。ただし、データロジックが処理される個別のデータレイヤーがある場合を想像してみてください。この場合、データの多くの詳細はアプリケーション層と共有されません。また、クラス図はアプリケーション層を超えてはなりません。両方の図が等しくないことを強調しなければなりません。また、主に多層アーキテクチャで両方を実行する必要がある場合もあれば、クラス図だけを使用できる場合もあります。例えば単一層アプリケーション。

クラス図はE-R図を廃止しないという見方を強く支持します。

1
Javed Ahsan

私が見たER図(最も頻繁にERWin IE表記)はデータベースの設計に焦点を合わせています。それらは主キー、外部キーに関係し、名前のない関係を持ち、通常は一般化/専門化。

一方、優れたUML概念クラス図は、キーに関係せず、問題のドメインを反映し、物事が関連している理由のセマンティクスで少なくともヒントである関連終了プロパティを持っています。これにより、ドメインをより多くのジュニア開発者に伝えることができるため、推測する必要がありません。

1
Jim L.

簡単に言えばIMO

クラス図はシステムがどのように機能するかの詳細を示しています。

ERダイアグラムは、システムが「状態」を青写真として保持する方法を示しています。

目標:システムのコンポーネント(クラス)の状態と動作を詳しく説明します。 Solidの原理を使用して、「効率的」で柔軟なシステム(結合度が低く、凝集度が高い)を設計します。

目標:システムの状態を「効率的に」維持する方法の青写真を設計します。実行されるクエリの種類(読み取りと書き込み)を検討し、必要な結合がありますか。その結果、インデックスを作成するための列を把握します。

PS:両方の図が彼らの点で効率的に物事を行おうとしていることに注意してください。

0
Mukesh Barman