ERモデリングレッスン3(分類と対象)

連載第2回目の記事で紹介したもう1つの基本パターンのERモデルを説明する。(ERモデルを解説する理由については、以前のエントリ(id:ahirasawa:20050629)を参照していただきたい。)

「分類と対象」のUMLのクラス図と、ベン図(=変形オブジェクト図)表現は次の通り。

ERモデルにする場合、分類と対象の関連の多重度が1対多なのか、多対多なのかによって、表現方法が大きく異なる。まずは1対多(あるいは0..1対多)関係のモデルを紹介する。
1対多の場合は、「対象」側のエンティティに「分類」の識別子を持たせればよい。

次は多対多のケース。多対多関係の場合は、「分類」と「対象」の間に関連エンティティを定義する必要がある。

自分がERモデリングでやりづらいと思うことの一つは、この関連エンティティの存在である。上の例のような、多対多関係を表現するためだけのエンティティは、それ自体で特別な意味がないため、モデルが冗長になり、直感的に理解しづらくなると思う。また概念モデリングの特に初期段階では、多重度が対1なのか、対多なのか定まらないことも多い。そんなときにいちいち関連エンティティを削除したり、追加したりするのも煩わしい。

もっともこの議論は多分に趣味の問題でしかないだろう。実務上は、プロジェクトの参加メンバーにとって、UMLモデルとERモデルのどちらに慣れているかの方が重要である。