2
  • ERダイアグラムは、データモデルの抽象表現を表し、
  • クラス図は、提案されたシステムの静的構造と動作を表します。 ER図の


  • メインビルディングブロックは、クラス図でER図のエンティティとクラスの間には密接な関係がある

、クラス図の
クラス図のクラスとER図のエンティティの間のマッピング?

  • メインビルディングブロックはクラスで、エンティティです
    これらは1対1にマッピングされます。余分なクラスや余分なエンティティが

    それは

    • は、ER図のすべてのエンティティのためのクラス図ではクラスがあることを意味しない、クラス内のすべてのクラスのためのER図のエンティティがある

    --------------------------------------------- 
    class diagram     ER Diagram 
    --------------------------------------------- 
    class A   <---->   Entity A 
    class B   <---->   Entity B 
    class C   <---->   Entity C 
    class D   <---->   Entity D 
    class E   <---->   Entity E 
    
    次のように

    クラスダイアグラムのクラスとER図のエンティティとの間には常に1対1のマッピングがあります
    または
    例外はありますか?

    例外的な瞬間がある場合はどうなりますか?

    P.s - これらの2つの図の違いを理解することは問題ありません。

  • 答えて

    0

    まあ、あなたマップ1:1ですが、であってはいけません。 1:1経路は、最初の迅速なアプローチで最も簡単です。しかし、パフォーマンス上の理由から、テーブルに冗長性を導入することがしばしば必要です。その場合、あなたのテーブルはあなたのクラスが教えているものを表していません。

    このような場合は、より抽象的なクラスモデルからデータベースモデルを派生させることができます。多くのツールは、このような種類のタスクをサポートするための変換を提供しています(ただし、単純なコピー/ペーストを好み、パッケージ間には<<derived>>の関係を設定します)。

    0

    すべての2つのモデルの目的によって異なります。クラス図とER図の両方が、単一の設計または何かの単一の実装を表すことを意図している場合、明らかな質問はなぜ2つの異なる写真が必要なのかです。一方で、おそらく異なる技術を使用し、異なる仕事をしている2つの異なる実装であれば、それは一方を他方にマッピングする方法にいくらか関係します。すべての状況に対して1つの答えがあるわけではありません。

    あなたの質問に直接関係はありませんが、relational-databaseタグでこれをタグ付けしました。リレーショナル・モデルでは、関係スキーマは変数ですが、クラスはタイプです。基本的にそれらは非常に異なるものであり、同等物として扱うことの誤りは、第一次大恐慌と呼ばれています。あなたはあなたの質問にそのエラーを表示していませんが、this linkが啓発されていることがあります。

    1

    システム開発者は、クラスとデータベーステーブルの間に1:1表現を持つことができます。このマッピングは選択肢であり、必須ではありません。実際のプロジェクトではこのアプローチを使用するのが一般的です。オブジェクト指向の世界は、自然にRDBMSで見つかった関係タイプに対処していません。たとえば、あるクラスにFKを自動的に適用することはできません。あなたが作るクラスの多くはそれに依存するため、決定は非常に重要です。後の段階であなたの心を変えることは非常にコストがかかるでしょう。

    RDBMSの世界とOOの世界は、2つの異なる世界です。実際にオブジェクト指向を完全にサポートするオブジェクトデータベースがあります(例:Wiki-Object-Databases参照)。その違いはあなたが提起した問題を超えています。これらの違いのいくつかに対処するため、または少なくとも。これら二つの世界、この概念上のいくつかの背景については、例えば以下を参照してください。Wiki-Object Relational Mapping

    OOの世界との関係の単語の違いについての詳細を取得するには、このチェックすることをお勧めします:Wiki-Object-relational impedance mismatch

    他の多くのたとえば、is-there-really-object-relational-impedance-mismatchという参照がこのトピックに存在します。

    1:1マッピングを使用する...これは興味深い質問です。

    +0

    then 1:1マッピングを使用しない場合... – Susantha7

    +2

    これはいくつかの分析が必要です。例えば、親クラスから継承したクラスが多く、親クラスが多くのメソッドでは、各子クラスの多くのメソッドをコーディングする必要はありません。しかし、これをカバーするOOパターンが存在する可能性があります。 – NoChance

    +0

    @ Susantha7ドメインのシミュレーションを構築するときは、1対1のマッピングが適切です。ドメインの情報システムを構築するときは一般的に適切ではありません。 – reaanb