ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

UML等各種ダイアグラムのエラーチェック体系化(その18:関連のグループ:概念拡張)

2009-08-18 15:52:31 | Weblog

 シリーズ「UML等各種ダイアグラムのエラーチェック体系化」です。

 現在「いろんなダイアグラムをRDBにいれよう!」化計画、
 をやっていて、クラス図ER図を入れました。

 今回は、クラス図をいれたときに書いた

グループIDについては、別の機会に詳しく説明します。

についてです

 なお、ここで書いたとおり、いままでのまとめは

こちら
システム開発における「最小単位」とその連結法
http://www.geocities.jp/xmldtp/index_system.htm

(更新しました!!17回までの分が入ってます)




■リレーション(アーク)のグループID

 クラス図の関連等は、リレーション(エッジ、アーク)で示しています。
 リレーション(エッジ、アーク)は、本来2つのノードを結ぶものです。

 しかし、ここの図
拡大画像 | 【連載】ゼロから始めるUMLモデリング講座 (6) クラス図による物・事のモ……
http://journal.mycom.co.jp/photo/series/UML_zero/006/images/001l.jpg


にあるように、(コンポジションは、そのような関係になっていますが)、
制約は、2つのアークを結んだものになっていますし、
汎用(汎化)は、2つ以上(ここでは3つ)が1つに結びついています。

そのようなものも、2つの関係にばらして考えてもいいのですが、めんどっちいので、
以下のような拡張をしてしまいます。

<<拡張1>>
 リレーション(エッジ、アーク)は、本来2つのノード「または、リレーション」を結ぶものです。
 2つのリレーションを結ぶこともあります。

<<拡張2>>
 リレーション(エッジ、アーク)グループというものを考えます。
 これは、2つ以上のリレーションが結びついているものです。
 (図の(汎化)にあたります)
 リレーショングループは、1テーブルをもち、リレーショングループIDを持つことにします。

<<拡張3>>
リレーションはテーブルで、項目として、
元ノードID,先ノードIDを持っていましたが、
元ノード・エッジ・グループID,先ノード・エッジ・グループID
をもつものとします。

 そうすると、ノードID,エッジID,リレーショングループIDのいずれかが入ることになりますが、
この番号が重複しないように、
  ノードIDは、1から100000まで、
  エッジIDは100001から300000まで、
  リレーショングループIDは、300001から500000まで
のように、値の範囲わけがあるものとします。

こうすれば、値を見るだけで、種別がわかります。




■ということは、

クラス図の最後で、
関連テーブル(関連ID,元クラス・関連ID,先クラス・関連ID,種別、
       元カーディナリティ、先カーディナリティ、
       (関連名、元関連名、先関連名))
とし、「元クラス・関連ID」と「先クラス・関連ID」には、

  クラスのID、
  関連のID(制約のとき)、
  関連グループのID(汎化のとき)

が、入るようにして、それぞれのIDは、

  クラスのIDが1から100000
  関連のIDが100001から200000
  関連グループのIDが200001から300000

までとして、ID番号で、何と結びついているか見分けられるようにして、
さらに、

関連グループテーブル
(関連グループテーブルID)

を別に作ることとします。




以上です。次回から、ちゃんと、ダイアログ作成に戻ります。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする