シリーズ「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)
を別に作ることとします。
以上です。次回から、ちゃんと、ダイアログ作成に戻ります。