7

MySQL ワークベンチで生成された ERD に基づいて UML モデルを作成しています。しかし今、私はクラス図での主キーと外部キーの表現について疑問を持っています。

従来の UML ダイアグラムでは、各クラスの属性として主キーを含める必要がありますか? たとえば、id_userまたはid_list? そして、外部キーについては? これらは属性として無視されますが、関連付けとして反映されますか?

ありがとう

4

3 に答える 3

2

まず最初に:なぜUMLで描画したいのですか?すでにERDをお持ちの場合、ERDでは提供されないUMLクラス図でどのような追加/代替プロパティを説明しますか?

なんで?UMLはツールだからです。ダイアグラムが人間の消費のみを対象としている(つまり、ダイアグラムからコードを生成していない)と仮定すると、UMLを使用して、通信しようとしている情報を公開する必要があります。

一般的な標準として、UMLはID(PK / FK)を形式化する方法については何も述べていません。UMLは、すべてのオブジェクトが暗黙のIDを持っているというOOイディオムに従います。したがって、明示的に指定する必要はありません。したがって、最も単純なケースでは、次のことができます。

  • PK属性を通常の属性としてリストします。
  • FK属性を完全に無視します。

それがモデリングのニーズを満たしている場合は、これで完了です。

2番目の改良点として、PK属性にoclisUnique()制約をタグ付けし、FKを無視することができます。

もう1つのオプションは、ExecutableUMLのルールを使用することです。これは、PK('識別子'}とFK('参照属性'}の両方をクラス図上で直接示します。したがって、ERD内のすべてをキャプチャするのに最も近いものです。

つまり、要約すると、UMLが課す正しい答えはありません。それはすべて、ダイアグラムと何を伝えたいかによって異なります。

于 2012-04-23T20:14:57.980 に答える
1

「データベース プロファイル」を使用/作成して、この情報で UML モデルに注釈を付けることができます。プロファイルがなければ、OCL を使用して一意性制約を指定できますが、データベース レベルで外部キーに変換されるものを表すには通常の関連付けで十分です。

于 2012-04-24T03:48:34.677 に答える
0

EclipseUML Omondo トライアルを使用して、データベースを逆にすることができます。

必要な情報が得られ、それを無料またはオープンソースのツールにコピーできます。

于 2012-04-24T22:24:05.433 に答える