2012-01-19 17 views
2

私は宿題があり、私はクラス図とデータモデルを描くことになっています。私はクラス図を書いた。私はデータモデルについて何をすべきか分かりません。 違いは何ですか?UMLの 'クラス図'と 'データモデル'の違いは何ですか?

インターネット上のテキストによると、彼らは私のように思えます。つまり、クラス図とデータモデルは同じものです。

class diagramsdata modelsの違いは何ですか?

+1

あなたの質問は何ですか?理解できません。 –

+0

@OlofEdler私の質問は、クラス図とデータモデルの違いは何ですか? –

+0

タグはUMLを表します。これはUMLに関するのですか?クラスのモデリング(またはデータベースモデリング) (私はUMLを知らない)。 –

答えて

4

統一モデリング言語は、既に知っているように、図を使ってシステムを記述する手段です。彼らはソフトウェアに関連するだけでなく、ハードウェア、経済、日常的なアイテム、実際には何かに関連することもありますが、ソフトウェアシステムでより一般的に使用されます。

クラス図を使用すると、それらのオブジェクトが相互に関連し、任意のは、彼らが持っていることのインターフェイスを知っているか、個別のオブジェクトにあなたのシステムを分割している方法について説明します。クラス図の各クラスは、データと関数の両方を保持できます。例えば

Carクラスは、それにリンクされているエンジン、ステアリングホイールのクラスと複数のホイール、ドア、シートやペダルのクラスを持っています。このすべてにおいて、クラス図は静的です。

私はあなたのデータモデルによって何を意味するか正確にはわかりません。

私は通常、これらは任意の機能要素なしで、単にデータ表が互いにどのように関係するかを示して、データベーステーブルをモデル化するために使用されるクラス図を見てきました。

データ図のUML標準に追加する必要があると主張するものがありますが、まだ批准されていないものもあります。

これは、標準的なクラス図では、テーブル間の永続性、キーの関係、および制約をモデル化するのが難しく、ほとんどのUMLツールがこれを可能にするために標準を調整するためです。

そして実際、システム内のプロセス間のデータの流れを示すために使用されるアクティビティ図である「データフロー図」があります。

クラス図に戻って、データダイアグラムを使用してデータベースをモデル化すると仮定すると、いくつかの違いが見逃されることがあります。

クラス図のクラスはデータプロパティ(コード変数など)と機能プロパティ(メソッド、プロシージャ、関数など)を持つことができますが、クラスのこれらの要素はアクセスプロパティ(プライベート、パブリックなど)を持つこともできます。クラス図は継承を示すこともできる。フォルクスワーゲンは車なので、フォードは両方とも車から継承し、これを表示することができます。

データベースのデータ図では、データ項目(データベーステーブルの列/フィールド)が表示されますが、アクセスプロパティ(パブリック、プライベートなど)や継承の考え方は意味を持たないため、表示されます。それは、データと機能が、それらのオブジェクトに関連付けられたデータの両方を持っている個別のオブジェクトをモデル化されていないため、

です。たとえば、Carテーブルには、VolkswagonとFordという値が格納されているManufacturersテーブルへのリレーショナルリンクがあります。それはホイール列を持っているかもしれませんが、これは車輪の数だけを示します。データベースのストアドプロシージャは、データから抽象化されたレベルで存在します。データを利用しますが、データを取得するデータテーブルによって管理または所有されることはありません。

私は自分自身についてよく説明していないかもしれませんが、助けてくれることを願っています。

Here's a useful site

And here's anotherとそのサイトdata modelling specificallyに。

1

データモデル化は、オブジェクトアプローチに焦点を当てたUMLではありません。

オブジェクトレベルでクラス図をモデル化し、JavaコードでHibernateアノテーションを使用してデータベースを作成できると言われています。 私はあなたのコードを作成して、永続性アノテーションを同時に追加することを意味します。これにより、デプロイ時にデータベースが作成されます。

データモデリング対象外のUMLは、Omondo Persistenceプロファイルを使用すると、デプロイメントレベルでデータを作成することもできます。つまり、オブジェクトレベルでモデル化し、データベースを作成することができます。データ作成段階がオブジェクトと結合されているので非常に強力なアプローチ

これはまだイニシアチブですが、大企業がこのアプローチを採用した場合、私にはベストプラクティスの1つとなります。お勧めします。

0

通常、データモデルはデータベースの実装方法を定義します。これらのダイアグラムはエンティティダイアグラムです。クラスモデルは、システム内のオブジェクト間の関数関係です。クラスにはデータがありますが、データモデルではありません。デザインには、クラスモデルとデータモデルの両方があります。簡単な例として、顧客のためのデータモデルが存在します。そのデータモデルは、顧客データベースの設計でした。顧客の注文を処理する方法を実装するためのクラスモデルの設計が存在します。データモデルは、データベース設計者が使用するものです。クラスモデルは、ソフトウェア設計者が注文ビジネス関数を実装するために使用するものです。データモデルとクラスモデルの両方にダイアグラムがあります。彼らは異なるシンボルとルールを使用します。クラス図とエンティティ図2つの異なる種類の図。

関連する問題